您好,欢迎访问三七文档
当前位置:首页 > 生活休闲 > 科普知识 > 第17章 持久化框架Hibernate
1-1北京源智天下科技有限公司联系方式:。还将介绍如何下载和安装Hibernate框架。还将详细介绍如何创建并配置Hibernate配置文件以及如何创建持久化类以及创建对象关系映射文件。最后通过实例介绍如何插入数据、更新数据、删除数据以及查询数据。通过本章的学习,读者应该能够完成如下几个目标。•了解什么是ORM映射以及其特点•熟练掌握配置Hibernate配置文件•熟练掌握创建持久化类•熟练掌握创建关系映射文件•熟练掌握通过Hibernate框剪进行数据库操作1-2北京源智天下科技有限公司联系方式:,以及Hibernate持久化框架的特点以及其优势。还将介绍如何下载并安装Hibernate框架以及Hibernate架构概述。1-3北京源智天下科技有限公司联系方式:即对象/关系映射。对象是指使用的编程语言是面向对象的,而关系则是指使用的数据库是关系型数据库。对象/关系映射则是指完成面向对象语言到关系型数据库的映射,通过映射后,可以像操作对象一样来操作数据库。那是不是可以不用写SQL语句了呢?是的。通过创建一个持久化类来映射一个数据库表。其中持久化类的属性则映射到数据库表中的字段。当我们使用面向对象的方式来操作持久化对象时,ORM框架能自动将这些操作转换成SQL语句,从而完成对数据库的操作。1-4北京源智天下科技有限公司联系方式:框架的优势目前有几个比较流行的持久化框架,如:Hibernate、iBATIS以及最新的EJB3版本。其中iBATIS框架并没有实现真正的O/RMapping框架,严格来讲它只是对象和SQL之间的映射,适合于对已有项目的改造。而EJB3框架是重量级开发框架,不适合轻量级开发。Hibernate框架是一个完整的持久层解决方案,通过Hibernate的支持,可以通过面向对象的方式进行各种数据库操作,从而取代传统的JDBC数据库操作。Hibernate相对于其他的ORM框架还具有如下优势。•Hibernate是免费的、开放源代码的。•Hibernate是轻量级开发,实现O/R映射非常简单。•Hibernate可扩展性强。•Hibernate拥有众多社区支持。1-5北京源智天下科技有限公司联系方式:。在下载列表中选择下载Hibernate3.2版本。安装hibernate非常简单,如果开发Java程序则只需将hibernate根目录下的hibernate3.jar添加到ClassPath下。如果开发Web应用则只需将hibernate3.jar拷贝到Web应用的WEB-INF目录下的lib目录下。如果应用需要使用到其他第三方的JAR,则还需将其添加到ClassPath下拷贝到Web应用的WEB-INF目录下的lib目录下。1-6北京源智天下科技有限公司联系方式:过程中,会发现Hibernate提供很多类,但常用的不会很多。其中最核心的就是关于整体数据库的配置文件和与之相关的类,在此对这些进行说明。Hibernate被设计为可以在不同的环境下工作,所以有很多配置参数,不过很多参数已经有默认值了,所以配置较少的参数就可以运行了。1-7北京源智天下科技有限公司联系方式:的配置信息,一个Configuration类的实例代表了应用程序中Java类到数据库的映射的集合。应用程序通常只是创建一个Configuration实例,并通过它创建SessionFactory实例。例如下面的代码:SessionFactorysessionFactory=newConfiguration().configure().buildSessionFactory();Configuration是Hibernate的入口,在新建一个Configuration的实例时,Hibernate会在类路径中查找文件hibernate.properties和hibernate.cfg.xml文件,如果这两个文件同时存在,则hibernate.cfg.xml将会覆盖hibernate.properties文件;如果两个文件都不存在,将抛出异常。1-8北京源智天下科技有限公司联系方式:!--数据库连接URL--07propertyname=connection.url08jdbc:mysql://localhost/javaweb09/property10!--数据库驱动类--11propertyname=connection.driver_class12com.mysql.jdbc.Driver13/property14!--数据库用户名--15propertyname=connection.usernameroot/property16!--数据库用户密码--17propertyname=connection.passwordadmin/property18!--数据库方言--19propertyname=dialect20org.hibernate.dialect.MySQLDialect21/property22!--指定映射文件--23mappingresource=com/javaweb/ch17/hibernate/User.hbm.xml/24/session-factory25/hibernate-configuration1-9北京源智天下科技有限公司联系方式:实例的创建。为了创建一个SessionFactory对象,必须在Hibernate初始化时创建一个Configuration类的实例,并将已写好的映射文件交由它处理。这样,Configuration对象就可以创建一个SessionFactory对象,当SessionFactory对象传教成功后,Configuration对象就没有用了,可以简单地抛弃它。例如下面的实例代码:Configurationconfig=newConfiguration().configure();SessionFactorysessionFactory=config.buildSessionFactory();SessionFactory是线程安全的,可以被多个线程调用以取得Session对象,而构造SessionFactory很消耗资源,所以多少情况下一个应用中只初始化一个SessionFactory,为不用的线程提供Session。1-10北京源智天下科技有限公司联系方式:中对象有三种状态,临时对象(TransientObjects)、持久化对象(PersistentObjects)和脱管对象(DetachedObjects)。理解这集中对象,对Hibernate中关于持久化处理是很有帮助的,这一节将对这几种对象做说明。1-11北京源智天下科技有限公司联系方式:北京源智天下科技有限公司联系方式:的状态(1)临时状态由Java中的new命令开辟内存空间的Java对象,也就是平时所熟悉的普通Java对象。如果没有变量对它引用,它将被JVM收回。临时对象在内存是孤立存在的,它的意义仅仅是携带信息的载体,不和数据库中的数据有任何关联。通过Session的save()和saveOrUpdate()方法可以把一个瞬时对象和数据库相关联,并把临时对象携带的信息通过配置文件所做的映射插入到数据库中,这个临时对象就成为持久化对象,并拥有和数据库继续相同的id字段。(2)持久化状态持久化对象在数据库中有相应的记录,并拥有一个持久化标识。如果使用delete()方法,持久化对象就变成临时对象,并且删除数据库中相对应的记录,这个对象和数据库不再有任何关联。当一个Session执行close()或者clear()或evict()之后,持久化对象就变为脱管对象,这时对象的id虽然拥有数据库的识别值,但已经不在Hibernate持久层的管理之下,它和临时对象基本上是一样的,只不过比临时对象多了数据库的标识id值。在没有任何变量引用此对象的情况下,JVM可能将其回收。1-13北京源智天下科技有限公司联系方式:的状态(3)脱管状态Session关闭之后,与此Session相关联的持久化对象就变为脱管对象,可以继续对这个对象做修改。如果脱管对象被从新关联到某个新的Session上,会在此转成持久对象。脱管对象拥有数据库的标识id,所以它可以通过update()、saveOrUpdate()等方法,再次与持久层关联。1-14北京源智天下科技有限公司联系方式:持久化类持久化类是应用程序用来解决商业问题的类。持久化类的实例通过Hibernate持久化管理层,将保存到数据库中的。持久化类只需要符合简单的规则,也就是POJO(PlainOldJavaObject)编程模型,Hibernate就会工作的很好。但是这些规则不是硬性要求的,最新的Hibernate对持久化对象的要求很少,你可以用自己的方法表示持久化对象。(1)实现一个默认的构造函数(2)提供一个标识属性(可选)(3)不要使用final的类(可选)(4)为持久化字段声明访问器和是否可变的标志(可选)1-15北京源智天下科技有限公司联系方式:框架,开发者可以使用面向对象的方式来进行数据库访问,从而取代以前的使用JDBC进行数据库访问。通过使用Hibernate框架,Web应用可以通过面向对象的方式来进行数据库的各种访问操作,如插入数据、更新数据、删除数据、查询数据等等。(1)创建Hibernate配置文件(2)创建持久化类(3)创建对象关系映射文件(4)创建数据库表(5)插入数据(6)更新数据(7)删除数据(8)查询数据(9)使用Hibernate工具类1-16北京源智天下科技有限公司联系方式:。详细介绍如何下载和安装Hibernate框架。介绍了如何创建并配置Hibernate配置文件以及如何创建持久化类和创建
本文标题:第17章 持久化框架Hibernate
链接地址:https://www.777doc.com/doc-4054914 .html