《《hibernate入门》ppt课件》由会员分享,可在线阅读,更多相关《《hibernate入门》ppt课件(37页珍藏版)》请在金锄头文库上搜索。
1、第一章,hibernate入门,本门课程目标,学完本门课程后,你能够: 使用Hibernate实现数据持久化 在项目中熟练使用Hibernate 使用Hibernate实现对数据库的增删改查操作 掌握HQL查询 掌握Criteria查询 掌握Oracle数据库的常用操作 优化Oracle数据库的性能,课程项目展示,蓝点租房系统,本章目标,了解Hibernate优势 理解持久化及ORM的概念 了解Hibernate的基本原理 搭建项目框架编写hibernate配置文件、实体映射文件 学会使用Hibernate完成数据增删改操作 实体对象的三种状态,JDBC操作数据库的步骤,通过Class.for
2、Name 注册驱动,通过DriverManager.getConnection 获得数据库连接 通过获得的Connection 对象生成Statement 对象 使用Statement 对象对数据库进行增、删、改、查的操作 关闭Connection 对象和Statement 对象 在整个操作过程中,需要对SQLException 进行捕获和处理,List users = new ArrayList(); User user ; try Connection conn = DBUtil.getConnection(); Statement statement = conn.createState
3、ment(); ResultSet resultSet = statement.executeQuery(“select * from users “); while(resultSet.next() user = new User(); user.setId(resultSet.getInt(1); /省略其他赋值方法 . users.add(User); statement.close(); conn.close(); catch (Exception e) e.printStackTrace(); ,获得数据库连接,创建Statement对象,使用Statement对象对数据库进行操作,
4、关闭Connection 对象和Statement 对象,处理异常,JDBC的缺点,开发效率低 代码冗余 pstmt的setXX方法 方法参数冗余的getXX方法 如果POJO的属性很多,代码增加 重复性工作多,能否使用对象将POJO作为参数,简单的完成增删改查操作?,Hibernate简介,Hibernate作者Gavin King Hibernate创始人 Hibernate in action 作者 EJB 3.0的Entity bean specification的实际领导人(sun任命的领导人是Linda DeMichiel) 参加了XDoclet和Middlegen的开发 2003
5、年9月加入JBoss,全职进行Hibernate开发 Hibernate 一个开发源代码的对象关系映射框架 对JDBC进行了非常轻量级的对象封装 将JavaBean对象和数据库的表建立对应关系,Hibernate优势,Hibernate 是一个优秀的Java 持久化层解决方案 是当今主流的对象关系映射(ORM)工具 Hibernate 简化了JDBC 繁琐的编码 Hibernate 将数据库的连接信息都存放在配置文件中,Session session = HiberanteUtil.getSession(); Query query = session.createQuery(“from Us
6、er“); List users =(List)query.list();,本章目标,了解Hibernate优势 理解持久化及ORM的概念 了解Hibernate的基本原理 搭建项目框架编写hibernate配置文件、实体映射文件 学会使用Hibernate完成数据增删改操作 实体对象的三种状态,持久化与ORM3-1,持久化 将程序中数据在瞬时状态和持久状态间转换的机制,持久化与ORM3-2,持久化层 JDBC 就是一种持久化机制 将程序数据直接保存成文本文件也是持久化机制的一种实现 在分层结构中,DAO 层(数据访问层)也被称为持久化层 持久化完成的操作 将对象保存到关系型数据库中 将关系型
7、数据库中的数据读取出来 以对象的形式封装,持久化与ORM3-3,ORM(Object Relational Mapping,对象关系映射) 编写程序的时候,以面向对象的方式处理数据 保存数据的时候,却以关系型数据库的方式存储 ORM解决方案包含下面四个部分 在持久化对象上执行基本增、删、改、查操作的API 用于对持久化对象或属性查询的一种语言或者API 用于实体关系映射的工具 能够与事务对象交互、执行检查、延迟加载以及其他优化功能,本章目标,了解Hibernate优势 理解持久化及ORM的概念 了解Hibernate的基本原理 搭建项目框架编写hibernate配置文件、实体映射文件 学会使用
8、Hibernate完成数据增删改操作 实体对象的三种状态,Hibernate配置文件,hibernate.cfg.xml文件 映射文件的配置(*.hbm.xml), org.hibernate.dialect.Oracle9Dialect jdbc:oracle:thin:10.0.0.188:1521:ORCL jbit bdqn oracle.jdbc.driver.OracleDriver ,数据库URL,数据库用户名,数据库密码,数据库驱动,使用的不同数据库类型,hibernate.cfg.xml文件,User.hbm.xml文件,本章目标,了解Hibernate优势 理解持久化及OR
9、M的概念 了解Hibernate的基本原理 搭建项目框架编写hibernate配置文件、实体映射文件 学会使用Hibernate完成数据增删改操作 实体对象的三种状态,租房系统项目介绍2-1,租房系统是一个B/S 架构的信息发布平台 系统包含的角色 注册用户 非注册用户 系统功能 发布房屋信息(注册用户) 浏览房屋信息(注册用户与非注册用户) 查看单个房屋信息(注册用户与非注册用户) 查询房屋信息(注册用户与非注册用户) 修改房屋信息(注册用户) 删除房屋信息(注册用户),租房系统项目介绍2-2,租房系统数据库表,准备Hibernate3-1,下载需要的jar包 下载Hibernate Hib
10、ernate 的官方主页是www.hibernate.org 推荐下载hibernate-distribution-3.3.2.GA-dist.zip Hibernate包目录结构 部署jar包 hibernate3.jar required 目录下的jar 包 Oracle 数据库驱动jar包,准备Hibernate3-2,创建Hibernate配置文件 用于配置数据库连接 运行时所需的各种属性 默认文件名为“hibernate.cfg.xml”, org.hibernate.dialect.Oracle9Dialect jdbc:oracle:thin:10.0.0.188:1521:OR
11、CL jbit bdqn oracle.jdbc.driver.OracleDriver ,准备Hibernate3-3,创建实体类和实体映射文件 定义实体类(也称持久化类),实现java.io.Serializable 接口,添加默认构造方法 配置映射文件(*.hbm.xml) 向hibernate.cfg.xml文件中配置映射文件,public class User implements java.io.Serializable /字段 private Integer id; private String name; private String password; private Str
12、ing telephone; private String username; private String isadmin; public User() /省略getter&setter 方法 , SEQ_ID ,指导为租房网系统配置Hibernate,训练要点: Hibernate配置文件配置 实体映射文件配置 需求说明: 创建租房网项目HouseRent,并为其增加Hibernate支持 添加jar包 编写配置文件 编写实体类及映射文件(用户对象),讲解需求说明,指导为租房网系统配置Hibernate,实现思路: 创建项目HouseRent及相应的包,并导入Hibernate 框架所需的
13、jar包 编写配置文件hibernate.cfg.xml,指定数据库连接信息,指定ORM映射文件 编写实体类User.java,属性与Users表的字段对应 编写实体映射文件,指定Users表和User类的映射关系,完成时间:20分钟,共性问题集中讲解,常见调试问题及解决办法 代码规范问题,共性问题集中讲解,小结,简述JDBC的缺点 简述Hibernate的优势 为项目添加Hibernate的准备工作,本章目标,了解Hibernate优势 理解持久化及ORM的概念 了解Hibernate的基本原理 搭建项目框架编写hibernate配置文件、实体映射文件 学会使用Hibernate完成数据增删
14、改操作 实体对象的三种状态,使用Hibernate 操作数据库,使用Hibernate操作数据库需要七个步骤 (1)读取并解析配置文件 (2)读取并解析映射信息,创建SessionFactory (3)打开Session (4)开始一个事务(增删改操作必须,查询操作可选),Configuration conf = newConfiguration().configure();,SessionFactory sf = conf.buildSessionFactory();,Session session = sf.openSession();,Transaction tx = session.b
15、eginTransaction();,使用Hibernate 操作数据库,使用Hibernate操作数据库需要七个步骤 (5)数据库操作 (6)提交事务(回滚事务) (7)关闭session,session.save(user);/或其它操作,mit();(tx.rollback();),session.close();,如果Hibernate 配置文件中,current_session_context_class 参数设置为thread 并采用SessionFactory 的getCurrentSession()方法获的Session 实例则不需要此步,使用Hibernate实现增加用户,C
16、onfiguration conf = null; SessionFactory sessionFactory = null; Session session = null; Transaction tx = null; try conf = new Configuration().configure(); sessionFactory = conf.buildSessionFactory(); session = sessionFactory.openSession(); tx = session.beginTransaction(); session.save(user); mit(); catch (HibernateException e) tx.rollback(); e.printStackTrace(); finally session.close(); sessionFactory.close(); ,1.读取配置文件,2.创建SessionFactory,3.打开ses