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操作时,利用模版进行操作不失为一种方法. ...
随机推荐
- # MongoDB学习笔记(持续更新)
启动mongo服务 sodo mongo 显示数据库(显示数据库名称和大小,单位GB) > show dbs admin (empty) local 0.078GB test 0.078GB t ...
- Qt的Graphics-View框架和OpenGL结合详解
Qt的Graphics-View框架和OpenGL结合详解 演示程序下载地址:这里 程序源代码下载地址:这里 这是一篇纯技术文,介绍了这一个月来我抽时间研究的成果. Qt中有一个非常炫的例子:Boxe ...
- JNI(5)The Invocation API
调用API允许软件提供商加载Java VM 到任意的本地应用中.供应商可以提供支持Java的应用程序而无需链接Java VM的代码. 概述 下面代码展示了通过调用API如何使用函数.这个例子中C++代 ...
- c语言数组小练习
//查找数组中最大的值: #include<stdio.h> int main01() { , , , , , , , , , ,,}; ]; int i; ;i < ]);i++) ...
- C复习手记(Day3)
C预处理器 C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤.简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理.我们将把 C 预处理器 ...
- IIS发布程序,出现:请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理解决方案
windows 7(或者windows 2008)+iis7.5 出现如下错误的解决方法: 错误描述:请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理 解决方法: 打开cmd命令窗口,执行如下 ...
- XML中 添加或修改时 xmlns="" 怎么删除
//创建节点时 记得加上 ---> xmldoc.DocumentElement.NamespaceURI XmlElement url = xmldoc.CreateElement(&quo ...
- (转)JSON对象长度和遍历方法
最近在修改一个HTML页面的JS的时候遍历JSON对象,却怎么也调试不通过.怪这个HTML网页不知道用了什么方法禁止了js错误提示,刚开始的时候不知道有这个问题,用chrome的开发人员工具都没发现错 ...
- sql 字段字符串内容替换
SELECT * FROM dbo.Table WHERE Name LIKE '%NYCL23%'UPDATE Table SET Name=replace(Name,'NYCL23','WYCL1 ...
- map的使用方法
package cn.stat.p8.map.demo; import java.util.Collection; import java.util.HashMap; import java.util ...