JavaEE核心技术(第7章 数据持久化-Hibernate)
hibernate的基本用法

hibernate的基本用法Hibernate是一个开源的Java框架,用于简化数据库操作。
它为开发人员提供了一个更加简单、直观的方式来管理数据库,同时也提高了应用程序的性能和可维护性。
本文将逐步介绍Hibernate的基本用法,包括配置、实体映射、数据操作等。
一、配置Hibernate1. 下载和安装Hibernate:首先,我们需要下载Hibernate的压缩包并解压。
然后将解压后的文件夹添加到Java项目的构建路径中。
2. 创建Hibernate配置文件:在解压后的文件夹中,可以找到一个名为"hibernate.cfg.xml"的文件。
这是Hibernate的主要配置文件,我们需要在其中指定数据库连接信息和其他相关配置。
3. 配置数据库连接:在"hibernate.cfg.xml"文件中,我们可以添加一个名为"hibernate.connection.url"的属性,用于指定数据库的连接URL。
除此之外,还需要指定数据库的用户名和密码等信息。
4. 配置实体映射:Hibernate使用对象关系映射(ORM)来将Java类映射到数据库表。
我们需要在配置文件中使用"mapping"元素来指定实体类的映射文件。
这个映射文件描述了实体类与数据库表之间的对应关系。
二、实体映射1. 创建实体类:我们需要创建一个Java类,用于表示数据库中的一行数据。
这个类的字段通常与数据库表的列对应。
同时,我们可以使用Hibernate提供的注解或XML文件来配置实体的映射关系。
2. 创建映射文件:可以根据个人喜好选择使用注解还是XML文件来配置实体类的映射关系。
如果使用XML文件,需要创建一个与实体类同名的XML文件,并在其中定义实体类与数据库表之间的映射关系。
3. 配置实体映射:在配置文件中,我们需要使用"mapping"元素来指定实体类的映射文件。
软件开发框架(J2EE)Hibernate概述习题与答案

一、多选题1.在Hibernate 主配置文件(hibernate.cfg.xml)中,以下哪个元素()为它的根元素。
A.<hibernate-configuration>元素B.<session-factory>元素C.<property>元素D.<mapping>元素E.<hibernate-mapping>元素2.在Hibernate 主配置文件(hibernate.cfg.xml)中,是通过哪个元素()来配置映射文件的。
A.<hibernate-configuration>元素B.<session-factory>元素C.<property>元素D.<mapping>元素E.<hibernate-mapping>元素3.下面关于Hibernate 的映射文件说法正确的有哪些()。
A.Hibernate 是以xml 格式的文件来指定对象与关系数据之间的映射B.在hibernate.cfg.xml文件中可以配置<mapping>元素的resource属性来指定映射文件C.配置映射文件时,需要遵循它对应的DTD 文件格式D.在映射文件中,<class>元素的<id>子元素只能出现一次E.<id>元素的<generator>子元素用来设定标识符生成器4.在Hibernate 的映射文件中,<id>元素的<generator>子元素用来设定标识符生成器,以下对常用的标识符生成器的用法说法正确的是()。
A.increment:适用于代理主键。
用于为long, short 或者int 类型生成唯一标识B.identity:适用于代理主键。
由底层数据库生成标识符C.sequence:适用于代理主键。
Hibernate 根据底层数据库的序列来生成标识符D.hilo:使用一个高/低位算法高效的生成long、short 或者int 类型的标识符E.seqhilo:使用一个高/低位算法来高效的生成long、short 或者int 类型的标识符,给定一个数据库序列(sequence)的名字5.Hibernate 采用xml 文件来配置对象—关系映射有哪些好处()。
Java语言框架发展历程

