Hibernate—— 创建与配置

第1章 Hibernate初识

1-2 什么是ORM?

· ORM(Object/Relationship Mapping):对象/关系映射

——利用面向对象思想编写的数据库应用程序最终都是把对象信息保存在关系型数据库中,于是要编写很多和底层数据库相关的SQL语句

Hibernate—— 创建与配置_第1张图片
Hibernate—— 创建与配置_第2张图片

Hibernate就是一种可行的ORM框架技术


1-3 Hibernate简介

Hibernate—— 创建与配置_第3张图片
Hibernate—— 创建与配置_第4张图片

1-4  Hibernate开发前准备

Hibernate Tools for Eclipse plugins

Hibernate—— 创建与配置_第5张图片

插件下载路径:

http://sourceforge.net/projects/jboss/files/JBossTools/JBossTools4.1.x/hibernatetools-Update-4.1.2.Final_2014-03-18_15-46-19-B706.zip/download

配置方法:help—>Install New SoftWare——>点击Add——>选择路径  

    然后点击安装,需要重启。检查是否安装成功(空白处右键 new——>other 看看有没有Hibernate)


重点


1-5 编写第一个Hibernate例子

第一步:创建Hibernate的配置文件 (hibernate.cfg.xml)

第二步:创建持久化类

第三步:创建对象——关系映射文件

第四步:通过Hibernate API编写访问数据库的代码

使用的版本:Hibernate 4.2.4 +Mysql6.0


具体的实现步骤:

第一步:创建一个工程

第二步:导入Hibernate必须的jar包

           下载地址:http://img.mukewang.com/down/558ca82d0001766100000000.rar

第三步:导入Mysql的jdbc驱动(mysql-connector-java-5.1.11-bin.jar)

第四步:导入Junit4的jar包 (junit-4.10.jar)

Hibernate—— 创建与配置_第6张图片
导入包步骤1
Hibernate—— 创建与配置_第7张图片
导入包步骤2

具体按照1-5 实现配置的具体步骤:

这里讲的是Eclipse,如果是MyEclipse;具体方法参照:

http://jingyan.baidu.com/article/456c463b99f4370a583144a8.html


第一步 hibernate配置文档

注意:如果使用Eclipse生成的配置文档没有智能提示时,需要自己导入dtd文档的支持

寻找dtd文档的路径
Hibernate—— 创建与配置_第8张图片
hibernate.cfg.xml
Hibernate—— 创建与配置_第9张图片
配置hibernate.cfg.xml

第二步 创建持久化类 (跟JavaBean的写法一样)

Hibernate—— 创建与配置_第10张图片
Student.java

第三步 创建对象-关系映射文件和数据库

Hibernate—— 创建与配置_第11张图片
操作步骤
Hibernate—— 创建与配置_第12张图片
映射文件 Student.hbm.xml
Hibernate—— 创建与配置_第13张图片
添加到 hibernate.cfg.xml
Hibernate—— 创建与配置_第14张图片
创建数据库

补充一步:JUnit 进行单元测试

注解:@Before:是一个初始化方法

          @Test:是一个测试方法

           @After:释放资源

Hibernate—— 创建与配置_第15张图片
JUnit 测试

第四步:通过Hibernate API编写访问数据库的代码

接着补充那步写

Hibernate—— 创建与配置_第16张图片
Hibernate—— 创建与配置_第17张图片
Hibernate—— 创建与配置_第18张图片
测试类  StudentTest.java

右键运行(JUnit Test)

Hibernate—— 创建与配置_第19张图片
数据库 hibernate



详细讲解 上面出现的一些配置文档或者.....

讲解——hibernate常用配置

Hibernate—— 创建与配置_第20张图片
常用配置

使用的时候,hibernate前缀可以去掉。如 hibernate.dialect === dialect

default_schema:在执行sql语句的时候,对所有的表名前面加上 这个数据库的前缀(数据库名.                             表名)

hbm2ddl.auto介绍:

       create:表示每次生成新的表结构(如果原来的表存在,会先删除原来的表,再创建新                              表,并且添加记录)

       update:在原来表的基础上面进行更新(原来的测试数据会保留)

      create-drop:先创建再删除

      validate:对原来的表结构进行验证(如果现在的表结构与原来的不相同,就不会创建表结                        构)


讲解——session简介

Hibernate—— 创建与配置_第21张图片

1.不建议直接使用jdbc的connection操作数据库,而是通过使用session操作数据库

2.session可以理解为 操作数据库的  对象

3.session与connetion,是多对一关系,每一个session都有一个与之对应的connection,一个connection不同时刻可以供多个session使用。

4.要想把对象保存在关系数据库中需要调用session的各种方法。

如:save(), update(), delete(), createQuery()等


讲解——session详解

一、如何获取session对象?

1. openSession()

2. getCurrentSession()

Hibernate—— 创建与配置_第22张图片
使用 getCurrentSession()
Hibernate—— 创建与配置_第23张图片
Session 测试用例

二、openSession 与 getCurrentSession 的区别

1.getCurrentSession 在事务提交或者回滚之后会自动关闭,而openSession需要你手动关闭。如果使用openSession而没有手动关闭,多次之后会导致连接池溢出。

2.openSession每次创建新的session对象,getCurrentSession使用现有的session对象

2.  testOpenSession()方法里面改
2.  testGetCurrentSession()方法里面改

体现第一点区别:

Hibernate—— 创建与配置_第24张图片
Hibernate—— 创建与配置_第25张图片
testSaveStudentWithGetCurrentSession()
Hibernate—— 创建与配置_第26张图片
Hibernate—— 创建与配置_第27张图片
testSaveStudentWithOpenSession()

讲解—— hbm配置文档

Hibernate—— 创建与配置_第28张图片
hibernate-mapping 标签


Hibernate—— 创建与配置_第29张图片
class 标签
Hibernate—— 创建与配置_第30张图片
id 标签
Hibernate—— 创建与配置_第31张图片
生成策略

讲解—— transaction简介

· hibernate对数据库的操作都是封装在事务当中,并且默认是非自动提交的方式。所以用session保存对象时,如果不开启事务,并且手工提交事务,对象并不会真正保存在数据库中。

· 如果你想让hibernate像jdbc那样自动提交事务,必须调用session对象的doWork()方法,获得jdbc的connection后,设置其为自动提交事务模式(注意:通常并不推荐这样做)

注意:不开启事务就不能将对象保存到数据库中!

如果不使用事务!改相应的代码

Hibernate—— 创建与配置_第32张图片
不使用事务的情况下

补充,Hibernate 操作数据库的 增删改查

Hibernate—— 创建与配置_第33张图片
Hibernate—— 创建与配置_第34张图片
Hibernate—— 创建与配置_第35张图片
插入/查询 效果
Hibernate—— 创建与配置_第36张图片
Hibernate—— 创建与配置_第37张图片
修改数据效果
Hibernate—— 创建与配置_第38张图片
Hibernate—— 创建与配置_第39张图片
删除数据效果

E:\student\java\java框架学习\Hibernate\Hibernate_demo1


你可能感兴趣的:(Hibernate—— 创建与配置)