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操作时,利用模版进行操作不失为一种方法. ...
随机推荐
- 实现Android 版网页快照功能
现在一般的购物网站,在你完成交易后都会将页面拍照以免日后发生商务纠纷,而对于我们移动开发者这个传统互联网上的优秀经验也同样给了我们一些设计上的启迪,接下来我将几种实现思路写出来供大家参考. 方案一:使 ...
- Java基础知识强化36:StringBuffer类之StringBuffer的概述
1. StringBuffer类概述: (1)String的缺陷: 我们如果对字符串进行拼接操作,每次拼接,都会构造一个新的String对象,既耗时,又浪费空间.如下图: (2)StringBuffe ...
- android上line-height的问题
关于line-height大家应该非常熟悉了吧,就是用来做垂直居中的,屡试不爽,基本上没有什么问题,但是最近一个项目,测试提了一个bug,看图吧. 从别处窃的图,这个问题只有安卓上才能复现,做了dem ...
- Android(性能)
■ 数据传输 对象和字节流之间的转换 为什么要转? 持久化(装逼说法,JVM非运行的场合),他进程(装逼说法,其他机器JVM,不同的JVM) Parcelable和Serializable 初衷: P ...
- COM 浅谈
ArcObject 是基于 COM(Microsoft Component Object Model),即组件对象模型.虽然ArcGIS的终端用户不用理解什么是COM,但是作为基于ArcObject的 ...
- java 修改文件名
// 修改文件名 public static boolean modifyFileName(String serverPath, String oldFileName, String newLogin ...
- [Leetcode][020] Valid Parentheses (Java)
题目在这里: https://leetcode.com/problems/valid-parentheses/ [标签]Stack; String [个人分析]这个题应该算是Stack的经典应用.先进 ...
- [转]在Linux里设置环境变量的方法
在Linux里设置环境变量的方法(export PATH) 一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量.例如我的mips-linux-gcc编译器在“/opt/a ...
- django TypeError: 'module' object is not callable
原因:导入模块时直接把模块当函数使用 from rest_framework import reverse #import reverse module @api_view(("GET&qu ...
- input 不支持HTML5的placeholder属性
解决方法如下: <input type="text" value="搜索乐高资讯" onfocus="if(this.value=='搜索乐高资 ...