第1章 Hibernate初识
1-2 什么是ORM?
· ORM(Object/Relationship Mapping):对象/关系映射
——利用面向对象思想编写的数据库应用程序最终都是把对象信息保存在关系型数据库中,于是要编写很多和底层数据库相关的SQL语句
Hibernate就是一种可行的ORM框架技术
1-3 Hibernate简介
1-4 Hibernate开发前准备
Hibernate Tools for Eclipse plugins
插件下载路径:
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)
具体按照1-5 实现配置的具体步骤:
这里讲的是Eclipse,如果是MyEclipse;具体方法参照:
http://jingyan.baidu.com/article/456c463b99f4370a583144a8.html
第一步 hibernate配置文档
注意:如果使用Eclipse生成的配置文档没有智能提示时,需要自己导入dtd文档的支持
第二步 创建持久化类 (跟JavaBean的写法一样)
第三步 创建对象-关系映射文件和数据库
补充一步:JUnit 进行单元测试
注解:@Before:是一个初始化方法
@Test:是一个测试方法
@After:释放资源
第四步:通过Hibernate API编写访问数据库的代码
接着补充那步写
右键运行(JUnit Test)
详细讲解 上面出现的一些配置文档或者.....
讲解——hibernate常用配置
使用的时候,hibernate前缀可以去掉。如 hibernate.dialect === dialect
default_schema:在执行sql语句的时候,对所有的表名前面加上 这个数据库的前缀(数据库名. 表名)
hbm2ddl.auto介绍:
create:表示每次生成新的表结构(如果原来的表存在,会先删除原来的表,再创建新 表,并且添加记录)
update:在原来表的基础上面进行更新(原来的测试数据会保留)
create-drop:先创建再删除
validate:对原来的表结构进行验证(如果现在的表结构与原来的不相同,就不会创建表结 构)
讲解——session简介
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()
二、openSession 与 getCurrentSession 的区别
1.getCurrentSession 在事务提交或者回滚之后会自动关闭,而openSession需要你手动关闭。如果使用openSession而没有手动关闭,多次之后会导致连接池溢出。
2.openSession每次创建新的session对象,getCurrentSession使用现有的session对象
体现第一点区别:
讲解—— hbm配置文档
讲解—— transaction简介
· hibernate对数据库的操作都是封装在事务当中,并且默认是非自动提交的方式。所以用session保存对象时,如果不开启事务,并且手工提交事务,对象并不会真正保存在数据库中。
· 如果你想让hibernate像jdbc那样自动提交事务,必须调用session对象的doWork()方法,获得jdbc的connection后,设置其为自动提交事务模式(注意:通常并不推荐这样做)
注意:不开启事务就不能将对象保存到数据库中!
如果不使用事务!改相应的代码
补充,Hibernate 操作数据库的 增删改查
E:\student\java\java框架学习\Hibernate\Hibernate_demo1