实验五 入门Hibernate实验

合集下载

hibernate教程

hibernate教程

hibernate教程Hibernate是一个开源的对象/关系映射框架,它提供了一种通过Java类对数据库操作的方式,能够帮助我们更加方便、灵活地操作数据库。

下面是一个简要的Hibernate教程。

1. 配置Hibernate:在使用Hibernate之前,需要先配置Hibernate的相关信息,如数据库连接等。

配置信息可以存放在一个XML文件中,通过读取XML文件来获取。

2. 创建实体类:在Hibernate中,数据库中的表与Java中的类是一一对应的关系,我们需要创建与数据库表对应的Java类。

在Java类中,可以定义属性来表示表中的列,并相应地定义getter和setter方法。

3. 定义映射文件:映射文件定义了Java类与数据库表之间的映射关系。

在映射文件中,需要指定类名、表名、属性与列的对应关系等。

4. 创建SessionFactory:SessionFactory是Hibernate的核心接口之一,用于创建Session对象。

SessionFactory负责初始化Hibernate的配置,以及创建数据库连接池。

5. 创建Session:Session是Hibernate处理持久化操作的接口。

它代表了一次对数据库的操作,可以用于保存、更新、删除对象,以及执行查询操作。

6. 保存对象:在Hibernate中,可以通过Session的save方法将Java对象保存到数据库中。

当调用save方法后,Hibernate会自动将Java对象转换为SQL语句,并执行保存操作。

7. 更新对象:通过Session的update方法可以更新数据库中的对象。

当调用update方法时,Hibernate会根据对象的状态,自动执行更新操作。

8. 删除对象:通过Session的delete方法可以删除数据库中的对象。

当调用delete方法时,Hibernate会自动执行删除操作。

9. 查询对象:Hibernate提供了一种面向对象的查询语言,称为HQL(Hibernate Query Language)。

hibernate菜鸟教程

hibernate菜鸟教程

hibernate菜鸟教程
Hibernate是一个开源的对象关系映射框架,它提供了将Java
对象映射到关系数据库中的功能,并支持数据库的CRUD操作。

通过Hibernate,开发人员可以摆脱传统的JDBC编程,
简化了数据持久化层的开发工作。

Hibernate的主要特点包括:
1. 对象关系映射:Hibernate的核心功能就是将Java对象和关
系数据库之间进行映射,开发人员不需要编写繁琐的SQL语
句来进行数据的持久化操作,只需要操作Java对象即可。

2. 高度可定制化:Hibernate提供了丰富的配置选项,可以根
据项目的需求进行灵活的配置。

开发人员可以使用XML文件
或者注解来定义映射关系。

3. 数据库无关性:Hibernate可以适用于多种关系数据库,开
发人员不需要关心不同数据库的SQL差异,只需要根据Hibernate的API进行开发即可,从而提高了开发的效率。

4. 缓存机制:Hibernate内置了一级缓存和二级缓存的支持,
可以提高数据的访问效率。

一级缓存是在Session级别的缓存,而二级缓存是在SessionFactory级别的缓存。

5. 延迟加载:Hibernate支持延迟加载机制,可以在需要访问
关联对象时再进行查询,提高了性能。

总之,Hibernate是一个非常强大且灵活的对象关系映射框架,能够极大地简化数据持久化层的开发工作,提高开发效率。

它已经成为了Java开发中非常重要的框架之一。

hibernate实验手册

hibernate实验手册

目录新建数据库和表在数据库test 中创建student 表格创建 HibernateDemo Java Project新建一个Java Project命名为:HibernateDemo添加Hibernate Capabilities 到现有项目像添加Spring和Struts支持一样,给项目添加Hibernate Capabilities点击”next”再点击”next”选择好“DB Driver”点击“next”新建一个package得到:点击“Finish”使用反向工程快速生成Java POJO 类,映射文件和DAO找到DB Browser选择我们创建的student表右键点击出现下图:选择“Hibernate Reverse Engineering”出现:在Java Package那里通过“Browser”找到项目的dao包按顺序将要打勾的地方打上勾点击1 处的Java src folder 最右侧的Browse 按钮,查看可用的Hibernate 项目以及源码目录,这些目录将用来存放最终生成的文件。

这里选中HibernateDemo 项目中的src 文件夹.。

点击2 处的Java package 输入框右侧的Browse 按钮,选中dao 包,或者新建一个其它的包来存放生成的代码所在的包。

将3 中的两个复选框选中,这样将为每个数据库表生成Hibernate 映射文件(*.hbm.xml),并在hibernate.cfg.xml 中将新生成的映射文件加入。

在4 中选中复选框Java Data Object(POJO <> DB Table),这样为映射文件和表格生成对应的数据对象(POJO)。

按照图示选中5 处的复选框,这样将能生成普通的DAO 类。

