一、声明式控制
/** * 声明式事务示例 * @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; }
相关推荐
对于Jfinal项目,开发者可以通过Jfinal提供的Db工具类进行数据库操作,如连接、执行SQL、事务处理等。 2. API:API文档或者接口定义是项目的重要组成部分,它详细描述了项目的对外服务,包括HTTP请求的URL、HTTP...
JFinal通过AOP(面向切面编程)实现了如日志记录、权限控制等功能,开发者可以通过注解轻松实现切面编程,提高了代码的整洁性和模块化。 9. 安全性 JFinal提供了安全相关的功能,如CSRF防御、SQL注入防范等,保障了...
**Controller** 类是 MVC 架构中的控制器部分,在 JFinal 中用于处理用户的请求并控制流程。具体包括以下功能: 1. **Action**:控制器的方法通常被称为 Action,负责处理 HTTP 请求。 2. **getPara 系列方法**:...
1. 路由管理:JFinal 3.5支持动态路由配置,可以根据URL规则自动匹配控制器和方法,灵活方便。 2. 插件系统:提供了如Shiro安全框架、MyBatis数据持久层等众多插件,扩展性强,满足不同项目需求。 3. ORM支持:...
同时,Jfinal3.0在SQL处理上也有独到之处,其内置的Ibatis插件支持灵活的SQL编写,且提供了事务管理,确保数据操作的完整性。 `jfinal-3.0-all.zip`包含了Jfinal3.0的所有依赖jar包,这使得开发者无需单独去寻找...
- JFinal 集成了多种数据库驱动,如 MySQL、Oracle、SQLite 等,提供了简单的 CRUD 操作以及事务管理。 4. **模板引擎**: - 默认使用的是 Beetl 模板引擎,但也可以选择 FreeMarker 或其他模板引擎进行视图渲染...
JFinal提供了便捷的事务控制API,可以根据业务需求进行事务回滚或提交。同时,Druid数据源允许你配置连接池参数,以优化数据库性能。 总之,JFinal框架配合Oracle数据库可以轻松实现企业级Web应用的开发。正确配置...
还涵盖了声明式事务、缓存、多数据库方言支持、表关联操作等高级特性,同时给出了Oracle数据库的支持说明和动态SQL的管理方法。 第六章 TemplateEngine JFinal提供了强大的模板引擎来处理页面渲染。手册中对此进行...
5. **视图(View)**:JFinal支持FreeMarker和Velocity两种模板引擎,手册会介绍如何设置视图路径、如何在控制器中跳转到指定视图,以及如何在模板中使用变量和控制结构。 6. **插件(Plugins)**:JFinal拥有丰富的...
JFinal提供了丰富的session操作方法,允许开发者在控制器中轻松管理用户会话。此外,render系列方法用于页面渲染,如渲染模板或文本等。 ### 第四部分:AOP #### 拦截器机制 JFinal的AOP部分主要讲述了如何使用...
4. **插件化设计**:JFinal 采用插件化设计,提供了诸如Shiro安全控制、Quartz任务调度、Email发送、Excel导出等多种功能插件,方便开发者按需选择和使用。 5. **内置Jetty服务器**:JFinal 内置了Jetty服务器,...
5. **插件(Plugins)**:JFinal 提供了丰富的插件支持,如 SQL 执行插件、事务管理插件、缓存插件等。在 JFinalDemo 中,可能已经预设了一些基本的插件配置,如使用 MyBatis 插件进行 ORM 操作。 6. **路由(Route...
### JFinal API 知识点解析 #### 一、JFinal 框架概览 - **框架定位**:JFinal 是一款基于 Java 的 WEB 开发框架,它结合了 ORM (对象关系映射) 技术,旨在提供高效、简洁的开发体验。JFinal 设计精巧,使用简单,...
3. Interceptor:这部分定义了拦截器的应用和配置,拦截器是一种AOP技术的实现,可以对Action进行拦截处理,实现安全检查、日志记录、事务控制等功能。 4. ActiveRecord:这部分是JFinal的ORM部分,提供了一个简洁...
- **高性能**:JFinal采用AOP(面向切面编程)和Ioc(控制反转)实现,提供了高性能的路由和数据库操作。 - **内置插件**:JFinal集成了如DBUtils、.freemarker、Beetl等常用工具,使得开发更加便捷。 - **自动...
6. **事务管理**:对于涉及多表操作的业务,如订单创建、支付处理等,JFinal 提供了事务管理,确保数据的一致性。这在处理用户下单、扣减库存等关键环节至关重要。 7. **其他技术集成**:为了实现一个完整的网上...
6. **AOP支持**:JFinal 提供了面向切面编程的支持,可以方便地进行日志、事务等通用功能的编写。 7. **性能优化**:JFinal 在设计时就考虑了性能问题,如使用了零拷贝技术,减少了内存中的数据复制,提高了运行...
1. 自动化事务管理:JFinal提供了自动化的事务管理,开发者只需要关注业务逻辑,无需手动开启和关闭事务。 2. 数据缓存:JFinal集成了Memcached和Redis等缓存服务,可以有效提升数据访问速度。 3. RESTful支持:...
这部分内容展示了JFinal在MVC模式中的控制器部分的实现。 AOP部分,JFinal提供了拦截器(Interceptor)的使用,拦截器的触发时机,以及如何注入拦截器。这部分内容展示了JFinal对于面向切面编程的支持,让开发者...