Hibernate1实验报告.doc_第1页
Hibernate1实验报告.doc_第2页
Hibernate1实验报告.doc_第3页
Hibernate1实验报告.doc_第4页
Hibernate1实验报告.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

oracle应用开发综合实验报告题目:综合实验hibernate技术应用指导教师: 王岩 姓 名: 常智棋 班级学号: 10301125 成 绩: 日 期: 2012.12.09 实验题目:综合实验hibernate技术应用1 预习内容hibernate是对jdbc的轻量级封装,因此在很多情况下hibernate的性能比直接使用jdbc存取数据库要低。然而,通过正确的方法和策略,在使用hibernate的时候还是可以非常接近直接使用jdbc时的效率的,并且,在有些情况下还有可能高于使用jdbc时的执行效率。 在进行hibernate性能优化时,需要从以下几个方面进行考虑:数据库设计调整。hql优化。api的正确使用(如根据不同的业务类型选用不同的集合及查询api)。主配置参数(日志、查询缓存、fetch_size、batch_size等)。映射文件优化(id生成策略、二级缓存、延迟加载、关联优化)。一级缓存的管理。针对二级缓存,还有许多特有的策略。事务控制策略。数据的查询性能往往是影响一个应用系统性能的主要因素。对查询性能的影响会涉及到系统软件开发的各个阶段,例如,良好的设计、正确的查询方法、适当的缓存都有利于系统性能的提升。系统性能的提升设计到系统中的各个方面,是一个相互平衡的过程,需要在应用的各个阶段都要考虑。并且在开发、运行的过程中要不断地调整和优化才能逐步提升系统的性能。二实验目的与要求1.了解软件分层体系结构2.理解持久化层3.了解软件的模型4.理解对象的关系5.理解orm及hibernate原理6.掌握hibernate的基本配置及映射7.掌握建立和使用session执行持久化操作8.理解session的线程安全9.hibernate回调和拦截1、 建立表orders:用于存储订单列表信息;表order_items:用于存储单个订单的详细信息。其结构分别为:表1 orders表结构字段名字段类型字段宽度说明idnumber20订单编号(主键)order_datedate订单日期(非空)user_namevarchar210客户名称(非空)cityvarchar220客户所在城市(默认沈阳) 表2 order_items表结构字段名字段类型字段宽度说明order_idnumber20订单编号(主键)product_namevarchar220产品名称(非空)quantitynumber4数量(大于0,小于100)unit_pricenumber(10,2)产品单价2、创建数据库连接程序,能够对表orders进行增、删、改和查。(创建oracle存储过程,并在程序中调用存储过程。3、创建数据库连接程序,能够对表orders进行实现批处理。(如:增加)4、创建事务处理程序。 5、创建断开连接结果集查询程序。3 实验原理开发hibernater的参考基本步聚: 1.获取hibernate相关的库文件 2.工程中引入hibernate相关的jar文件 3.建立hibernate的初始化配置文件 4.根据概念模型建立系统的实体域类及它们关系 5.根据概念模型建立关系数据表 6.根据实体类与表之间的对应关系建立映射文件 7.建立hibernate会话工厂及会话对象,通过会话对象执行持久化操作 四实验设计及实现4.1 hibernate.cfg.xml建立hibernate的初始化配置文件org.hibernate.dialect.oracle9dialectjdbc:oracle:thin:localhost:1521:orclusermanusermanoracle.jdbc.driver.oracledriverhibernatetrue 4.2 item.hbm.xml建立po与关系表的映射!- -4.3 item.java建立实体类package com.hibernate;public class item private int id;private string name;private int quantity;private int price;public int getid() return id;public void setid(int id) this.id = id;public string getname() return name;public void setname(string name) = name;public int getquantity() return quantity;public void setquantity(int quantity) this.quantity = quantity;public int getprice() return price;public void setprice(int price) this.price = price;4.4 itemtext.javapublic class itemtext public static void main(string args) configuration cfg=new configuration();sessionfactory sf=cfg.configure().buildsessionfactory();session session=sf.opensession();session.begintransaction();/查看所有数据/*list ls=session.createquery(from item).list();for(int i=0;ils.size();i+)item it=(item)ls.get(i);system.out.print(it.getid()+it.getname()+it.getprice()+it.getquantity();*/提交事务/数据插入,插入一条数据item it1=new item();it1.setid(511);it1.setname(sss);it1.setprice(2342);it1.setquantity(12);session.save(it1);/按指定编号检索数据,检索id号为511的数据的信息/session的load方法,根据指定 的参数param2(id)/session.load(param1, param2)根据指定 的参数param2(id)从数据库读取数据记录,返回与param1对应的实体对象item it2=(item)session.load(item.class, new integer(511);system.out.print(it2.getid()+it2.getname()+it2.getprice()+it2.getquantity();/修改数据修改id号为511的数据的信息item it3=(item)session.load(item.class, new integer(511);it3.setid(511);it3.setname(sssfffff);it3.setprice(2342);it3.setquantity(132);session.update(it3);session.flush();/删除 删除id为511的数据的信息 item it4=(item)session.load(item.class,new integer(511); session.delete(it4); /session.gettransaction().commit();session.close();sf.close();5. itemdao.java定义各种增删改查操作的执行方法public class itemdao private static sessionfactory sf;private session sesion;statictryconfiguration cfg=new configuration(); sf=cfg.configure().buildsessionfactory();catch(throwable e)e.printstacktrace();public static list selectallitem()session session=sf.opensession();session.begintransaction();list ls=session.createquery(from item).list();session.gettransaction().commit(); return ls; public static item selectallitembyid(int id)session session=sf.opensession();session.begintransaction();item it=(item)session.load(item.class, id);session.gettransaction().commit(); return it;public static void insertitem(item it)session session=sf.opensession();session.begintransaction();session.save(it);session.gettransaction().commit(); public static void updateitem (item it)session session=sf.opensession();session.begintransaction();session.update(it);session.gettransaction().commit();public static void deleteitem (int id)session session=sf.opensession();item it=(item)session.load(item.class, id);session.begintransaction();session.delete(it);session.gettransaction().commit();6. itemdaotest.javapublic class itemdaotest public static void main(string args) /查询所有list list=itemdao.selectallitem();for(int i=0;ilist.size();i+)item it=(item)list.get(i);system.out.println(it.getid()+it.getname()+it.getprice();/插入一条数据/*item it=new item();it.setid(2323);it.setname(tracy);it.setprice(3232);it.setquantity(33);itemdao.insertitem(it);*/ /删除id号为2323的数据的信息/*itemdao.deleteitem(2323);*/修改id为2323的数据的信息/*item it1=new item();it1.setid(2323);it1.setname(tracyggggg);it1.setprice(323432);it1.setquantity(33);itemdao.updateitem(it1);*/根据id查询 查询id号为2323的数据的信息/*item it3=itemd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论