`
yuhaibo6646737
  • 浏览: 15938 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

编程式事务管理实例:实现集合对象保存到数据库中

阅读更多
public void savePersons(final List<Person> list) {
template.execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Transaction tx=null;
try {
tx=session.beginTransaction();
for (Person person : list) {
session.save(person);//此处误写为template.save(p)导致2小时试验回滚无法成功
}
tx.commit();//正常提交
} catch (Exception e) {
if (tx!=null&&tx.isActive()) {
tx.rollback();//异常回滚
e.printStackTrace();
}
}finally{
if (session!=null&&session.isOpen()) {
session.close();//关闭会话
}
}
return null;
}
});
//说明: 本方法是在dao层采用编程式事务管理的方式,在一个事务中完成集合对象保存.
要想实现事务管理功能,必须借助事务模板类的EXECUTE方法,并采用回调机制,传递实现TransactionCallBack接口的对象为参数.在其实现类的方法中采用同一个session会话参数,完成一组数据库操作,保证在一个会话中完成,即一个事务中完成一个完整的事务操作.
分享到:
评论

相关推荐

    非Access数据库在VB中的编程及应用

    本文从使用数据库存取对象变量的方法出发,实现了非Access格式数据库(以FoxPro数据库为例)的建新库、拷贝数据库结构、动态调入等操作,阐述了从编程技巧上弥补VB对这些外来数据库支持不足的可行性 。 一 、 VB...

    java面试题

    Hibernate持久化:Hibernate根据定义的映射规则将对象持久化保存到数据库,这就实现了对象的持久化。 Spring由那几个模块组成? 答:Spring主要由7个模块组成: 1:Spring核心容器:提供了Spring框架的基本功能 2...

    Spring面试题

    -(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中; -(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法; -(4)如果...

    Access+2000中文版高级编程

    Access2000中文版高级编程 目录 第一部分 编程基础 1 第1章 宏与代码 3 1.1 何时使用代码代替宏 4 1.1.1 何时用宏 4 1.1.2 何时用代码 4 1.2 宏到代码的转换 5 1.2.1 使用DoCmd对象 5 1.2.2 与宏...

    jdbc基础和参考

    //讲User对象保存到数据库中 public void insertUser(User user){ } } JDBC:本身自动帮我做事务管理的操作 AutoCommit = true; Connection.setAutoCommit(false); 正常: conn.commit(); 异常: conn....

    超级有影响力霸气的Java面试题大全文档

    当客户机第一次调用一个Stateful Session Bean 时,容器必须立即在服务器中创建一个新的Bean实例,并关联到客户机上,以后此客户机调用Stateful Session Bean 的方法时容器会把调用分派到与此客户机相关联的Bean实例...

    Access 2000中文版高级编程(part1)

    Access2000中文版高级编程 目录 第一部分 编程基础 1 第1章 宏与代码 3 1.1 何时使用代码代替宏 4 1.1.1 何时用宏 4 1.1.2 何时用代码 4 1.2 宏到代码的转换 5 1.2.1 使用DoCmd对象 5 1.2.2 与宏命令等价...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    8.2. 在集合中出现的依赖对象 (Collections of dependent objects) 8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 ...

    asp.net知识库

    在 SQL Server 2005 中使用表值函数来实现空间数据库 SQL Server 2005的30个最重要特点 同时安装sql2000和sql2005的经验 类如何与界面绑定 在Asp.net中如何用SQLDMO来获取SQL Server中的对象信息 使用Relations建立...

    第24次课-1 Spring与Hibernate的整合

    无论是编程式事务还是声明式事务,Spring都提供一致的编程模型。 24.3 Spring对Hibernate的简化 24.3.2 简化的具体表现 Spring对Hibernate的简化包括: 统一的异常处理机制。不再强制开发者在持久层捕捉异常,持久层...

    spring.doc

    5.1.8声明式事务管理 116 5.1.8.1Spring的事务管理器 117 5.1.8.2Spring事务的传播属性 117 5.1.8.3Spring事务的隔离级别 117 拓展: 118 5.1.8.4以XML配置的 形式 119 拓展: 120 5.1.8.5以注解方式配置 125 拓展:...

    JAVA 范例大全 光盘 资源

    实例206 用Servlet实现分页查看数据库 686 实例207 简单的BBS论坛 697 第21章 Java程序综合案例:教务处管理系统 705 21.1 登录界面的设计与代码实现 705 21.2 功能选择界面的设计 708 21.3 学生信息系统界面的...

Global site tag (gtag.js) - Google Analytics