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. apple开发者账号申请

    1.  登陆appleID. 2. 进入 Your Account 3. 在Account Summary 中的MemberShips中选择第一个(界面大概如下) 4.选择后进入下图. 5. yes ...

  2. PE文件结构学习

    PE:Portable Executable File Format(可移植的执行体).Windows平台主流可执行文件格式..exe与.dll文件都是PE格式.32位的叫做PE32,64位的叫做PE ...

  3. 禁止触屏滑动touchmove方法介绍

    在移动端页面开发中,有时需要禁止用户滑动屏幕,搜索了好久才找到移动终端的touch事件,touchstar,touchmove,touchend. 阻止滚动 一些移动设备有缺省的touchmove行为 ...

  4. CSS兼容问题大全

    1.chorme 最小字体的兼容性. 问题描述:ff和IE最小字体可设置为1px,可是chorme中文版最小字体是12px,小于12px的字体全部显示为12px.解决方案:chorme支持CSS3的, ...

  5. Red hat Linux 安装Node.js 源码安装

    1. 下载源码包 http://nodejs.org/dist/v0.10.29/node-v0.10.29.tar.gz 2.准备安装环境,>python2.6, gcc, g++ pytho ...

  6. ZOJ3229 Shoot the Bullet(有源汇的上下界最大流)

    #pragma warning(disable:4996) #include <iostream> #include <cstring> #include <string ...

  7. POJ 2653 Pick-up sticks(线段相交)

    题目链接 题意 : 把每根棍往地上扔,找出最后在上面的棍,也就是说找出所有的没有别的棍子压在它的上面的棍子. 思路 : 对于每根棍子,压在他上面的棍子一定是在它之后扔的棍子,所以在找的时候只要找它之后 ...

  8. poj 2599 A funny game 博弈论

    思路:无向图,走过的点不能在走.dfs搞定…… 再就是后继中有必败点的为必胜点! 代码如下: #include<iostream> #include<cstdio> #incl ...

  9. Java 网络编程(二)

    以下例开始本文的内容: 例1,需求:上传图片. 客户端: 服务端点. 读取客户端已有的图片数据. 通过socket输出流将数据发给服务端. 读取服务端反馈信息. 关闭. class PicClient ...

  10. 用eclipse创建maven项目

    Maven是基于项目对象模型(POM),也可以进行模块化开发.并且是个强大的管理工具.本经验用eclipse来创建maven项目 步骤: 1.下载并正确安装eclipse 2.在eclipse上成功安 ...