欢迎来到天天文库
浏览记录
ID:37710468
大小:25.25 KB
页数:10页
时间:2019-05-29
《Hibernate简介》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、Hibernate定义Hibernate是一种Java语言下的对象关系映射解决方案,是一个基于Java的开源的持久化中间件,对JDBC做了轻量的封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。它是一种自由、开源的软件。它用来把对象模型表示的对象映射到基于SQL的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中
2、取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五的核心接口分别加以介绍。Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的Htt
3、pSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户session。SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。Configuration接口:Configu
4、ration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。Transaction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。Session的方法的详解:1.保存 svae:立即插入数据库,
5、并且返回主键 persist:不立即(延迟)插入数据库,无返回值2.获取 load:加载对象后,对对象的改动不会立即刷新到db,必须flush到db ex:Useruser=session.load(User.class,2); user.setName('gt'); user.flush(); (延迟加载) get:加载对象后,对对象的改动立即刷新到
6、db3.更新 update:持久化对象,更新 saveOrUpdate:包含save()和update()功能,如果传入的参数是临时对象(没有保存过)就调用save()方法;如果传入的参数是游离对象,就调用update()方法 merge:不会持久化对象,只会把托管对象的修改更新到db4.删除 delete:从数据库中删除与JAVA对象对应的记录 5.清理 flush:把缓存同步到db clear:清除session的缓存大小(更新批量时,应考虑)一、Hibernate的优缺点(1)优
7、点:a、Hibernate使用Java反射机制而不是字节码增强程序来实现透明性。b、Hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。c、它支持各种关系数据库,从一对一到多对多的各种复杂关系。(2)缺点:Hibernate限制您所使用的对象模型。例如,一个持久性类不能映射到多个表。二、使用步骤1、创建Hibernate配置文件,存储和数据库连接的相关信息,放在classes下。2、创建持久化类(数据bean并实现Serializable接口)注意:Serializable接口不是
此文档下载收益归作者所有