一、介绍
是一个优秀的ORM框架,屏蔽数据之间的差异,完全面向对象的方式实现对数据库中数据的操作
1、Configuration
到src下面找到名称为hibernate.cfg.xml配置文件,创建对象,把配置文件放到对象里面(加载核心配置文件)
2、SessionFactory(重点)
①创建sessionFactory时,根据核心配置文件,到数据库里把表创建。
②创建sessionFactory时,特别消耗资源,一般一个项目创建一个sessionFactory对象。一般建立一个工具类,使用静态代码块。
public class HibernateUtils{
static Configuration cfg = null;
static SessionFactory sessionFactory = null;
static{
cfg = newConfiguration();
cfg.connfigure();
sessionFactory = cfg.buildSessionFactory();
}
public static SesseionFactory getSessionFactory(){
return sessionFactory;
}
}
3、Session(重点)
①类似于jdbc中connection
②session里面不同的方法实现crud操作(save、update、delete、根据id查询get方法)
③session对象为单线程对象
4、Transaction
事务对象,具有提交和回滚方法
二、步骤
1、导入相关的jar包(hibernate->requried/jpa;驱动包;dom4j)
2、创建实体类与映射文件(约束到文档里面找)
3、创建核心配置文件(名称和位置固定:src下面,名称为hibernate.cfg.xml)
4、测试代码(创建表,添加表)
三、解决配置文件没有提示问题
1、在有网络情况下
2、把约束文件引入到eclipse里
window->preference->xml Catalog->add,将约束复制到URI框中,选择本地约束文件。
er
四、实体类(持久化类)编写规则
1、实体类属性私有
2、公开set和get方法
3、有属性为唯一值,一般为id
4、建议使用基本数据类型的包装类,如Interger scope = null表示满意参加考试
五、实体类的三种状态
1、瞬时态:对象里面没有id值,对象与session没有关联(一般为save操作)
2、持久态:对象里面有id值,与session也有关联
3、托管态:对象里面有id值,与session没有关联
六、hibernate的一级、二级缓存
1、一级缓存特点
①默认开启
②使用范围:session范围,从session创建到session关闭
③存储的数据必须是持久态
2、二级缓存特点
①目前已经不使用了,替代技术为redis
②默认关闭
③使用范围:项目范围(sessionFactory范围)