一:封装Session对象
1、获取全新的Session的对象
2、获取与线程绑定的的Session的对象
二:什么是持久化类
1、Hlbernate是持久层的ORM映射框架,专注于数据的持久化工作。所谓的持久化,就是将内存中的数据永久存储到关系型数据库中。
2、所谓的持久化类指的是一个Java类与数据库表建立了映射关系,那么这个类称为是持久化类
3、可以简单的理解为持久化类就是一个Java类有了一个映射文件与数据库的表建立了关系
三:编写持久化类的规则
1、需要提供无参数的构造方法。
1、因为在Hibernate的底层需要使用反射生成类的实例
2、属性需要私有,对私有的属性提供公有的get和set方法。
1、因为在Hlbernate底层会将查询到的数据进行封装
3、属性要尽量使用包装类的类型。
1、因为包装类和基本数据类型的默认值不同,包装类的类型语义描述更清晰而基本数据类型不容易描述
如:Integer 能支持null值 int 而不能
4、持久化类要有一个唯一标识OID与表的主键对应。
1、因为Hibernate中需要通过这个唯一标识OID区分在内存中是否是同一个持久化类
5、尽量不要使用final进行修饰
1、因为Hibernate中有延迟加载的机制,这个机制中会产生代理对象(代理对象使用的是字节码的增强技术,产生了当前类的一个子类对象实现)使用了final 不能产生子类,从而就不会产生代理对象.
五:主键生成策略
1、主键的类型
1、自然主键(少见)
1、把具有业务含义的字段(必须有,并且不重复的特征时)作为主键,称之为自然主键
2、代理主键(常见)
1、把不具备业务含义的字段(必须有,并且不重复的特征时)作为主键,称之为代理主键