收藏 分享(赏)

Hibernate入门.pptx

上传人:j35w19 文档编号:10053018 上传时间:2019-10-02 格式:PPTX 页数:34 大小:1MB
下载 相关 举报
Hibernate入门.pptx_第1页
第1页 / 共34页
Hibernate入门.pptx_第2页
第2页 / 共34页
Hibernate入门.pptx_第3页
第3页 / 共34页
Hibernate入门.pptx_第4页
第4页 / 共34页
Hibernate入门.pptx_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、Hibernate入门,第六章,提问,2/42,简述类和表的映射关系 使用Hibernate增加记录的步骤有哪些? 在Hibernate中Java对象有哪些状态?,预习检查,搭建Hibernate环境 实现对单表的增删改操作 实现按主键查询,3/42,本章任务,理解类和表的映射关系 理解持久化对象的状态及其转换 掌握按主键查询 掌握单表的增删改,4/42,本章目标,Hibernate的创始人 EJB3.0专家委员会成员 JBoss核心成员之一 Hibernate in Action的作者,5/42,Hibernate简介,优秀的Java 持久化层解决方案 主流的对象关系映射工具 简化了JDBC

2、 繁琐的编码将数据库的连接信息都存放在配置文件,Session session = HiberanteUtil.getSession(); Query query = session.createQuery(“from User“); List users =(List)query.list();,6/42,Hibernate优势,持久化是程序数据在瞬时状态和持久状态间转换的过程,7/42,持久化与ORM2-1,JDBC Stmt.execute(“ ) ,瞬时状态,持久状态,ORM(Object Relational Mapping) 编写程序的时候,以面向对象的方式处理数据 保存数据的时候

3、,却以关系型数据库的方式存储 ORM解决方案包含下面四个部分 在持久化对象上执行基本的增、删、改、查操作 对持久化对象提供一种查询语言或者API 对象关系映射工具 提供与事务对象交互、执行检查、延迟加载以及其他优化功能,8/42,持久化与ORM2-2,类:User 表:TBL_USER,对象-关系映射,编写Hibernate配置文件,下载并部署JAR包,创建持久化类和映射文件,9/42,准备Hibernate步骤,下载需要的jar包 Hibernate 的官方主页是www.hibernate.org 推荐下载hibernate-distribution-3.3.2.GA-dist.zip Hi

4、bernate包目录结构部署jar包 hibernate3.jar required 目录下的jar 包 Oracle 数据库驱动jar包,10/42,准备Hibernate3-1,创建Hibernate配置文件 用于配置数据库连接 运行时所需的各种属性 默认文件名为“hibernate.cfg.xml”,org.hibernate.dialect.Oracle10gDialectjdbc:oracle:thin:10.0.0.188:1521:ORCLjbit bdqnoracle.jdbc.driver.OracleDriver ,11/42,准备Hibernate3-2,示例,创建持久化

5、类和映射文件 定义持久化类(也称实体类),实现java.io.Serializable 接口,添加默认构造方法 配置映射文件(*.hbm.xml) 向hibernate.cfg.xml文件中配置映射文件,public class Dept implements Serializable private Byte deptNo;private String deptName;private String location;public Dept() /省略getter&setter 方法 ,12/42,准备Hibernate3-3,示例,提问,简述搭建Hibernate环境的步骤 ORM指的是什

6、么?,13/42,小结,租房系统是一个B/S 架构的信息发布平台 系统包含的角色 注册用户 非注册用户 系统功能 发布房屋信息(注册用户) 浏览房屋信息(注册用户与非注册用户) 查看房屋详情(注册用户与非注册用户) 查询房屋信息(注册用户与非注册用户) 修改房屋信息(注册用户) 删除房屋信息(注册用户),14/42,租房系统项目介绍2-1,租房系统数据库表,15/42,租房系统项目介绍2-2,练习,需求说明 在MyEclipse中为租房系统创建工程,导入Hibernate jar包 创建Hibernate配置文件hibernate.cfg.xml 创建用户表对应的持久化类User和映射文件Us