Java语言框架发展历程Java语言是一种广泛应用于软件开发领域的编程语言,而Java框架则是基于Java语言提供的一种开发平台,它提供了一系列的工具和库,帮助开发人员更高效地构建和管理应用程序。
本文将回顾Java语言框架的发展历程,并探讨一些常用的Java框架。
一、JavaEE框架JavaEE(Java Enterprise Edition)是一个用于构建企业级应用程序的Java平台。
最早的JavaEE框架是J2EE(Java 2 Enterprise Edition),它于1999年发布。
J2EE包含了许多组件和技术,如Java Servlet、JavaServer Pages(JSP)、Enterprise JavaBeans(EJB)等,用于支持企业级应用的开发和部署。
随着时间的推移,JavaEE框架逐渐发展壮大,先后推出了JavaEE 5、JavaEE 6、JavaEE 7、JavaEE 8等版本,每个版本都带来了新的功能和改进。
二、Spring框架Spring框架是一个轻量级的Java框架,它的目标是简化企业级Java应用的开发。
Spring框架最初由Rod Johnson于2003年创建,旨在解决当时J2EE开发中的一些问题,如复杂性和低效性。
Spring框架提供了一整套解决方案,包括依赖注入、面向切面编程、控制反转等,帮助开发人员构建松耦合、可测试和可扩展的应用程序。
随着时间的推移,Spring框架不断发展并推出了Spring Boot、Spring MVC、Spring Security等相关项目,为Java开发提供了更多的选择和便利。
三、Hibernate框架Hibernate是一个Java持久化框架,旨在简化应用程序与关系数据库之间的交互操作。
Hibernate框架的诞生解决了Java开发中的对象关系映射(ORM)问题。
通过Hibernate框架,开发人员可以使用简单的Java对象(POJO)代替传统的SQL语句进行数据操作,提高了开发效率和代码的可读性。
如何在Java中进行数据的持久化和读取操作

如何在Java中进行数据的持久化和读取操作数据的持久化是指将程序中的数据存储在持久存储介质中(如文件、数据库等)以便下次程序运行时能够重新读取和使用。
在Java中,数据的持久化和读取操作可以通过文件操作、数据库操作、序列化和反序列化等方式实现。
本文将重点介绍在Java中进行数据的持久化和读取操作的几种方法。
一、文件操作1.1文件写入在Java中进行文件数据的持久化操作可以使用FileOutputStream 或者BufferedWriter等类来实现。
通过FileOutputStream类,可以将数据以字节的形式写入文件,示例代码如下:```javatry {String data = "Hello, World!";FileOutputStream fos = new FileOutputStream("data.txt");fos.write(data.getBytes());fos.close();} catch (IOException e) {e.printStackTrace();}```上述代码中,首先定义了一个字符串数据并赋值给data变量,然后通过FileOutputStream类打开文件输出流,并将字符串数据以字节形式写入文件中,最后关闭文件输出流。
1.2文件读取使用FileInputStream或者BufferedReader类可以实现对文件数据的读取操作。
示例代码如下:```javatry {FileInputStream fis = new FileInputStream("data.txt");int content;while ((content = fis.read()) != -1) {System.out.print((char) content);}fis.close();} catch (IOException e) {e.printStackTrace();}```上述代码中,首先使用FileInputStream类打开文件输入流,并定义一个整型变量content用于存储读取的字节数据。
hibernate框架的工作原理

hibernate框架的工作原理Hibernate框架的工作原理Hibernate是一个开源的ORM(Object-Relational Mapping)框架,它将Java对象映射到关系型数据库中。
它提供了一种简单的方式来处理数据持久化,同时也提供了一些高级特性来优化性能和可维护性。
1. Hibernate框架的基本概念在开始讲解Hibernate框架的工作原理之前,需要先了解一些基本概念:Session:Session是Hibernate与数据库交互的核心接口,它代表了一个会话,可以用来执行各种数据库操作。
SessionFactory:SessionFactory是一个线程安全的对象,它用于创建Session对象。
通常情况下,应用程序只需要创建一个SessionFactory对象。
Transaction:Transaction是对数据库操作进行事务管理的接口。
在Hibernate中,所有对数据库的操作都应该在事务中进行。
Mapping文件:Mapping文件用于描述Java类与数据库表之间的映射关系。
它定义了Java类属性与数据库表字段之间的对应关系。
2. Hibernate框架的工作流程Hibernate框架主要分为两个部分:持久化层和业务逻辑层。
其中,持久化层负责将Java对象映射到数据库中,并提供数据访问接口;业务逻辑层则负责处理业务逻辑,并调用持久化层进行数据访问。
Hibernate框架的工作流程如下:2.1 创建SessionFactory对象在应用程序启动时,需要创建一个SessionFactory对象。
SessionFactory是一个线程安全的对象,通常情况下只需要创建一个即可。
2.2 创建Session对象在业务逻辑层需要进行数据访问时,需要先创建一个Session对象。
Session是Hibernate与数据库交互的核心接口,它代表了一个会话,可以用来执行各种数据库操作。
2.3 执行数据库操作在获取了Session对象之后,就可以执行各种数据库操作了。
JavaEE框架详解

