1. 初步了解
(1) 常用接口:
a. Configuration()接口:读取配置文件和加载hibernate,并且创建SessionFactory;
b. SessionFactory()接口:hibernate初始化操作,重量级;
c. Session()接口:操作数据核心对象,负责所有持久层的操作和管理,轻量级;
d. Transaction接口:处理事务;
e. Query()接口:查询操作,单检索和分页查询;
f. Criteria()接口:查询操作(条件)。
(2) 实现状态:
a. Transient:瞬间
使用关键字 new 实例化对象,没有纳入hibernate Session的管理之中,如果在hibernate中没用引用则被垃圾回收,数据库中没有数据与之相匹配,也没有在hibernate缓存管理之中。
b. Persistent:持久
在数据库中有以之对应的数据,在hibernate缓存管理之中,如果状态改为Transaction则会自动进行删除操作。
c. Detached:脱管
在persistent关闭之后会转化为Detached状态,在数据库中有数据对应,但没有在Session管理之内。
2. 配置文件hibernate.cfg.xml
(1) hibernate.hbm2ddl.auto:【create|update|validate|create-drop】
create:如果数据库中没有表,那么操作后会自动创建。
update:如果数据库中有表,但是操作的是相同主键不同字段,那么会将数据保存为null,并报异常。
3. slf日志简介
6.搭建Junit测试环境
(1)导入相应的jar包:
7.几大不同:{注解写在get方法上比较好}
a.表名和类名不同
1)Annotation中:@Table(name=”tableNames”)。需要注意的是导入的是javax.persisetence.Table
2)xml中:在相应的映射文件中写
b.字段名和属性名不同
1)Annotation:@Column
2)xml:映射文件中添加column属性
c.不需要持久化的字段(persistent),也就是不会将数据保存在数据库中,也不会在hibernate缓存管理之中
1)annotation:@Transient
2)xml:不写
d.处理时间类型
annotation:
1)默认显示日期和时间
2015-12-25 17:32:25
2)三种类型