点击“Finish”看到:编写测试类在项目文件夹中新建一个类:学写第一个HQL语句如下图在HQL 1 中输入“From Student s where s.id = 1”。

J2EE项目实训Hibernate框架技术——第1章 Hibernate OR Mapping技术基础(第3部分)

J2EE项目实训Hibernate框架技术——第1章 Hibernate OR Mapping技术基础(第3部分)

import java.util.*; public class Book { private String id; private String bookName; private char bookKind; private float bookPrice; public Book() } public String getId() { return id; } private void setId(String id){ this.id = id; } public String getBookName() { return bookName; } public void setBookName(String newBookName) { this.bookName = newBookName; } public char getBookKind() { return bookKind; } public void setBookKind(char newBookKind) { this.bookKind = newBookKind; } public float getBookPrice() { return bookPrice; } public void setBookPrice(float newBookPrice) {
图 1.19
添加 POJO 类型的 Book 类
(3)编程该 Book 类,其最后的代码请见下面的【例 1-15】所示的代码。 【例 1-15】 持久类 Book 的代码示例 package com.px1987.hexample.pobject;
杨教授工作室,版权所有,盗版必究, 2/22 页
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料

Hibernate 5 教程

Hibernate 5 教程
重写 eqauls 和 hashCode 方法: 如果需要把持久化类的实例 放到 Set 中(当需要进行关联映射时), 则应该重写这两个方法
24
1. 创建持久化 Java 类
Hibernate 不要求持久化类继承任何父类或实现接 口,这可以保证代码不被污染。这就是Hibernate被 称为低侵入式设计的原因
28
4. 通过Hibernate API编写访问数据库的代码
运行效果:控制台打印输出SQL语句
29
4. 通过Hibernate API编写访问数据库的代码
运行效果:数据库增加一张表,表中插入一条字段
30
Helloworld
使用 Hibernate 进行数据持久化操作,通常有如 下步骤:
//1. 创建一个 SessionFactory 对象 StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder()
.configure("hibernate.cfg.xml").build(); Metadata metadata = new MetadataSources(standardRegistry)
23
1. 创建持久化 Java 类
提供一个无参的构造器:使Hibernate可以使用 Constructor.newInstance() 来实例化持久化类
提供一个标识属性(identifier property): 通常映射为数据 库表的主键字段. 如果没有该属性,一些功能将不起作用,如: Session.saveOrUpdate()
Hibernate 运行的底层信息:数据库的URL、用户名、密码、JDBC 驱动类,数据库Dialect,数据库连接池等(对应 hibernate.cfg.xml 文件)。

实验五Hibernate、Spring及SSH集成

实验五Hibernate、Spring及SSH集成

实验五Hibernate、Spring及SSH集成实验内容学习Hibernate、Spring应用的基本开发,及SSH的简单集成实验目的了解Hibernate、Spring框架的机制掌握Hibernate、Spring应用的配置掌握Spring中Bean注解扫描装配掌握Hibernate基本编程掌握SSH的简单集成环境要求服务器:Tomcat6.0或更高,jboss6或更高集成开发环境:MyEclipse 8.6 或更高实验指导1.Hibernate简单使用1)创建表在MySQL数据库服务器上的test中创建student表,字段如下:字段名类型说明id Integer 自增,主键xh varchar(10)name varchar(10)sex varchar(2)className varchar(16)2)创建数据库连接通过菜单“window”->“show view”打开“DB Browser”窗口,在该窗口中点击右键,在弹出菜单总选择“New”,打开如下窗口。

在“Driver template”中选择“MySQL”,“Driver name”中输入一个名称(mysql),修改“Connection URL”为:jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8,输入数据库的用户名和口令,点击“Add JARS”按钮添加Mysql的驱动Jar包,点击“Finish”按钮完成创建。

3)创建工程及添加Hiberbate支持创建一个Java工程,名称为hh。

在左侧“package explore”窗口的“hh”工程名上点击右键,在弹出的菜单中选择“MyEclipse”->“Add Hibernate Capapilities...”,弹出如下对话框:在本对话框中选择我们需要的Hibernate的Jar包,使用默认选择即可,点击“Next”按钮,弹出如下窗口:在本对话框中用于指定Hibernate的配置文件的位置及名称,使用默认即可。

J2EE项目实训Hibernate框架技术——第9章 对基于Hibernate的DAO单元测试(第2部分)

J2EE项目实训Hibernate框架技术——第9章 对基于Hibernate的DAO单元测试(第2部分)

第九章对基于Hibernate的DAO单元测试(第2/3部分)1.1对基于Hibernate框架技术的DAO组件单元测试1.1.1DAO组件单元测试的测试要点1、对基于Hibernate框架技术的DAO组件的单元测试的内容对基于Hibernate框架技术的DAO组件的单元测试的内容,主要涉及如下两个方面的测试。

