1.Session接口中几个重要的方法?
①save,persist保存数据,区别就是save是直接保存到数据库中的,而persist不是直接保存到数据库中的,persist多用于批处理
②delete删除对象
③update更新对象,如果数据库中没有记录,会出现异常。
④get根据主键Id进行查询,会立刻访问数据库。
⑤load方法,根据Id进行查询,返回的是代理,不会立即访问数据库。
⑥saveOrUpdate,merge,根据Id和version确定是save或update.如果对象的状态是临时状态,调用save,如果是游离对象,调用
update方法,如果是持久化对象,直接返回。
hibernate对象的三种状态的分析: 可以通过session和数据库进行区别对象的状态。
①瞬时状态:标志:User user=new User();
1.数据库中没有这条记录
2.和session实例没有关联
②持久状态:1.数据库中有这条记录 2.hibernate管理。 标志:session.close()之前
①save,persist保存数据,区别就是save是直接保存到数据库中的,而persist不是直接保存到数据库中的,persist多用于批处理
②delete删除对象
③update更新对象,如果数据库中没有记录,会出现异常。
④get根据主键Id进行查询,会立刻访问数据库。
⑤load方法,根据Id进行查询,返回的是代理,不会立即访问数据库。
⑥saveOrUpdate,merge,根据Id和version确定是save或update.如果对象的状态是临时状态,调用save,如果是游离对象,调用
update方法,如果是持久化对象,直接返回。
hibernate对象的三种状态的分析: 可以通过session和数据库进行区别对象的状态。
①瞬时状态:标志:User user=new User();
1.数据库中没有这条记录
2.和session实例没有关联
②持久状态:1.数据库中有这条记录 2.hibernate管理。 标志:session.close()之前
③游离状态:1.数据库中有这条记录 2.脱离hibernate管理。 标志:session.close()之后
资源下载地址:
hibernate入门实例封装了HibernateUtil(只有添加和根据主键查询的方法)
总结:HibernateUtil类,主要封装了获取SessionFactory的方法和获取Session对象的方法。
工具类一般都是final类,是不能被继承,实例化的,有私有的构造方法。使用static块,可以在加载类的时候运行一次static块的内容。