第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 导入包步骤2具体按照1-5 实现配置的具体步骤:
这里讲的是Eclipse,如果是MyEclipse;具体方法参照:
http://jingyan.baidu.com/article/456c463b99f4370a583144a8.html
第一步 hibernate配置文档
注意:如果使用Eclipse生成的配置文档没有智能提示时,需要自己导入dtd文档的支持
寻找dtd文档的路径 hibernate.cfg.xml 配置hibernate.cfg.xmlStudent.java第二步 创建持久化类 (跟JavaBean的写法一样)
操作步骤 映射文件 Student.hbm.xml 添加到 hibernate.cfg.xml 创建数据库第三步 创建对象-关系映射文件和数据库
补充一步:JUnit 进行单元测试
注解:@Before:是一个初始化方法
@Test:是一个测试方法
@After:释放资源
JUnit 测试第四步:通过Hibernate API编写访问数据库的代码
接着补充那步写
测试类 StudentTest.java右键运行(JUnit Test)
数据库 hibernate详细讲解 上面出现的一些配置文档或者.....
常用配置讲解——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()
使用 getCurrentSession() Session 测试用例二、openSession 与 getCurrentSession 的区别
1.getCurrentSession 在事务提交或者回滚之后会自动关闭,而openSession需要你手动关闭。如果使用openSession而没有手动关闭,多次之后会导致连接池溢出。
2.openSession每次创建新的session对象,getCurrentSession使用现有的session对象
2. testOpenSession()方法里面改 2. testGetCurrentSession()方法里面改体现第一点区别:
testSaveStudentWithGetCurrentSession() testSaveStudentWithOpenSession()hibernate-mapping 标签 class 标签 id 标签 生成策略讲解—— hbm配置文档
讲解—— transaction简介
· hibernate对数据库的操作都是封装在事务当中,并且默认是非自动提交的方式。所以用session保存对象时,如果不开启事务,并且手工提交事务,对象并不会真正保存在数据库中。
· 如果你想让hibernate像jdbc那样自动提交事务,必须调用session对象的doWork()方法,获得jdbc的connection后,设置其为自动提交事务模式(注意:通常并不推荐这样做)
注意:不开启事务就不能将对象保存到数据库中!
如果不使用事务!改相应的代码
不使用事务的情况下插入/查询 效果 修改数据效果 删除数据效果补充,Hibernate 操作数据库的 增删改查
E:\student\java\java框架学习\Hibernate\Hibernate_demo1
网友评论