Hibernate JAR包介绍:
hibernate-core-xxx.Final.jar———————->Hibernate核心包
antlr-xxx.jar———————->Hibernate利用它实现从HQL到SQL的转换
dom4j-xxx.jar———————->解析XML配置文件和XML映射文件
hibernate-commons-annotation-xxx.Final.jar———————->Hibernate注解包
hibernate-jpa-2.1-api-1.0.0.Final.jar———————->JPA2.1的接口库
jandex-xxx.Final.jar———————->用来索引Annotation的
javassist-xxx-GA.jar———————->HIbernate用它来实现PO字节码的动态生成
Jboss-logging-xxx.jar———————->日志服务通用库
jboss-logging-annotations-xxx.Beta1———————->实现带注释的接口的具体类
jboss-transaction-api_1.2_spec-1.0.0.Final———————->JTA规范包
配置对象关系映射文件:XXX.hbm.xml
注册对象关系映射文件
根据对象关系映射文件生成DDL,使用SchemaExport工作类:
Configuration config = new Configuration().configure(cfg);
SchemaExport se = new SchemaExport(config);
se.create(true,true);
在Hibernate配置文件中添加如下配置:
create|update
操作过程:
创建SessionFactory实例
获取Session实例
开启事务
利用Session实例进行持久化操作
提交事务
关闭Session
Session类主要用来执行实体的持久化操作:
save(Object obj)
update(Object obj)
delete(Object obj)
get(ClassName.class,id)
session.load(ClassName.class,id)
什么是O\R Mapping
ORM(Object-Relation Mapping):对象/关系映射
对象和关系数据库之间映射的元数据(XML)
将对象数据保存到关系数据库的表中
将关系数据库表中数据读入到对象中
Hibernate开发环境搭建
hibernate.cfg.xml文件的作用
1.是Hibernate中的核心配置文件
2.配置连接数据库的各种属性
3.注册对象关系映射文件
添加日志服务配置文件
1.开发阶段的调试信息
2.运行时的日志记录
hibernate下载包里面 lib -> required 里面所用的包
导入 同时导入sql连接的包(mysql-connector-java-5.1.40-bin.jar) 日志包(junit-4.5.jar)
然后 project -> etc -> 复制hibernate.cfg.xml和log4j.properties到工程的src文件中
开发步骤
一,设计持久化实体类
1.setter和getter方法
2.公共的无参数的构造方法
3.对象标示符(OID)的属性
4.属性是集合类型,则必须定义成接口类型,如 : List, Set,Map
5.实现Serializable接口支持序列化
二,创建对象-关系映射文件
配置对象关系映射文件
Xxx.hbm.xml
注册关系对象文件
三, 准备好数据库表
根据对象关系映射文件生成DDL,使用SchemaExport工作类:
Configuration config = new Configuration().configure(cfg);
SchemaExport se = new SchemaExport(config);
se.create(true,true);
在Hibernate配置文件中添加如下配置:
create|update
使用hibernate API进行持久化操作
操作过程
创建SessionFactory实例
获取Session实例
开启事务
利用Session实例进行持久化操作
提交事务
关闭Session
Session类主要用来执行实体的持久化操作
1.save(Object obj)
2.update(Object obj)
3.delete(Object obj)
4.get(ClassName.class,id)
5.session.load(ClassName.class,id)
Configuration类负责管理Hibernate的配置信息作并根据配置信息启动Hibernate
Hibernate配置有两种方法
1属性文件(很少用)
2XML文件
SessionFactory 实例对应一个数据存储源,SessionFactory的特点:
1.线程安全
2.重量级的
所以如果一个程序只访问一个数据库时,只需要创建一个SessionFactory对象
Session接口
Session(持久化管理器),Session的特点:
1.线程不安全(代表和当前数据库的一次操作)
2.轻量级(创建和销毁不需要消耗太多资源)
3.Session被称为Hibernate的一级缓存
4.Session通过SessionFactory打开(所以用完之后要将Session关闭)
5.他与Web层的HttpSession没有任何关系
Transaction接口
Transaction接口是Hibernate数据库事务接口,它包括: JDBC API, JTA。
1.Hibernate进行持久化操作时(CRUD)必须进行事务控制
Query和Criteria接口
Query和Criteria接口都是Hibernate的查询接口
1.Query包装了一个HQL(Hibernate Query Language) 查询语句
2.Criteria接口擅长于执行动态查询
Hibernate工作机制