这篇文章将为大家详细讲解有关Hibernate中 session方法如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
Transaction beginTransaction()
开始一个工作单元并返回一个与之相关Transaction对象,最为事务的开始,通常在需要对数据库进行更改例如save,update或delete时使用。在事务结束后需要调用Transaction的commit方法提交更改,该方法必须在Hibernate session关闭之前使用。
void flush() void clear()
这两个方法通常在一起使用。由于Hibernate有缓存数据的功能,所以当我们要批量查询和批量插入时,会因为大量的缓存而导致内存溢出。所以我们可以在执行批量插入时插入一定数目的数据后调用flush()提交插入,然后调用clear()清空当前Hibernate session内的所有缓存。批量查询同理
Connection close()
关闭Hibernate session,同时清空所有的缓存。
Connection connection()
获取当前Hibernate session使用的JDBC connection。
boolean contains(Object object)
返回boolean值,判断一个实例是否与当前Hibernate session保持关联,即为持久化状态。
Query createQuery(String queryString)
返回一个给定HQL语句的Query对象。
SQLQuery createSQLQuery(String queryString)
返回一个用于执行原生SQL语句的SQLQuery对象
void delete(Object object)
删除与该对象关联的数据里内的一条记录。该对象可以是处于持久化状态也可以是处于瞬态但与数据库的记录有id联系。如果该对象的cascade属性为delete或all将会同时删除相关联的数据。
void delete(String entityName, Object object)
不太明白什么意思,占个位。
Connection disconnect()
断开与session与当前JDBC的连接,如果连接有Hibernate管理,则将连接送回连接池,否则将送回给程序本身。
Object get(Class clazz, Serializable id)
根据指定的实体类以及实体id返回一个实体的实例。如果找不到记录则返回null
Object get(String entityName, Serializable id)
同上,entity为实体的名字
String getEntityName(Object object)
返回一个持久化类的实体名
Serializable getIdentifier(Object object)
返回一个被session缓存的实体实例的id
Query getNamedQuery(String queryName)
返回一个在映射文件中定义的命名查询的query对象
SessionFactory getSessionFactory()
获取生成当前session的SessionFactory
Transaction getTransaction()
不说了,地球人都知道
Object load(Class theClass, Serializable id)
Object load(String entityName, Serializable id)
和get方法一个效果,不同的是该方法在找不到对应记录时会抛出异常
Serializable save(Object object)
将一个实体实例持久化,返回该持久化实例的id。在持久化之前必须手动或自动的指派id。
void update(Object object)
通过给定的分离状态的实例的id更新数据库记录。如果在持久化类中有相同的id则会抛出异常。如果这个实例cascade设置为save-update或all是将同时更新所有关联的实例记录。
void saveOrUpdate(Object object)
关于Hibernate中 session方法如何使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。