admin 管理员组

文章数量: 887617


2024年1月10日发(作者:指针赋值是改变地址值嘛)

hibernate中session类的方法

Hibernate中的Session类是核心接口之一,用于与数据库进行交互。下面将介绍Session类的一些主要方法。

1. `save(Object object)`:将一个新的对象保存到数据库中。返回保存的对象的ID。

2. `persist(Object object)`:将一个新的对象持久化到数据库中。与`save`方法类似,但是`persist`方法不返回保存的对象的ID。

3. `update(Object object)`:更新一个已存在的对象。将对象的状态从临时状态转为持久化状态。

4. `saveOrUpdate(Object object)`:保存或更新一个对象。如果对象在数据库中不存在,则保存它;如果对象在数据库中存在,则更新它。

5. `get(Class clazz, Serializable id)`:根据主键获取一个对象。如果对象不存在,则返回null。

6. `load(Class clazz, Serializable id)`:根据主键获取一个对象,如果对象不存在,则抛出异常。

7. `getNamedQuery(String queryName)`:根据查询名称获取一个命名查询。

8. `createQuery(String queryString)`:根据HQL查询语句创建一个查询对象。

9. `createNativeQuery(String queryString)`:根据SQL查询语句创建一个查询对象。

10. `delete(Object object)`:根据对象删除数据库中的记录。

11. `flush(`:将session中所有未刷新到数据库的操作同步到数据库。

12. `clear(`:清空session缓存中的所有对象。将会取消所有未提交的更改。

13. `evict(Object object)`:将指定对象从session的缓存中清除。

14. `beginTransaction(`:开启一个新的事务。

15. `getTransaction(`:获取当前的事务对象。

16. `isConnected(`:检查session是否与数据库连接。

17. `isOpen(`:检查session是否处于打开状态。

18. `close(`:关闭session。

19. `setReadOnly(Object entity, boolean readOnly)`:设置对象的只读属性。只读的对象不能被修改。

20. `refresh(Object object)`:重新加载对象的状态。会强制从数据库中获取最新的数据。

21. `merge(Object object)`:合并对象的状态。将一个游离状态的对象与当前session关联。

22. `contains(Object object)`:检查对象是否处于session的缓存中。

23. `beginTransaction(`:开始一个新的事务。

24. `getIdentifier(Object object)`:获取对象的id。

25. `lock(Object object, LockMode lockMode)`:给对象加锁。

26. `enableFilter(String filterName)`:启用一个过滤器。

27. `disableFilter(String filterName)`:禁用一个过滤器。

28. `setFlushMode(FlushMode flushMode)`:设置session的刷新模式。

以上是Session类的一些主要方法。通过使用这些方法,我们可以在Hibernate中进行数据库交互、事务处理、查询和对象管理等相关操作。


本文标签: 对象 数据库 查询