hibernate中的session中可以进行增删改差,通过工具类可以得到相关的工具类。

方法概要:

 Transaction

beginTransaction()开始一个工作单元,得到关联的事务对象。

 void

cancelQuery()取消当前执行的查询。

 void

clear()彻底清除session。

 Connection

close()通过断开JDBC连结结束 Session和清除。

 Connection

connection() 得到JDBC连结

 boolean

contains(Object object) 检查实例是否与当前Session关联。

 Criteria

createCriteria(Class persistentClass) 为给定的实体类创建一个新的查询实例。

 Query

createFilter(Object collection, String queryString) 根据字符串为给定的集合创建一个新的查询实例。

 Query

createQuery(String queryString) 根据字符串创建一个新的查询实例。

 Query

createSQLQuery(String sql, String[] returnAliases, Class[] returnClasses)根据SQL字符串创建一个新的查询实例。

 Query

createSQLQuery(String sql, String returnAlias, Class returnClass) 根据SQL字符串创建一个新的查询实例。

 void

delete(Object object) 从数据库删除持久实例。

 int

delete(String query)删除根据查询语句返回的所有对象。

 int

delete(String query, Object[] values, Type[] types) 删除根据查询语句返回的所有对象。

 int

delete(String query, Object value, Type type) 删除根据查询语句返回的所有对象。

 Connection

disconnect() 断开SessionJDBC连结。

 void

evict(Object object) 从session缓存中删除当前实例。

 Collection

filter(Object collection, String filter) 对持久集合应用过滤。

 Collection

filter(Object collection, String filter, Object[] values, Type[] types)对持久集合应用过滤。

 Collection

filter(Object collection, String filter, Object value, Type type)对持久集合应用过滤。

 List

find(String query)执行查询。

 List

find(String query, Object[] values, Type[] types)根据绑定参数执行查询。

 List

find(String query, Object value, Type type) 根据绑定参数执行查询。

 void

flush() 强制Session保存。

 Object

get(Class clazz, Serializable id) 根据给定标识返回实体类持久实例。

 Object

get(Class clazz, Serializable id, LockMode lockMode) 根据给定标识返回实体类持久实例。

 LockMode

getCurrentLockMode(Object object)得到给定对象得当前锁定模式。

 FlushMode

getFlushMode()得到当前保存模式。

 Serializable

getIdentifier(Object object) 得到Session缓存中实体实例的标识。

 Query

getNamedQuery(String queryName) 根据mapping文件中定义的查询字符串得到查询实例。

 SessionFactory

getSessionFactory() 得到创建当前实例的SessionFactory

 boolean

isConnected() 检查Session是否当前连接。

 boolean

isDirty() 检查是否包含修改的数据没有同步数据库。

 boolean

isOpen() 检查Session是否仍然打开。

 Iterator

iterate(String query)执行一个查询,返回结果到iterator。

 Iterator

iterate(String query, Object[] values, Type[] types) 执行一个查询,返回结果到iterator。

 Iterator

iterate(String query, Object value, Type type) 执行一个查询,返回结果到iterator。

 Object

load(Class theClass, Serializable id) 根据给定标识返回实体类持久实例。

 Object

load(Class theClass, Serializable id, LockMode lockMode) 根据给定标识返回实体类持久实例。

 void

load(Object object, Serializable id) 根据给定标识返回实体类持久实例。

 void

lock(Object object, LockMode lockMode)得到指定锁级别

 void

reconnect()得到新的JDBC连结。

 void

reconnect(Connection connection)重新连结到给定的JDBC连结。

 void

refresh(Object object)从数据库重新读取给定实例状态。

 void

refresh(Object object, LockMode lockMode) 根据给定的锁模式从数据库重新读取给定实例状态。

 void

replicate(Object object, ReplicationMode replicationMode)持久化所有对象。

 Serializable

save(Object object)持久化临时实例。

 void

save(Object object, Serializable id) 根据给定表识持久化临时实例。

 void

saveOrUpdate(Object object)根据给定标识属性选择保存或更新数据库。

 Object

saveOrUpdateCopy(Object object) 根据相同的标识拷贝给定对象的状态到持久对象。

 Object

saveOrUpdateCopy(Object object, Serializable id) 根据给定的标识拷贝给定对象的状态到持久对象。

 void

setFlushMode(FlushMode flushMode)设置保存模式。

 void

update(Object object)根据给定临时实例标识更新持久实例。

 void

update(Object object, Serializable id) 根据给定临时实例标识更新持久实例。

使用举例:

System.out.println("获取Session...");

Session session = HibernateSessionFactory.currentSession();

System.out.println("开始Transaction...");

Transaction tx = session.beginTransaction();

Test my_hibernate = null;

System.out.println("Iterator查询...");

Iterator iterator = session.iterate("from Test order by xm");

while(iterator.hasNext())

{

my_hibernate = (Test)iterator.next();

System.out.println(my_hibernate.getXm() + " "+ my_hibernate.getXb());

}

System.out.println("List查询...");

List list = session.find("from Test order by xm");

for(int i = 0;i < list.size();i++)

{

my_hibernate = (Test)list.get(i);

System.out.println(my_hibernate.getXm() + " "+ my_hibernate.getXb());

}

System.out.println("Query查询...");

Query query = session.createQuery("from Test order by xm");

list = query.list();

for(int i = 0;i < list.size();i++)