7、er.hbm.xml,16/42,学员操作搭建Hibernate环境,常见问题及解决办法 代码规范问题 调试技巧,共性问题集中讲解,17/42,共性问题集中讲解,增加部门记录 初始化,18/42,Configuration conf = null; SessionFactory sessionFactory = null; Session session = null; Transaction tx = null;,示例,try conf = new Configuration().configure();sessionFactory = conf.buildSessionFactory();

8、 session = sessionFactory.openSession(); tx = session.beginTransaction(); Dept dept = new Dept();dept.setDeptNo(new Byte(“13“);dept.setDeptName(“测试部“);dept.setLocation(“东区“);session.save(dept); mit(); catch (HibernateException e) e.printStackTrace();tx.rollback(); finallysession.close(); ,使用Hibernat

9、e增加部门,通过持久化类Class对象和ID 加载数据,Configuration conf = null; SessionFactory sessionFactory = null; Session session = null; Transaction tx = null; try conf = new Configuration().configure();sessionFactory = conf.buildSessionFactory();session = sessionFactory.openSession();session.get(Dept.class,new Byte(“1

10、0“); catch (HibernateException e) e.printStackTrace(); finally session.close();sessionFactory.close(); ,Configuration conf = null; SessionFactory sessionFactory = null; Session session = null; Transaction tx = null; try conf = new Configuration().configure();sessionFactory = conf.buildSessionFactory

11、();session = sessionFactory.openSession();session.load(Dept.class,new Byte(“10“); catch (HibernateException e) e.printStackTrace(); finally session.close();sessionFactory.close(); ,使用load方式加载数据,使用get方式加载数据,19/42,示例,使用Hibernate实现查询操作,tx = session.beginTransaction(); Dept dept = (Dept) session.load(De

12、pt.class, new Byte(“13“); dept.setDeptName(“研发部“); mit();,tx = session.beginTransaction(); Dept dept = (Dept) session.load(Dept.class, new Byte(“13“); session.delete(dept); mit();,修改部门,删除部门,修改,删除,20/42,使用Hibernate实现部门的修改、删除,示例,现场编程,使用Hibernate修改指定用户的电话号码,21/42,小结,练习,需求说明 使用Hibernate完成对用户的增加、修改、删除和查询

13、 按主键加载用户,22/42,学员操作用户表的增删改查,常见问题及解决办法 代码规范问题 调试技巧,共性问题集中讲解,23/42,共性问题集中讲解,瞬时状态(Transient)持久状态(Persistent)游离状态(Detached),24/42,Hibernate中Java对象的三种状态,new语句,get() load(),save() saveOrUpdate(),delete(),evict() clear() close(),update() saveOrUpdate(),delete(),25/42,三种状态之间的转换,提问,Hibernate中Java对象的三种状态是什么?

14、Java对象三种状态之间是如何转换的?,26/42,小结,练习,需求说明 为以下代码1、代码2补充输出语句,输出各个阶段对象的状态,27/42,学员操作输出程序中对象的状态,常见问题及解决办法 代码规范问题 调试技巧,共性问题集中讲解,28/42,共性问题集中讲解,部门编号:10部门名称:测试部,部门对象,部门编号:10部门名称:测试部,部门表,测试部,质管部,不一致,脏对象,29/42,当事务提交时,Hiberante会对Session中持久状态的对象进行检测,判断对象的数据是否发生了改变,脏检查,刷新缓存就是将Session缓存同步刷新为与数据库一致 Session会在以下时间点刷新缓存

15、Transaction的commit()方法 Session的flush()方法,30/42,刷新缓存机制,update()方法 saveOrUpdate()方法 merge()方法,31/42,更新数据的方法,练习,需求说明 使用Session接口的saveOrUpdate()、merge()方法修改用户信息,对比两个方法的区别,主键生成器不要使用assigned,注意,32/42,学员操作修改用户信息,常见问题及解决办法 代码规范问题 调试技巧,共性问题集中讲解,33/42,共性问题集中讲解,框架是一个提供了可重用的公共结构的半成品 数据持久化 将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称 ORM是一种数据持久化技术 使用Hibernate可以完成增删改查操作 Hibernate中Java对象的三种状态 瞬时状态 持久状态 游离状态,34/42,总结,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报