`
寒飞子
  • 浏览: 48030 次
  • 性别: Icon_minigender_1
  • 来自: 福州
文章分类
社区版块
存档分类
最新评论

JFinal事务控制

 
阅读更多

一、声明式控制

/**
 * 声明式事务示例
 * @param atom
 * @return
 */
public static boolean tx2(IAtom atom) {
	return Db.tx(atom);
}

/**
 * 声明式事务示例
 * @param configName
 * @param atom
 * @return
 */
public static boolean tx2(String configName, IAtom atom) {
	return Db.use(configName).tx(atom);
}

二、手动控制

/**
 * 开始事务
 * @throws SQLException
 */
public static void beginTran() throws SQLException {
	DbKit.getConfig().setThreadLocalConnection(DbKit.getConfig().getConnection());
	DbKit.getConfig().getThreadLocalConnection().setAutoCommit(false);
}

/**
 * 开始事务
 * @param configName
 * @throws SQLException
 */
public static void beginTran(String configName) throws SQLException {
	DbKit.getConfig(configName).setThreadLocalConnection(DbKit.getConfig(configName).getConnection());
	DbKit.getConfig(configName).getThreadLocalConnection().setAutoCommit(false);
}

/**
 * 事务回滚
 * @throws SQLException
 */
public static void rollback() throws SQLException {
	DbKit.getConfig().getThreadLocalConnection().rollback();
	DbKit.getConfig().getThreadLocalConnection().setAutoCommit(true);
	DbKit.getConfig().removeThreadLocalConnection();
}

/**
 * 事务回滚
 * @param configName
 * @throws SQLException
 */
public static void rollback(String configName) throws SQLException {
	DbKit.getConfig(configName).getThreadLocalConnection().rollback();
	DbKit.getConfig(configName).getThreadLocalConnection().setAutoCommit(true);
	DbKit.getConfig(configName).removeThreadLocalConnection();
}

/**
 * 事务提交
 * @throws SQLException
 */
public static void commit() throws SQLException {
	DbKit.getConfig().getThreadLocalConnection().commit();
	DbKit.getConfig().getThreadLocalConnection().setAutoCommit(true);
	DbKit.getConfig().removeThreadLocalConnection();
}

/**
 * 事务提交
 * @param configName
 * @throws SQLException
 */
public static void commit(String configName) throws SQLException {
	DbKit.getConfig(configName).getThreadLocalConnection().commit();
	DbKit.getConfig(configName).getThreadLocalConnection().setAutoCommit(true);
	DbKit.getConfig(configName).removeThreadLocalConnection();
}

使用方法:

try {
	// 开始事务
	ExtDb.beginTran();
	// 保存主表
	String infoId = applyInfoService.saveEasInfo(doc);
	// 保存材料
	applyInfoService.saveEasAttr(doc, infoId, infoNo);
	// 事务提交
	ExtDb.commit();
} catch (Exception e) {
	// 事务回滚
	ExtDb.rollback();
	// 抛出异常
	throw e;
}
分享到:
评论

相关推荐

    JfinalDemo

    对于Jfinal项目,开发者可以通过Jfinal提供的Db工具类进行数据库操作,如连接、执行SQL、事务处理等。 2. API:API文档或者接口定义是项目的重要组成部分,它详细描述了项目的对外服务,包括HTTP请求的URL、HTTP...

    jfinal文档

    JFinal通过AOP(面向切面编程)实现了如日志记录、权限控制等功能,开发者可以通过注解轻松实现切面编程,提高了代码的整洁性和模块化。 9. 安全性 JFinal提供了安全相关的功能,如CSRF防御、SQL注入防范等,保障了...

    jfinal 3.5离线手册

    1. 路由管理:JFinal 3.5支持动态路由配置,可以根据URL规则自动匹配控制器和方法,灵活方便。 2. 插件系统:提供了如Shiro安全框架、MyBatis数据持久层等众多插件,扩展性强,满足不同项目需求。 3. ORM支持:...

    jfinal的源代码

    - JFinal 集成了多种数据库驱动,如 MySQL、Oracle、SQLite 等,提供了简单的 CRUD 操作以及事务管理。 4. **模板引擎**: - 默认使用的是 Beetl 模板引擎,但也可以选择 FreeMarker 或其他模板引擎进行视图渲染...

    blog.zip_jfinal_jfinal 日志配置_oracle

    JFinal提供了便捷的事务控制API,可以根据业务需求进行事务回滚或提交。同时,Druid数据源允许你配置连接池参数,以优化数据库性能。 总之,JFinal框架配合Oracle数据库可以轻松实现企业级Web应用的开发。正确配置...

    Jfinal3.0文档+demo

    同时,Jfinal3.0在SQL处理上也有独到之处,其内置的Ibatis插件支持灵活的SQL编写,且提供了事务管理,确保数据操作的完整性。 `jfinal-3.0-all.zip`包含了Jfinal3.0的所有依赖jar包,这使得开发者无需单独去寻找...

    jfinal3开发手册

    还涵盖了声明式事务、缓存、多数据库方言支持、表关联操作等高级特性,同时给出了Oracle数据库的支持说明和动态SQL的管理方法。 第六章 TemplateEngine JFinal提供了强大的模板引擎来处理页面渲染。手册中对此进行...

    jfinal3.3开发手册

    5. **视图(View)**:JFinal支持FreeMarker和Velocity两种模板引擎,手册会介绍如何设置视图路径、如何在控制器中跳转到指定视图,以及如何在模板中使用变量和控制结构。 6. **插件(Plugins)**:JFinal拥有丰富的...

    jfinal最新版本3.2文档

    JFinal提供了丰富的session操作方法,允许开发者在控制器中轻松管理用户会话。此外,render系列方法用于页面渲染,如渲染模板或文本等。 ### 第四部分:AOP #### 拦截器机制 JFinal的AOP部分主要讲述了如何使用...

    Jfinal框架

    4. **插件化设计**:JFinal 采用插件化设计,提供了诸如Shiro安全控制、Quartz任务调度、Email发送、Excel导出等多种功能插件,方便开发者按需选择和使用。 5. **内置Jetty服务器**:JFinal 内置了Jetty服务器,...

    JFinalDemo.zip

    5. **插件(Plugins)**:JFinal 提供了丰富的插件支持,如 SQL 执行插件、事务管理插件、缓存插件等。在 JFinalDemo 中,可能已经预设了一些基本的插件配置,如使用 MyBatis 插件进行 ORM 操作。 6. **路由(Route...

    Jfinal api word版

    ### JFinal API 知识点解析 #### 一、JFinal 框架概览 - **框架定位**:JFinal 是一款基于 Java 的 WEB 开发框架,它结合了 ORM (对象关系映射) 技术,旨在提供高效、简洁的开发体验。JFinal 设计精巧,使用简单,...

    jfinal学习手册

    3. Interceptor:这部分定义了拦截器的应用和配置,拦截器是一种AOP技术的实现,可以对Action进行拦截处理,实现安全检查、日志记录、事务控制等功能。 4. ActiveRecord:这部分是JFinal的ORM部分,提供了一个简洁...

    JFinal资源

    - **高性能**:JFinal采用AOP(面向切面编程)和Ioc(控制反转)实现,提供了高性能的路由和数据库操作。 - **内置插件**:JFinal集成了如DBUtils、.freemarker、Beetl等常用工具,使得开发更加便捷。 - **自动...

    jfinal框架实现的网上商城

    6. **事务管理**:对于涉及多表操作的业务,如订单创建、支付处理等,JFinal 提供了事务管理,确保数据的一致性。这在处理用户下单、扣减库存等关键环节至关重要。 7. **其他技术集成**:为了实现一个完整的网上...

    jfinal框架及文档说明

    6. **AOP支持**:JFinal 提供了面向切面编程的支持,可以方便地进行日志、事务等通用功能的编写。 7. **性能优化**:JFinal 在设计时就考虑了性能问题,如使用了零拷贝技术,减少了内存中的数据复制,提高了运行...

    jfinal开发实例

    1. 自动化事务管理:JFinal提供了自动化的事务管理,开发者只需要关注业务逻辑,无需手动开启和关闭事务。 2. 数据缓存:JFinal集成了Memcached和Redis等缓存服务,可以有效提升数据访问速度。 3. RESTful支持:...

    jfinal中文文档

    这部分内容展示了JFinal在MVC模式中的控制器部分的实现。 AOP部分,JFinal提供了拦截器(Interceptor)的使用,拦截器的触发时机,以及如何注入拦截器。这部分内容展示了JFinal对于面向切面编程的支持,让开发者...

Global site tag (gtag.js) - Google Analytics