一、实体类编写规则
- 实体类里面属性为私有的
- 私有属性使用公开的get和set方法进行操作
- 要求实体类有作为唯一值来区分的属性(id)
- 实体类属性建议使用包装类型
二、Hibernate主键生成策略
- hibernate要求实体类里面有一个属性作为唯一值,对应数据库表的主键,主键可以有不同的生成策略
三、实体类的crud操作
1.调用session里面的save方法实现
2.根据id查询,调用session里面的get方法实现
3.修改操作,调用session里面的update方法实现
4.删除操作,调用session里面的delete方法实现
四、实体类对象状态
1.瞬时态:对象里面没有id值,与session也没有关联
2.持久态:对象里面有id值,与session有关联
3.托管态:对象里面有id值,与session没有关联
五、Hibernate缓存
框架中提供很多优化方式,缓存就是其中一种。
1.一级缓存
- hibernate的一级缓存是默认打开的
- hibernate的一级缓存是在session范围内使用的,从session创建到session关闭
- hibernate的一级缓存中,存储数据必须是持久态数据
2.二级缓存(了解)
- 目前不再使用,替代技术redis
- 二级缓存默认不是打开的,需要配置
- 适用范围是SessionFactory
3.验证一级缓存存在
- 首先根据uid查询返回对象
- 再次根据uid查询返回对象
在第一次查询过程中,首先,查询一级缓存,发现一级缓存中没有数据,才会对数据库进行查询,返回user1对象(持久化对 象),然后把该对象放到一级缓存中。
第二次查询时,查询一级缓存内容,发现有对应数据,直接返回。
六、Hibernate绑定session
- 获取与本地线程绑定的session
- 在hibernate的核心配置文件中配置
调用sessionFactory里面的方法得到,这个方法在HibernateUtils里面
七、Hibernate的api使用
- Query对象
- 使用query对象,需要写hql语句。sql操作的是表和字段,而hql操作的是实体类和属性
- Criteria对象
- 使用这个对象执行查询操作,不需要写语句,直接调用方法就行
- SQLQuery对象
- 底层sql实现
可以设置返回的list集合中每部分都是实体类对象