Hibernate复习之Hibernate基本介绍

Hibernate复习之Hibernate基本介绍

ID:37918548

大小:242.00 KB

页数:13页

时间:2019-06-02

Hibernate复习之Hibernate基本介绍_第1页
Hibernate复习之Hibernate基本介绍_第2页
Hibernate复习之Hibernate基本介绍_第3页
Hibernate复习之Hibernate基本介绍_第4页
Hibernate复习之Hibernate基本介绍_第5页
资源描述:

《Hibernate复习之Hibernate基本介绍》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Hibernate复习之Hibernate基本介绍众所周知,目前流行的面向对象的对象关系映射的Java持久层框架有MyBatis和hibernate,他们都是对象关系映射ORM,解决的主要问题就是对象-关系的映射,域模型和关系模型都分别建立在概念模型的基础上,域模型是面向对象的,关系模型是面向关系的,一般情况下,一个持久化类和一个表对应,类的每个实例对应表中的一条记录。(可能存在类中多个属性对应一列的情况,映射组成关系),ORM中间件采用元数据来描述对象-关系映射细节,元数据通常采用XML格式,并且存放在专门的对象-

2、关系映射文件中,如果希望把ORM软件集成到自己的Java应用中,用户首先要配置对象-关系映射文件。Hibernate中也就是entity.hbm.xml,而MyBatis中就是entityMapper.xml下面主要介绍一下Hibernate的执行过程:session.save(customer)执行过程:1)运用反射机制,获得customer对象的类型Customer.class2)参考对象-关系映射元数据,了解Customer类对应的表,以及属性对应的列,Customer类和其他类关系。3)根据以上映射信息,生成

3、SQL语句insertintotab_customervalues(id,name,password,telphone);4)调用JDBCAPI,执行以上的SQL语句。JDBC与Hibernate比较:1,JDBC:Java中嵌入SQL,不便于维护Hibernate:无须编写SQL语句;由Hibernate通过读取映射文件在运行时自动生成SQLsave(student)->insertintocustomervalues(?,?,?);2,JDBC:查询数据,需要手动封装成对象;保存对象,需要手动插入值Hiberna

4、te:可自动实现对象和表中记录的转换3,JDBC:查询内存中已存在的对象,修改属性值,均需要和数据库进行交互Hibernate:通过Dirtychecking(脏检查)避免交互;Hibernate的工作原理:1,Hibernate框架根据hibernate.cfg.xml的配置的信息来和数据库进行通信,当然和spring结合后也可以通过注解来实现。2,Hibernate框架根据具体的映射文件**.hbm.xml来保存,更新,删除,查询对象。HibernateAPI,Hibernate中几个比较重要的类:Configu

5、ration接口:Configuration对象用于配置并且启动Hibernate,Hibernate应用通过Configuration实例还指定对象-关系映射文件的位置或者动态配置Hibernate的属性,然后创建SessionFactory实例Configurationconfig=newConfiguration();Config.configure();SessionFactoryfactory=config.buildSessionFactory();SessionFactory:用来构造Session的实

6、例对象,它的特点:1)线程安全:该实例对象何以被多个线程共享2)重量级:该实例对象的构造和销毁消耗系统资源,所以一般在应用程序启动的时候就构造实例对象,一般一个数据库对应一个SessionFactory的实例对象,如果要访问多个数据库,就需要创建多个该实例对象。3)SessionFactory实例对象中维护了一个很大的缓存,存放了一些预定义的SQL语句和XML配置文件的信息,另外还维持了一个Hibernate的第二级缓存(缓存了所有Session对象所加载的POJO对象),用来保存在该生命周期中的一些业务对象,但是这

7、个第二级缓存默认是关闭的,必须在xml中手动配置才可以开放Sessionsession=factory.openSession();Session(别名:持久化管理器),用来对对象的保存,更新,删除和查询特点:1)线程不安全,要避免同一个Session对象被多个线程共享,一般一个线程对应一个Session2)轻量级:可以随意的构造和销毁该实例对象。3)Session对象中维护了一个缓存,称为Hibernate的第二级缓存(缓存了当前Session对象所加载的那些POJO对象),每个Session对象都有自己的缓存。Q

8、uery:利用HQL语句(HibernateQueryLanguage)用来查询单个或者多个对象,面向对象的Queryquery=session.createQuery("fromStudentwherestudentId=1");Students=(Student)query.uniqueResult();Criteria:功能同上,以面向对

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。