(1)对其hibernate.cfg.xml文件以及各个 O/R Mapping(对象/关系映射)的各种*.xml 文件的测试(2)对基于Hibernate框架技术的DAO组件中的各个数据访问功能(CRUD)的方法进行测试。

2、测试要点在测试用例类中利用Configuration类中的configure()方法来定位被测试系统的hibernate.cfg.xml文件,从而获得SessionFactory,最后获得Session。

3、对各个*.xml文件进行测试的测试用例的基本模板程序下面的【例9-4】所示为对基于Hibernate框架技术的DAO组件的各个*.xml文件进行测试的测试用例的基本模板程序。

【例9-4】测试用例的基本模板程序示例,并请注意其中的黑体部分的代码。

package com.px1987.junit.test;import junit.framework.TestCase;import java.io.*;import org.hibernate.cfg.*;import org.hibernate.*;public class TestHibernateXML extends TestCase {protected void setUp() throws Exception {super.setUp();}protected void tearDown() throws Exception {super.tearDown();}public void testHibernateXML(){SessionFactory sessionFactory=null;Session oneSession=null;String hibernateXMLFile="D:\\HibernateExmp\\EclipseJ2SEApp\\hibernate.cfg.xml"; //根据实际改变File xmlFile=new File(hibernateXMLFile);Configuration config = new Configuration().configure(xmlFile);sessionFactory=config.buildSessionFactory();this.assertNotNull(sessionFactory);oneSession=sessionFactory.openSession();this.assertNotNull(oneSession);}}1.1.2DAO组件单元测试的测试示例为了使读者对如何利用JUnit单元测试框架对基于Hibernate框架的DAO组件的单元测试有所掌握,下面给出一个针对本书的第一章中的【例1-19】所示的HibernateDAOBean 组件类,在Eclipse中开发工具中实现对其单元测试的实现过程。

Hibernate试验_03_18-19.清楚缓存对象clear_evict

Hibernate试验_03_18-19.清楚缓存对象clear_evict

实践1 清楚缓存对象-clear()方法
实验目的
在添加批量数据时,采用Clear方法在适当的时候清空缓存,以提高的系统的性能,防止内存被占用过多,导致内存溢出异常。

技术要点
●SQL基础知识;
●Hibernate基础知识。

实验步骤
1.打开项目HibernateProject05,在hibernate.cfg.xml中添加如下属性:
2.
3.修改StudentManager.java的主函数,代码如下:
4.运行StudentManager,查看执行结果
实践2 清楚缓存对象-evict()方法实验目的
采用evict()方法清除缓存中的某个具体的对象
技术要点
●SQL基础知识;
●Hibernate基础知识。

实验步骤
1.在StudentDAO中加入如下方法:
2.修改StudentManager.java的主函数,代码如下:
3.运行StudentManager,查看执行结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五入门Hibernate实验姓名:宋x 班级:计科16xx 学号:1609xxxxx 一、实验目标
掌握在Hibernate中插入、更新、删除对象的基本方法。

二、实验要求
熟练掌握Session的get()方法和delete()方法,实现对象查询和删除。

三、实验内容
对部门表department(int depId,varchar depName,varchar depFlag)进行添加、查询、删除操作。

四、实验步骤
(1)创建MySQL数据库test和班级表部门表department(int depId,varchar depName,varchar depFlag),如图1所示。

图1 创建department表
(2)在MyEclipse中创建与数据库test的连接,如图2所示。

图2 选择MySQL
(3)创建一个Java项目工程chap51,如图3所示。

图3 项目结构
(4)为工程添加Hibernate支持。

a、右击要添加的项目——MyEclipse——Add Hibernate Capabilities…如图4
所示。

图4 添加关系
b、第1、2步依次点击下一步就可了,第3步选择添加过的数据库MySQL,完成,如图5所示。

图5 添加数据库连接
(5)在DB Browser中打开与test的连接,利用MyEclipse提供的反向工程生成department表的POJO类和映射文件。

右击department表——Hibernate Reverse Engineering…——完成,如图6所示。

图6 创建映射文件
(6)在Java项目中创建一个测试类HibTest1.java,在类中根据表中的一个ID查询一个班级的信息,并显示在控制台上,然后删除此记录,如图7所示。

最后的项目结构,如图8所示。

图7 输出结果
图8 最终项目结构
五、实验结果
在这一次实验中,要注意从用户界面放数据到数据库中和从数据库中拿数据到用户界面显示的时候,要注意编码问题,不然中文会出现乱码,hibernate.cfg.xml 中添加这一句语句:
<![CDATA[jdbc:mysql://localhost:3306/MySQL?useUnicode=true&characterEncoding
=utf8]]> 把原来的:jdbc:mysql://localhost/MySQL 替换掉就可以解决编码问题了。

- 11 -。

相关文档
最新文档