《hibernate技术课程讲解.ppt》由会员分享,可在线阅读,更多相关《hibernate技术课程讲解.ppt(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、NAME XIFULONG西安软件服务外包学院西安软件服务外包学院课程目标:课程目标:使学员掌握并熟练使用框架进行企业项目开发使学员掌握并熟练使用框架进行企业项目开发学员要求:学员要求:1).学员必须具备学员必须具备JDBC与数据库知识与数据库知识2).学员具备学员具备java基础知识基础知识3).学员具备学员具备jsp/servlet知识知识NAME XIFULONG西安软件服务外包学院西安软件服务外包学院 第一章第一章 hibernate框架编程准备知识讲解框架编程准备知识讲解1.什么是什么是hibernate2.为什么需要为什么需要hibernate3.在在myeclipse中手动搭建中
2、手动搭建hibernate开发环境开发环境4.使用使用hibernate对数据库进行增删改查操作对数据库进行增删改查操作5.使用使用myeclipse的集成环境搭建的集成环境搭建hibernate开发环境开发环境6.hibernate的体系结构概述的体系结构概述NAME XIFULONG西安软件服务外包学院西安软件服务外包学院1.什么是什么是hibernate:hibernate(冬眠冬眠):是访问数据库的一个持久层框架,:是访问数据库的一个持久层框架,也是一组类相互工作的类的集合,主要是用来对数据也是一组类相互工作的类的集合,主要是用来对数据进行进行(curd)操作,它的底层封装了操作,它的
3、底层封装了JDBC并且扩展了并且扩展了JDBC一些功能;从分层角度来说一些功能;从分层角度来说hibernate位于数据位于数据访问层访问层(DAO),hibernate中数据访问层称为数据持久中数据访问层称为数据持久化。化。NAME XIFULONG西安软件服务外包学院西安软件服务外包学院2.为什么需要为什么需要hibernate:1)使用使用hibernate使我们的编程思维更加的使我们的编程思维更加的OO,其中会使程序员,其中会使程序员养成养成OOA思想,思想,OOP思想,思想,OOD思想。思想。2)提高生产力,使程序员不再编写重复的提高生产力,使程序员不再编写重复的JDBC代码,把主要
4、的代码,把主要的经历思考在用来实现业务方法上。经历思考在用来实现业务方法上。3)对象关系映射框架除了对象关系映射框架除了hibernate之外还有其它的类似框架,之外还有其它的类似框架,例如:例如:Toplink JDOOJBIbatis相关资料可上网查看并相关资料可上网查看并(参见参见spring的官方文档第一章的官方文档第一章spring概概览览)的的ORM模块。模块。NAME XIFULONG西安软件服务外包学院西安软件服务外包学院3.在在myeclipse中手动搭建中手动搭建hibernate开发环境开发环境1)hibernate框架环境搭建步骤:框架环境搭建步骤:(1).拷贝拷贝Hi
5、bernatehibernate-3.2.0.gahibernate-3.2hiberante3.jar核心核心jar包到我们包到我们web工程地下的工程地下的lib目录。目录。(2).拷贝拷贝Hibernatehibernate-3.2.0.gahibernate-3.2lib目录底目录底下的所有下的所有jar包到我们的包到我们的lib目录底下。目录底下。(3).拷贝拷贝Hibernatehibernate-3.2.0.gahibernate-3.2etc目录下目录下的文件到我们工程的的文件到我们工程的src目录下。目录下。(4).拷贝拷贝Hibernatehibernate-3.2.0.g
6、ahibernate-3.2egorghibernateauction目录下的类的映射文件到和自己定目录下的类的映射文件到和自己定义的类的同级目录下。义的类的同级目录下。(注意别忘了拷贝不同数据库的驱动注意别忘了拷贝不同数据库的驱动)(5).分别改写文件和类映射文件。分别改写文件和类映射文件。NAME XIFULONG西安软件服务外包学院西安软件服务外包学院2).改写改写hibernate链接数据库配置文件的信息链接数据库配置文件的信息org.hibernate.dialect.MySQLDialectcom.mysql.jdbc.Driverproperty name=hibernate.c
7、onnection.urlhibernaterootrootNAME XIFULONG西安软件服务外包学院西安软件服务外包学院3).改写持久化类映射文件的配置信息改写持久化类映射文件的配置信息NAME XIFULONG西安软件服务外包学院西安软件服务外包学院4).利用利用hibernate类工具类生成库表如下:类工具类生成库表如下:/获得数据库的链接获得数据库的链接ConnectionConfiguration cfg=new Configuration().configure();/解析解析configure()方法源代码如下方法源代码如下;public Configuration conf
8、igure()throws HibernateException configure();return this;/hibernate中中SchemaExport是是hibernate提供的工具提供的工具类类/主要是用来生产主要是用来生产DDL语言语言SchemaExport export=new SchemaExport(cfg);export.create(true,true);NAME XIFULONG西安软件服务外包学院西安软件服务外包学院4.使用使用hibernate对数据库进行增删改查操作对数据库进行增删改查操作 获得数据库的链接获得数据库的链接 Configuration cfg
9、=new Configuration().configure();SessionFactory是是hibernate生成操作数据库的内存镜像,是生成操作数据库的内存镜像,是session对象的生产者对象的生产者,我们要我们要获得获得session必须通过它获得。必须通过它获得。SessionFactory sessionFactory=cfg.buildSessionFactory();session是是hibernate给我们提供的操作数据库的方法的一个接口给我们提供的操作数据库的方法的一个接口,session接口是介于接口是介于Connectioin,TransAction;Session
10、 session=sessionFactory.openSession();Hibernate的的Session当中就有我们操作数据库的方法,如下:当中就有我们操作数据库的方法,如下:/存储一个对象存储一个对象(持久化一个对象持久化一个对象)public Serializable save(Object object)throws HibernateException;/对象进行修改操作对象进行修改操作public void update(Object object)throws HibernateException;/对象进行删除操作对象进行删除操作public void delete(Ob
11、ject object)throws HibernateException;/支持支持HQL查询语言查询语言public Query createQuery(String queryString)throws HibernateException;/支持支持sql查询查询public SQLQuery createSQLQuery(String queryString)throws HibernateException;NAME XIFULONG西安软件服务外包学院西安软件服务外包学院Query query=session.createQuery(HQL)Query是是hibernate给我们
12、提供的查询接口。给我们提供的查询接口。一下为接口中常用的方法:一下为接口中常用的方法:1).public Object uniqueResult()throws HibernateException;返回一条记返回一条记录数的方法。录数的方法。2).public List list()throws HibernateException;通过循环查询集合数据的通过循环查询集合数据的方法。方法。3).public Iterator iterate()throws HibernateException通过迭代器迭代集通过迭代器迭代集合中的数据。合中的数据。4).public Query setMax
13、Results(int maxResults);返回数据库中的最大记返回数据库中的最大记录数录数(为分页的每页显示最大记录数为分页的每页显示最大记录数)。5).public Query setFirstResult(int firstResult);返回数据库中的第一条记返回数据库中的第一条记录参数为从录参数为从0开始开始(为分页的起始记录数为分页的起始记录数)。NAME XIFULONG西安软件服务外包学院西安软件服务外包学院5.使用使用myeclipse的集成环境搭建的集成环境搭建hibernate开发环境开发环境NAME XIFULONG西安软件服务外包学院西安软件服务外包学院6.hib
14、ernate的体系结构概述的体系结构概述参见参见hibernate的官方文档第二章的官方文档第二章(hibernate的体系结的体系结构构)NAME XIFULONG西安软件服务外包学院西安软件服务外包学院总结总结NAME XIFULONG西安软件服务外包学院西安软件服务外包学院第二章第二章 hibernate对象关系映射对象关系映射(ORM)讲解讲解1.Hibernate中对象关系映射常用标签讲解中对象关系映射常用标签讲解2.使用使用hibernate操作数据库操作数据库3.Hibernate的(的(O/R)mapping理解理解NAME XIFULONG西安软件服务外包学院西安软件服务外包
15、学院1.Hibernate中对象关系映射常用标签讲解中对象关系映射常用标签讲解NAME XIFULONG西安软件服务外包学院西安软件服务外包学院对象标识对象标识ID标签的生成策略讲解:标签的生成策略讲解:常用的主键增长策略:常用的主键增长策略:native增长方式:根据本地数据库所支持的增长方式增长方式:根据本地数据库所支持的增长方式进行增长,由底层数据库来匹配。进行增长,由底层数据库来匹配。increment:主要是由支持这种增长方式的数据库来决主要是由支持这种增长方式的数据库来决定的,定的,mysql数据库就是支持本增长方式,数据库就是支持本增长方式,identity:主要是由支持这种增长
16、方式的数据库来决定主要是由支持这种增长方式的数据库来决定的的,mysql等。等。uuid:由由hibernate自己生成,自己生成,(注意:对象的标识类型注意:对象的标识类型必须是字符串必须是字符串)。assigned:指派,由程序员来自己生成主键的增长方式指派,由程序员来自己生成主键的增长方式sequence:主要是由支持这种增长方式的数据库来决定主要是由支持这种增长方式的数据库来决定的,的,oracle数据库。数据库。参见参见hibernate的官方文档对象关系映射的官方文档对象关系映射(O/R)5.1章节。章节。NAME XIFULONG西安软件服务外包学院西安软件服务外包学院2.使用使
17、用hibernate操作数据库操作数据库NAME XIFULONG西安软件服务外包学院西安软件服务外包学院3.Hibernate的(的(O/R)mapping理解理解NAME XIFULONG西安软件服务外包学院西安软件服务外包学院第三章第三章 hibernate关联关系映射讲解关联关系映射讲解1 Many-to-One单双向单双向;2 One-to-Many单双向单双向;3 One-to-One单双向单双向;4 Many-to-Many单双向;单双向;NAME XIFULONG西安软件服务外包学院西安软件服务外包学院1 Many-to-One:标签是标签是hibernate用来描述类的引用关
18、系用来描述类的引用关系,many-to-one标签会在多的一段生成一个外键指向一的一端标签会在多的一段生成一个外键指向一的一端;NAME XIFULONG西安软件服务外包学院西安软件服务外包学院2 One-to-Many单向:单向:1)类的写法:)类的写法:员工类如下员工类如下public class Employees private int eid;private String eName;public int getEid()return eid;2)类的写法:部门类如下)类的写法:部门类如下public class Dept private int did;private String
19、 deptName;private Set emps=new HashSet();NAME XIFULONG西安软件服务外包学院西安软件服务外包学院3)hibernate类的映射文件部门类的写法类的映射文件部门类的写法class name=com.cissst.entity.Dept table=tb_deptNAME XIFULONG西安软件服务外包学院西安软件服务外包学院4)hibernate类的映射文件员工类的写法类的映射文件员工类的写法NAME XIFULONG西安软件服务外包学院西安软件服务外包学院5)双向映射就是多对一和一对多标签的结合使用双向映射就是多对一和一对多标签的结合使用部
20、门类的写法部门类的写法public class Dept private int did;private String deptName;private Set emps=new HashSet();员工类的写法员工类的写法public class Employees private int eid;private String eName;private Dept dept;NAME XIFULONG西安软件服务外包学院西安软件服务外包学院hibernate类的映射文件部门类的写法类的映射文件部门类的写法NAME XIFULONG西安软件服务外包学院西安软件服务外包学院hibernate类的
21、映射文件员工类的写法类的映射文件员工类的写法NAME XIFULONG西安软件服务外包学院西安软件服务外包学院第四章第四章 hibernate其它映射讲解其它映射讲解1 hibernate中组件映射的讲解中组件映射的讲解2 hibernate中继承映射的讲解中继承映射的讲解NAME XIFULONG西安软件服务外包学院西安软件服务外包学院第五章第五章 hibernate其它知识讲解其它知识讲解1 hibernate中对象的生命周期中对象的生命周期2 hibernate的事务关联机制讲解的事务关联机制讲解3 hibernate的锁模式的锁模式(悲观锁,乐观锁悲观锁,乐观锁)4.hibernate的查询语言的查询语言(HQL)讲解(讲解(hibernte的查询会的查询会插入到整个讲解过程)插入到整个讲解过程)5.hibernate集成集成struts1.x讲解讲解