Hibernate1实验报告.doc

上传人:文库蛋蛋多 文档编号:3075004 上传时间:2023-03-10 格式:DOC 页数:12 大小:54KB
返回 下载 相关 举报
Hibernate1实验报告.doc_第1页
第1页 / 共12页
Hibernate1实验报告.doc_第2页
第2页 / 共12页
Hibernate1实验报告.doc_第3页
第3页 / 共12页
Hibernate1实验报告.doc_第4页
第4页 / 共12页
Hibernate1实验报告.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《Hibernate1实验报告.doc》由会员分享,可在线阅读,更多相关《Hibernate1实验报告.doc(12页珍藏版)》请在三一办公上搜索。

1、Oracle应用开发综合实验报告题目:综合实验Hibernate技术应用指导教师: 王岩 姓 名: 常智棋 班级学号: 10301125 成 绩: 日 期: 2012.12.09 实验题目:综合实验Hibernate技术应用一 预习内容Hibernate是对JDBC的轻量级封装,因此在很多情况下Hibernate的性能比直接使用JDBC存取数据库要低。然而,通过正确的方法和策略,在使用Hibernate的时候还是可以非常接近直接使用JDBC时的效率的,并且,在有些情况下还有可能高于使用JDBC时的执行效率。 在进行Hibernate性能优化时,需要从以下几个方面进行考虑:数据库设计调整。HQL

2、优化。API的正确使用(如根据不同的业务类型选用不同的集合及查询API)。主配置参数(日志、查询缓存、fetch_size、batch_size等)。映射文件优化(ID生成策略、二级缓存、延迟加载、关联优化)。一级缓存的管理。针对二级缓存,还有许多特有的策略。事务控制策略。数据的查询性能往往是影响一个应用系统性能的主要因素。对查询性能的影响会涉及到系统软件开发的各个阶段,例如,良好的设计、正确的查询方法、适当的缓存都有利于系统性能的提升。系统性能的提升设计到系统中的各个方面,是一个相互平衡的过程,需要在应用的各个阶段都要考虑。并且在开发、运行的过程中要不断地调整和优化才能逐步提升系统的性能。二

3、实验目的与要求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客户名称(非空)cityVARCHA

4、R220客户所在城市(默认沈阳) 表2 order_items表结构字段名字段类型字段宽度说明order_idNUMBER20订单编号(主键)product_NAMEVARCHAR220产品名称(非空)quantityNUMBER4数量(大于0,小于100)unit_priceNUMBER(10,2)产品单价2、创建数据库连接程序,能够对表orders进行增、删、改和查。(创建oracle存储过程,并在程序中调用存储过程。3、创建数据库连接程序,能够对表orders进行实现批处理。(如:增加)4、创建事务处理程序。 5、创建断开连接结果集查询程序。三 实验原理开发Hibernater的参考基本

5、步聚: 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:orclusermanuse

6、rmanoracle.jdbc.driver.OracleDriverhibernatetrue 4.2 Item.hbm.xml建立PO与关系表的映射!DOCTYPE hibernate-mapping PUBLIC -/Hibernate/Hibernate Mapping DTD 3.0/EN!- -4.3 item.java建立实体类package com.hibernate;public class item private int id;private String name;private int quantity;private int price;public int get

7、Id() return id;public void setId(int id) this.id = id;public String getName() return name;public void setName(String name) this.name = name;public int getQuantity() return quantity;public void setQuantity(int quantity) this.quantity = quantity;public int getPrice() return price;public void setPrice(

8、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(fro

9、m 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的l

10、oad方法,根据指定 的参数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 Integ

11、er(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定义各种增

12、删改查操作的执行方法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.beginTransa

13、ction();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 s

14、tatic 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

15、 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.selectAl

16、litem();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的数

17、据的信息/*item it1=new item();it1.setId(2323);it1.setName(tracyggggg);it1.setPrice(323432);it1.setQuantity(33);itemDAO.updateitem(it1);*/根据id查询 查询id号为2323的数据的信息/*item it3=itemDAO.selectAllitembyid(2323);System.out.println(it3.getId()+it3.getName()+it3.getPrice();*/实验结果:(实验结果仅显示部分)/查询所有1充电器23841充电器23841充电器2384/插入数据后结果1充电器23841充电器23841充电器2384511sss234212/修改数据1充电器23841充电器23841充电器2384511sssfffff2342132/删除数据后结果1充电器23841充电器23841充电器2384

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号