{

my_hibernate = (Test)list.get(i);

System.out.println(my_hibernate.getXm() + " "+ my_hibernate.getXb());

}

iterator = query.iterate();

while(iterator.hasNext())

{

my_hibernate = (Test)iterator.next();

System.out.println(my_hibernate.getXm() + " "+ my_hibernate.getXb());

}

System.out.println("Criteria查询...");

Criteria criteria = session.createCriteria(Test.class);

criteria.add(Expression.eq("xb","f"));

list = criteria.list();

for(int i = 0;i < list.size();i++)

{

my_hibernate = (Test)list.get(i);

System.out.println(my_hibernate.getXm() + " "+ my_hibernate.getXb());

}

System.out.println("更新数据...");

my_hibernate = (Test)session.load(Test.class,"121");

my_hibernate.setXb("f");

System.out.println("提交Transaction...");

tx.commit();

System.out.println("关闭Session...");

HibernateSessionFactory.closeSession();

第四讲 :hibernate中的session的更多相关文章

  1. C++反汇编第四讲,反汇编中识别继承关系,父类,子类,成员对象

    C++反汇编第四讲,反汇编中识别继承关系,父类,子类,成员对象 讲解目录: 1.各类在内存中的表现形式   备注: 主要复习开发知识,和反汇编没有关系,但是是理解反汇编的前提.     2.子类继承父 ...

  2. PC逆向之代码还原技术,第四讲汇编中减法的代码还原

    目录 PC逆向之代码还原技术,第四讲汇编中减法的代码还原 一丶汇编简介 二丶高级代码对应汇编观看. 1.代码还原解析: 三丶根据高级代码IDA反汇编的完整代码 四丶知识总结 PC逆向之代码还原技术,第 ...

  3. 关于hibernate中的session与数据库连接关系以及getCurrentSession 与 openSession() 的区别

    1.session与connection,是多对一关系,每个session都有一个与之对应的connection,一个connection不同时刻可以供多个session使用.   2.多个sessi ...

  4. Hibernate中的Session

    我们之前也经常使用Session,通过连接服务器将需要保存的值存到服务器的session中,这是之前关于session的简单应用.现在看到Hibernate框架中也有关于Session的定义,该定义是 ...

  5. (八) Hibernate中的Session以及事务

    HibernateUtil.getSessionFactory().getCurrentSession() 和HibernateUtil.getSession() 的区别: 1.异:getCurren ...

  6. Hibernate中的Session对象 标签: hibernatesession 2017-01-22 22:10 238人阅读 评论(

    Hibernate中的Session 大家在看hibernate视频的时候一定都发现了,每次要操作数据库,总是要新建一个session对象,Hibernate在对资料库进行操作之前,必须先取得Sess ...

  7. hibernate 中的session和事务(Transaction)

    在使用hibernate开发时,遇到最多的就是session与事务,那么他们两个有什么关系呢?下面我来抛砖引玉: 1.session是hibernate中的以及缓存机制,是用来对数据进行增删改查的一个 ...

  8. Hibernate中的Session缓存问题

    1. Session 缓存: 1) . 在 Session 接口的实现中包括一系列的 Java 集合 , 这些 Java 集合构成了 Session 缓存 .          它用于存放 Sessi ...

  9. Hibernate中的session和load延迟载入矛盾问题,怎样解决?

    假设延迟载入出现session close的情况下 方法1.在web.xml中配置spring的openSessionInViewFilter <filter>  <filter-n ...

随机推荐

  1. Poj 1029 分类: Translation Mode 2014-04-04 10:18 112人阅读 评论(0) 收藏

    False coin Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16418   Accepted: 4583 Descr ...

  2. 获取iframe中的元素

    父窗口中获取iframe中的元素 var ifr = document.getElementById('suggustion').contentWindow.document.body; 在ifram ...

  3. TGL站长关于常见问题的回复

    问题地址: http://www.thegrouplet.com/thread-112923-1-1.html 问题: 网站配有太多的模板是否影响网站加载速度 月光答复: wp不需要删除其他的模板,不 ...

  4. google大赛 入围赛250分真题

    Problem StatementYou have a collection of music files with names formatted as "genre-artist-alb ...

  5. C语言预处理命令

    1.#error Directive (C/C++) The #error directive emits a user-specified error message at compile time ...

  6. 使用WCF服务的客户端出现maxReceivedMessageSize异常

    使用WCF服务的客户端出现maxReceivedMessageSize异常解决方案 当使用WCF的客户端调取的数据过多时,会出现这个异常.一般情况下,系统默认值是65536,大约容纳100-200条左 ...

  7. 删除提示 FOREIGN KEY 约束引用”

    有时想删除某个表时,提示“无法删除对象 'Orders',因为该对象正由一个 FOREIGN KEY 约束引用”,原因很简单不要急躁,它被其它表的外键引用了,所以无法删除,在此只需先找到哪些表的外键引 ...

  8. B股

    B股的正式名称是人民币特种股票.它是以人民币标明面值,以外币认购和买卖,在中国境内(上海.深圳)证券交易所上市交易的外资股.B股公司的注册地和上市地都在境内.

  9. C# static方法-使用迭代器循环遍历文件中的额行

    //封装的方法 //读取文件的值,放入集合中 public static IEnumerable<string> ReadLines(string fileName) { using (T ...

  10. Good Bye 2015 B. New Year and Old Property 计数问题

    B. New Year and Old Property   The year 2015 is almost over. Limak is a little polar bear. He has re ...