JavaEE框架详解JavaEE(Java Enterprise Edition)是一种用于开发大型企业级应用程序的Java平台。
它提供了一整套标准化的API和开发工具,能够满足企业级应用开发的各种需求。
JavaEE框架是基于JavaEE平台的一种软件开发框架,它提供了一系列的组件和工具,可以帮助开发者更加高效、简便地开发和部署JavaEE应用。
本文将对JavaEE框架进行详细解析。
一、JavaEE框架概述JavaEE框架是构建JavaEE应用程序的基础设施。
它提供了一种基于组件的开发模式,开发者可以通过配置和组合不同的组件来构建应用程序。
JavaEE框架提供了一系列的标准化API、工具和解决方案,可以加速应用程序的开发过程。
JavaEE框架主要包括以下几个核心组件:1. Servlet容器:用于处理HTTP请求和响应,基于Servlet规范实现。
2. JSP容器:用于解析和执行JSP页面,基于JSP规范实现。
3. EJB容器:用于管理和执行企业级JavaBean,基于EJB规范实现。
4. JPA提供者:用于持久化Java对象到关系数据库,基于JPA规范实现。
二、常见的JavaEE框架1. Spring框架Spring框架是目前最流行的JavaEE框架之一。
它提供了一系列的模块,包括依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等,可以帮助开发者更加高效地开发JavaEE应用程序。
Spring框架具有良好的可扩展性和灵活性,可以与其他框架无缝集成,被广泛应用于企业级应用开发。
2. Hibernate框架Hibernate是一个强大的对象关系映射(ORM)框架,用于将Java对象映射到关系数据库中的表结构。
它简化了数据库操作的编码工作,提供了一套面向对象的API,可以方便地进行数据库的增删改查操作。
Hibernate框架具有良好的跨数据库兼容性,支持的数据库种类非常丰富,被广泛应用于JavaEE应用程序的数据持久化层。
Hibernate总结PPT教学课件
1、即时加载 lazy=“false”; 2、延迟加载 lazy=“ture”; 特点:在需要使用时对数据进行加载,节约资源
HQL联表查询中fetch的使用 本地SQL查询
1、在实体映射文件中编写
2、在项目中进行调用
2020/12/11
9
第5章:Criteria查询
Hibernate学习总结
2020/12/11
1
第1章: Hibernate入门
数据持久化ORM 在项目中使用Hibernate
2020/12/11
2
数据持久化ORM
ORM(Object Relationship Mapping)
内存
Hibernate 项目
ORM
数据库
2020/12/11
3
2020/12/11
6
第3章: HQL实用技术
使用HQL语句的步骤:
1、得到Session 2、编写HQL语句 3、创建Query对象 4、执行查询
HQL中占位符的使用
1、使用‘?’占位符 为占位符设值 eq: query. setType(index,value); index从0开始 2、命名参数占位符 “:”后面必须为实体类的属性 设置值: QueryProperities qp = new QueryProperities();
Criteria查询
原理:根据实体类的类型进行查询 Criteria查询时条件设置:使用add()方法 1、 使用Restriction
Restriction. le(“实体类对象属性”,值) //小于 Restriction. ge(“实体类对象属性”,值) //大于 2、使用Example(将对象中不为空的属性作为条件) 将条件封装到实体对象,在使用该对象查询 Example. create(实体类对象);
JavaEE练习题(附答案)
一、名词解释(共5小题每题3分,共15分)1、MVC :Model、View和Controller,是一个设计模式,它强制性地使应用程序的输入、处理和输出分开,三个部分以最小的耦合协同工作,以增加程序的可扩展性和可维护性;2、OGNL:Object Graphic Navigation Language(对象图导航语言),是一个开源项目,是一种功能强大的EL(表达式语言),可通过简单的表达式来访问Java对象中的属性;3、持久化:即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘),是将程序数据在持久状态和瞬时状态间转换的机制;4、ORM:对象关系映射,是用于将对象与对象之间的关系对应到数据库表与表之间关系的一种模式;5、通知(Advice):定义了切面中的实现类型是指在定义好的切入点处所有执行的程序代码;6、事务:是工作中的基本逻辑单位,可以用于确保数据库能够被正确修改,避免数据只修改了一部分而导致数据不完整,或者在修改时受到用户干扰;7、POJO类:POJO(Plain Old Java Objects)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称,它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。
8、AOP:面向切面编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术;9、IoC:Inversion of Control(控制反转),是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,IoC的基本概念是不创建对象,但是描述创建它们的方式,在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。
容器负责将这些联系在一起;10、HQL:Hibernate Query Language的缩写,HQL的语法很像SQL,但HQL是一种面向对象的查询语言,操作的对象是类、实例、属性等。
java学习经验Hibernate总结
Hibernate工作原理及为什么要用?一原理:1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory3.打开Sesssion4.创建事务Transaction5.持久化操作6.提交事务7.关闭Session。
8.关闭SessionFactory为什么要用:1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。
他很大程度的简化DAO层的编码工作3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。
4. hibernate的性能非常好,因为它是个轻量级框架。
映射的灵活性很出色。
它支持各种关系数据库,从一对一到多对多的各种复杂关系。
二Hibernate 的核心接口及其作用1 Configuration类:配置Hibernate启动Hibernate创建SessionFactory对象2 SessionFactory:初始化Hibernate创建Session对象线程安全—同一实例被多个线程共享重量级:代表一个数据库内部维护一个连接池2.1 openSession():总是创建新的session,需要手动close()2.2 getCurrentSession() : 必须在hibernate.cfg.xml设置session 上下文事务自动提交并且自动关闭session.从上下文环境中获得session,如果当时环境中不存就创建新的.如果环境中存在就使用环境中的,而且每次得到的都是同一个session (在session提交之前,提交之后就是新的了) 应用在一个session中有多个不同DAO操作处于一个事务时3 Session:负责保存、更新、删除、加载和查询对象轻量级--可以经常创建或销毁3.1 Load与get方法的区别:简单理解:load是懒加载,get是立即加载.load方法当使用查出来的对象时并且session未关闭,才会向数据库发sql, get会立即向数据库发sql返回对象3.3 merge(); 合并对象更新前会先select 再更新3.4clear()清空缓存,flush()将session中的数据同步到数据库两者组合使用于批量数据处理3.4Transaction commit() rollback()JPA: java persistence API 提供了一组操作实体bean的注解和API规范SchemaExporthiberante的生成数据库表(及其他ddl)的工具类可以通过这个工具类完成一些ddl四Hibernate查询查询语言主要有:HQL 、QBC (Query By Criteria条件查询) 、 Native SQLHql:1、属性查询2、参数查询、命名参数查询3、关联查询4、分页查询5、统计函数五优化抓取策略连接抓取(Join fetching)使用 OUTER JOIN(外连接)来获得对象的关联实例或者关联集合查询抓取(Select fetching)另外发送一条 SELECT 语句抓取当前对象的关联实体或集合另外可以配置hibernate抓取数量限制批量抓取(Batch fetching)另外可以通过集合过滤来限制集合中的数据量使用session.createFilter(topic.getReplies(),queryString).list();检索策略延迟检索和立即检索(优先考虑延迟检索)N+1问题指hibernate在查询当前对象时查询相关联的对象查询一端时会查询关联的多端集合对象解决方案:延迟加载连接抓取策略二级缓存集合过滤 BatchSize限制记录数量映射建议使用双向一对多关联,不使用单向一对多灵活使用单向一对多关联不用一对一,用多对一取代配置对象缓存,不使用集合缓存一对多集合使用Bag,多对多集合使用Set继承类使用显式多态表字段要少,表关联不要怕多,有二级缓存撑腰Hibernbate缓存机制性能提升的主要手段Hibernate进行查询时总是先在缓存中进行查询,如缓存中没有所需数据才进行数据库的查询.Hibernbate缓存:一级缓存 (Session级别)二级缓存(SessionFactory级别)查询缓存 (基于二级缓存存储相同参数的sql查询结果集)一级缓存(session缓存)Session缓存可以理解为session中的一个map成员, key为OID ,value为持久化对象的引用在session关闭前,如果要获取记录,hiberntae先在session缓存中查找,找到后直接返回,缓存中没有才向数据库发送sql三种状态的区别在于:对象在内存、数据库、session缓存三者中是否有OID临时状态内存中的对象没有OID, 缓存中没有OID,数据库中也没有OID 执行new或delete()后持久化状态内存中的对象有OID, 缓存中有OID,数据库中有OIDsave() load() get() update() saveOrUpdate() Query对象返回的集合游离(脱管)状态内存中的对象有OID, 缓存中没有OID,数据库中可能有OIDflush() close()后使用session缓存涉及三个操作:1将数据放入缓存2从缓存中获取数据3缓存的数据清理4二级缓存SessionFactory级别SessionFactory级别的缓存,它允许多个Session间共享缓存一般需要使用第三方的缓存组件,如: Ehcache Oscache、JbossCache等二级缓存的工作原理:在执行各种条件查询时,如果所获得的结果集为实体对象的集合,那么就会把所有的数据对象根据OID放入到二级缓存中。
persistence的用法
persistence的用法一级标题:介绍Persistence概念和重要性在计算机科学中,持久化(Persistence)是指将数据存储在持久存储介质上,以便稍后检索和使用。
持久化对于各种应用程序非常重要,尤其是在需要长期保存数据、保护数据免受系统故障或停电影响的情况下。
通过持久化,我们可以确保数据的安全和可靠性,并为用户提供无缝的体验。
二级标题:数据库持久化数据库持久化是最常见和广泛使用的一种情况。
数据库是一个结构化存储数据的集合,可以实现对数据的高效检索、修改和删除操作。
当应用程序需求需要长期保存大量数据或处理复杂查询时,数据库的使用尤为突出。
通过在磁盘上创建表,并将数据存储在这些表中,应用程序可以随时访问并利用这些数据。
传统关系型数据库如MySQL和Oracle通常采用事务模型来实现持久化。
事务是一系列操作单元组成的逻辑工作单位,它要么全部执行成功并永久保存结果,要么完全不执行以保证一致性。
支持事务特性使得数据库能够实现高度可靠且可恢复的持久化。
近年来,越来越多的应用程序开始采用NoSQL数据库。
与传统关系型数据库不同,NoSQL数据库更加弹性、可扩展,并且通常可以处理大规模数据集。
NoSQL数据库的一种持久化方法是将数据保存在分布式文件系统或键值存储中。
持久化提供了对于海量、支撑高负载的数据访问的必要基础。
二级标题:文件系统持久化除了使用数据库之外,应用程序还可以通过文件系统进行持久化。
文件系统将数据组织为文件和目录的形式,并以二进制或文本格式存储在磁盘上。
这种方式使得用户可以直接通过文件浏览器或命令行接口操作数据。
在文件系统持久化中,开发人员可以利用标准的I/O操作读取和写入数据。
无论是保存配置信息、日志记录还是用户生成的内容,使用文件系统进行持久化提供了灵活性和可维护性。
针对不同类型的应用场景,常见的文件格式包括文本(如JSON、XML)、二进制(如图片、视频)以及特定领域相关的格式(如CSV)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2 Hibernate各种文件的作用
• Hibernate使用*.hbm.xml映射文件将这些POJO类中的属性 映射到数据表中(本例就是Kcb.hbm.xml)
数据表
2.2 Hibernate各种文件的作用 • 该配置文件大致分为3个部分: • (1)类、表映射配置 <class name="org.model.Kcb" table="KCB"> • Name:指定POJO类 • Table:指定当前类对应数据表
2.2 Hibernate各种文件的作用 • Session对象的创建: • ① 初始化Hibernate配置管理类 Configuration。 • ② 通过Configuration类实例创建Session的 工厂类SessionFactory。 • ③ 通过SessionFactory得到Session实例。
4.1 Hibernate概述
图1 Hibernate体系结构
2 Hibernate应用基础 • 2.1 Hibernate应用实例开发 • 1.建立数据库及表 • 本例使用SQL Server 2005数据库。在XSCJ数据库中 建立KCB表:
2 Hibernate应用基础
• 2.在MyEclipse中创建对SQL Server 的连接 • 【Window】→【Open Perspective】→【MyEclipse Database Explorer】,打开MyEclipse Database浏览器,右击菜单,如图2所示, 选择【New…】菜单项,出现如图3所示的对话框,编辑数据库连接 驱动。
图11 配置反向工程细节
2.1 Hibernate应用实例开发 • 最后单击【Finish】按钮完成 • 项目中的org.model包中会出现Kcb.java类和 Kcb.hbm.xml. • 完成之后还要在hibernate.cfg.xml文件中配 置映射文件
<mapping resource=“org/model/Kcb.hbm.xml”/>
2.2 Hibernate各种文件的作用 • (3)属性、字段映射配置 • 属性、字段映射将映射类属性与库表字段相关联。 <property name="kcm" type="ng.String"> <column name="KCM" length="12" /> </property>
2.2 Hibernate各种文件的作用
native:由数据库对id赋值。当设置<generator class="native"/>时,数据库负责 主键id的赋值,最常见的是int型的自增型主键。 hilo:通过hi/lo算法实现的主键生成机制,需要额外的数据库表保存主键生成历史 状态。 seqhilo:与hi/lo类似,通过hi/lo算法实现的主键生成机制,只是主键历史状态保 存在sequence中,适用于支持sequence的数据库,如Oracle。 increment:主键按数值顺序递增。此方式的实现机制为在当前应用实例中维持一 个变量,以保存当前的最大值,之后每次需要生成主键的时候将此值加1作为主键。 identity:采用数据库提供的主键生成机制,如SQL Server、MySQL中的自增主 键生成机制。 sequence:采用数据库提供的sequence机制生成主键,如Oracle sequence。 uuid.hex:由Hibernate基于128位唯一值产生算法,根据当前设备IP、时间、 JVM启动时间、内部自增量等4个参数生成十六进制数值(编码后长度为32位的字符串 表示)作为主键。即使是在多实例并发运行的情况下,这种算法在最大程度上保证了产 生id的唯一性。当然,重复的概率在理论上依然存在,只是概率比较小。 uuid.string:与uuid.hex类似,只是对生成的主键进行编码(长度16位)。 foreign:使用外部表的字段作为主键。 select:Hibernate 3新引入的主键生成机制,主要针对遗留系统的改造工程。
1 Hibernate概述
• 一般的ORM包括四个部分:
– 对持久类对象进行CRUD操作的API – 用来规定类和类属性相关查询的语言或 API – 规定mapping metadata的工具 – 以及可以让ORM实现同事务对象一起进 行dirty checking、lazy association fetching和其他优化操作的技术。
图8 创建SessionFactory类来简化Hibernate会话处理
2.1 Hibernate应用实例开发
• 5. 生成数据库表对应的Java类对象和映射文 件
– 在MyEclispse下创建 “org.model”的包,这个包 将用来存放与数据库表对应的Java类POJO。 – 选择【Windows】→【Open Perspective】→ 【Other】→【MyEclipse Database Explorer】菜 单项,打开MyEclipse Database Explorer视图。 – 打开前面创建的MyConn数据连接,选择【XSCJ】 →【dbo】→【TABLE】菜单项,右击KCB表, 选择【Hibernate Reverse Engineering…】菜单项, 完成从已有的数据库表生成对应的Java类和相关 映像文件的配置工作。
该语句放在<sessionFactory>与 </sessionFactory>之间
2.1 Hibernate应用实例开发 • 6. 创建测试类:在src文件夹下创建包test,在该包 下建立测试类,命名为Test.java,其代码。
2.1 Hibernate应用实例开发 • 7. 运行
– 因为该程序为Java Application,所以 可以直接运行。 – 运行程序,控制台就会打印出“机电”。 – 在完全没有操作数据库的情况下,就完 成了对数据的插入。
4.1 Hibernate概述
• 2. Hibernate体系结构 • 可作为模型层/数据访问层。 • 通过配置文件(hibernate.cfg.xml或 hibernate.properties)和映射文件 (*.hbm.xml)把Java对象或持久化对象 (Persistent Object,PO)映射到数据库中的 数据表,然后通过操作PO,对数据库中的表 进行各种操作。 • PO就是POJO(普通Java对象)加映射文件。
2.2 Hibernate各种文件的作用
• 2. hibernate.cfg.xml文件 • 该配置文件主要是配置SessionFractory类。
2.2 Hibernate各种文件的作用
• 3. HibernateSessionFactory • HibernateSessionFactory类是自定义的SessionFactory
图5 选择Hibernate版本及所需Jar包
2.1 Hibernate应用实例开发
• 单击【Next】按钮,进入如图6所示界面。创建Hibernate配 置文件hibernate.cfg.xml,将该文件放在src文件夹下。
图6 创建配置文件hibernate.cfg.xml
2.1 Hibernate应用实例开发
图2 MyEclipse Database浏览器, 创建一个新的连接
图3 编辑数据库连接驱动
2.1 Hibernate应用实例开发 • 编辑完成以后,在MyEclipse Database浏览器中, 右击刚才创建的MyConn数据库连接,选择“Open connection…”菜单项,打开名为“MyConn”的数据 连接,如图4所示。
Id:定义数据库表主键 Name:指定类中的属性映射字段 Column:指定当前映射表KCB的列。 type:当前字段的数据类型 <generator class=“assigned” />指定主键生成方式
2.2 Hibernate各种文件的作用
• Hibernate的主键生成策略:
– Hibernate对主键id赋值 – 应用程序自身对id赋值(assigned) – 由数据库对id赋值。
2.2 Hibernate各种文件的作用 • 1. POJO类和其映射配置文件 • Hibernate的映射配置文件是实体对象与数 据库关系表之间相互转换的重要依据; • 一般而言,一个映射配置文件对应着数据库 中的一个关系表; • 关系表之间的关联关系也在映射文件中配置。
2.2 Hibernate各种文件的作用
图4 打开数据库连接
2.1 Hibernate应用实例开发
• 3.创建Web项目,命名为“HibernateTest” • 4.添加Hibernate开发能力 • 右击项目名HibernateTest,选择【MyEclipse】→【Add Hibernate Capabilites】菜单项,出现如图5所示的对话框,选择Hibernate框架应 用版本及所需要的类库。
2.1 Hibernate应用实例开发
图9 Hibernate反向工程菜单
2.1 Hibernate应用实例开发
• 首先,选择生成的Java类和映像文件所在的位置,如图10所 示。
图10 生成Hibernate映射文件和Java类
2.1 Hibernate应用实例开发
• 使用POJO名称是为了避免和EJB混淆起来,其中有一些属 性及getter、setter方法。当然,如果有一个简单的运算属性 也是可以的,但不允许有业务方法。单击【Next】按钮,进 入如图11所示的界面,选择主键生成策略。
• 单击【Next】按钮,进入如图7所示界面,指定Hibernate数 据库连接细节。
图7 指定hibernate数据库连接
2.1 Hibernate应用实例开发