Hibernate中Session的几个方法的简单说明
Hibernate对普通JDBC的操作进行了轻量级的封装,使得开发人员可以利用Session对象以面向对象的思想来实现对关系数据库的操作。
一般通过Configuration对象读取相应的配置文件来创建SessionFactory,然后通过SessionFactory对象获取Session对象,获取Session对象之后,我们就可以相关数据的操作了。
下面来介绍一下Session对象的几种方法:
//新增一个用户对象
public void addUser(User user) {
Session session = HibernateUtil. currentSession ();
Transaction ts = null ;
try {
ts = session.beginTransaction();
session.save(user);
ts.commit();
} catch (Exception e){
ts.rollback();
System. out .println( "---error---" );
e.printStackTrace();
} finally {
HibernateUtil. closeSession ();
}
}
public void removeUser() {
Session session = HibernateUtil. currentSession ();
Transaction ts = null ;
User user = null ;
try {
ts = session.beginTransaction();
user = (User)session.get(User. class , new Integer( )); //加载一个持久化对象
session.delete(user); //计划执行一个deleted操作
ts.commit(); //在清理缓存时,数据库执行deleted操作
} catch (Exception e){
ts.rollback();
System. out .println( "---error---" );
e.printStackTrace();
} finally {
HibernateUtil. closeSession (); //从缓存中删除User对象,关闭Session
}
} Session session = HibernateUtil. currentSession ();
Transaction ts = null ;
try {
ts = session.beginTransaction();
/**
* 假设user是一个游离态对象,调用session.delete(user)会使其先变为 一个持久化对象,然后再计划执行一个deleted操作
*/
session.delete( user );
ts.commit(); //在清理缓存时,数据库执行deleted操作
} catch (Exception e){
ts.rollback();
System. out .println( "---error---" );
e.printStackTrace();
} finally {
HibernateUtil. closeSession (); //从缓存中删除User对象,关闭Session
}
//使用get()方法加载一个指定id的User对象
public void getUserById( int id) {
Session session = HibernateUtil. currentSession ();
Transaction ts = null ;
User user = null ;
try {
ts = session.beginTransaction();
user = (User)session.get(User. class , id);
ts.commit();
} catch (Exception e){
ts.rollback();
System. out .println( "---error---" );
e.printStackTrace();
} finally {
HibernateUtil. closeSession ();
}
}
//使用load()方法加载一个指定id的User对象
public void getUserById( int id) {
Session session = HibernateUtil. currentSession ();
Transaction ts = null ;
User user = null ;
try {
ts = session.beginTransaction();
user = (User)session. load (User. class , id);
ts.commit();
} catch (Exception e){
ts.rollback();
System. out .println( "---error---" );
e.printStackTrace();
} finally {
HibernateUtil. closeSession ();
}
}
待补充:
Hibernate中Session的几个方法的简单说明的更多相关文章
- Hibernate中Session.get()方法和load()方法的详细比较
一.get方法和load方法的简易理解 (1)get()方法直接返回实体类,如果查不到数据则返回null.load()会返回一个实体代理对象(当前这个对象可以自动转化为实体对象),但当代理对象被调用 ...
- Hibernate中evict方法和clear方法说明
Hibernate中evict方法和clear方法说明 先创建一个对象,然后调用session.save方法,然后调用evict方法把该对象清除出缓存,最后提交事务.结果报错: Exception i ...
- Hibernate中Session的get和load
hibernate中Session接口提供的get()和load()方法都是用来获取一个实体对象,在使用方式和查询性能上有一些区别.测试版本:hibernate 4.2.0. get Session接 ...
- hibernate中session的获取使用以及其他注意事项
hibernate中session的获取使用以及其他注意事项 前言:工作时,在同时使用Hibernate的getSession().getHibernateTemplate()获取Session后进行 ...
- hibernate中session
hibernate中的session是一级缓存,可以理解为进程级的缓存.在进程运行期间一直存在. session可以理解为一个可以操作数据库的对象 具体如何操作数据库? session中有方法, 如果 ...
- Hibernate中Session与本地线程绑定
------------------siwuxie095 Hibernate 中 Session 与本地线程绑定 1.Session 类似于 JDBC 的连接 Connection 2.Session ...
- [转]Hibernate中Session的get和load
hibernate中Session接口提供的get()和load()方法都是用来获取一个实体对象,在使用方式和查询性能上有一些区别.测试版本:hibernate 4.2.0. get Session接 ...
- Hibernate中Session.get()/load()之区别
原文链接http://sunxin1001.iteye.com/blog/292090 Session.load/get方法均可以根据指定的实体类和id从数据库读取记录,并返回与之对应的实体对象.其区 ...
- J2EE进阶(十七)Hibernate中常用的HQL查询方法(getHibernateTemplate())
J2EE进阶(十七)Hibernate中常用的HQL查询方法(getHibernateTemplate()) 当我们使用Hibernate进行数据的CRUD操作时,利用模版进行操作不失为一种方法. ...
随机推荐
- thread block grid
grid里面包含block,block里面包含thread grid里面所有的block都是同样大小的, 每个block最多可以有1024个thread. blockDim表示一个block里面th ...
- ACdream 1417 Numbers
pid=1417">题目链接~~> 做题感悟:比赛的时候用的广搜,然后高高兴兴的写完果断TLE .做题的时候不管什么题都要用笔画一下,模拟几组数据,这样或许就AC了(做题经验,有 ...
- CCArray(转)
http://blog.csdn.net/passtome/article/details/7966451 CCArray也是cocos2d-x自己写的类.它相当于是objc的NSArray.在coc ...
- javascript 知识点坑
1. JavaScript事件属性 event.target 当目标事件发生span里面 当目标事件发生在main里面 e.target; // 目标节点DOM结构 e.target.id; // ...
- Stack and queue.
队列的定义及基本运算 1.定义 队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表 (1)允许删除的一端称为队头(Front). (2)允许插入的一端称为队尾(Rea ...
- 获取checkboxlist选中的值以及绑定来自之前选中的来自数据库的值
//////ps:一下几句都是一个意思,为的是以后有人搜索关键字的时候能定位到这里///checkboxlist绑定选中值///checkboxlist绑定来之mssql数据的值///checkbox ...
- RMQ问题
关于RMQ的问题我就直接截取刘汝佳的<算法竞赛训练指南>上的解释了
- 总结JavaScript输出内容(document.write)
document.write() 可用于直接向 HTML 输出流写内容.简单的说就是直接在网页中输出内容. 第一种:输出内容用“”括起,直接输出""号内的内容.<script ...
- 使用SQL除掉文本中特殊的ascll字符比如Enter,Tab,空格键
一.在SQL查询的字段中如果包含tab.enter.空格键,可以使用ascii码进行替换: --替换了文本中含有tab键,Enter键,空格键的ascii码 select REPLACE(REPLAC ...
- jQuery1.9(辅助函数)学习之—— jQuery.param( obj ); 编辑
jQuery.param( obj ); 返回一个String 描述: 创建一个数组或对象序列化的的字符串,适用于一个URL 地址查询字符串或Ajax请求. jQuery.param( obj ); ...