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会话参数,完成一组数据库操作,保证在一个会话中完成,即一个事务中完成一个完整的事务操作.
分享到:
相关推荐
这个“数据库操作集合”可能包含了上述所有功能的实例和模板,为LabVIEW用户提供了一站式的数据库解决方案,大大简化了数据库与LabVIEW应用程序之间的交互。通过学习和使用这些工具,开发者可以更高效地处理和管理...
ADO(ActiveX Data Objects)是Microsoft提供的一种用于访问数据库的组件,它基于OLE DB技术,可以方便地在各种编程环境中,如Visual C++(VC),实现对数据库的操作。本实例将详细阐述如何在VC开发环境中利用ADO...
在C#中,你可以通过添加SqlParameter对象到SqlCommand的Parameters集合中来实现。 7. **数据适配器和数据集**: 使用DataAdapter对象,可以从数据库填充DataSet,这允许在C#应用程序中离线处理数据。当数据集更改后...
2. **数据库设计**:使用SQL Server 2005作为后端存储,该数据库管理系统支持复杂的数据操作和事务处理。在酒店管理系统中,可能包括多个表,如客户信息表、房间信息表、预订表、订单表等,以满足不同业务需求。 3....
编程式事务管理由开发者手动控制事务的开始、提交和回滚,而声明式事务管理则通过配置实现,简化了事务处理。 10. **工具支持**: Hibernate 提供了一些工具,如Hibernate Tools,可以自动生成Java实体类和映射...
1. **增(Insert)**:创建一个新的实体对象,设置其属性,然后添加到DataContext的某个集合中,最后调用SubmitChanges()即可插入到数据库。 2. **删(Delete)**:找到要删除的对象,将其从DataContext的集合中...
总的来说,《SQL SERVER 2005数据库系统开发案例精选》是一本全面介绍SQL SERVER 2005数据库系统开发的实用教程,通过实例教学,帮助读者掌握数据库设计、管理、优化等核心技能,对于从事数据库开发和管理工作的专业...
数据库是存储和管理数据的核心工具,而Java编程语言在与数据库交互时,通常会借助Java Database Connectivity (JDBC) API。本压缩包集合包含了几个常用数据库的JDBC驱动jar文件,包括MySQL、Oracle、SQL Server和...
- Hibernate支持编程式和声明式事务管理,使用Session的beginTransaction()、commit()和rollback()方法进行编程式事务控制;或者利用Spring等框架实现声明式事务。 10. **缓存机制**: - Hibernate提供了第一级...
Access数据库管理系统是微软开发的一款关系型数据库应用软件,它提供了强大的数据存储、管理和分析功能,尤其适合中小型企业或个人用于日常事务处理、信息管理。在"实例2Access数据库管理图形"这个主题中,我们将...
通过这个资源包中的实例,读者可以深入理解如何将上述知识点应用于实际项目中,从而提升C#和ASP.NET数据库编程技能。每个实例都是一次学习和实践的机会,通过逐步调试和分析,可以加深对理论知识的理解,并积累宝贵...
《数据库管理与应用》课程是IT领域中关于数据库管理和编程的重要学习内容,旨在培养学生的数据库操作和编程能力。本单元设计项目5聚焦于数据库编程,包括存储过程、用户自定义函数、触发器、事务和游标这五大核心...
- **编程式事务管理**:开发者需要在代码中显式地管理事务,通常用于复杂的业务逻辑。 - **声明式事务管理**:通过配置文件或注解的方式指定事务边界,简化了事务管理的复杂度。 - **混合事务管理**:结合编程式和...
1. 插入(Save/SaveOrUpdate):将对象保存到数据库,创建新记录。 2. 更新(Update):当对象状态改变时,更新数据库记录。 3. 删除(Delete):从数据库中移除对象对应的记录。 4. 加载(Load/Get):根据ID获取...
Hibernate 支持两种事务管理方式:编程式事务管理和声明式事务管理。编程式事务管理需要手动开启和提交事务,而声明式事务管理可以通过Spring等框架自动处理事务边界。 六、二级缓存 为了提高性能,Hibernate 提供...
3. 数据库:涵盖了SQL语言的学习,关系型数据库的设计原则,如ER模型,以及使用Java连接数据库的JDBC技术,包括数据库连接、查询、事务处理等。 4. Web开发:可能包括Servlet、JSP、Spring MVC等Web框架的使用,以及...
标题 "快速数据库的编程实现" 暗示了这是一个关于高效数据库编程的教程或资源集合。这个11KB的压缩包可能包含了一系列基础模块和源代码,用于快速开发数据库应用程序。接下来,我们将深入探讨其中涉及的关键知识点。...