Solon详解(11)- Mybatis 与 Solon 相亲相爱 (2)

关于多数据源的注解模式示例:

/** * 注解模式,通过@Db注入,并指定具体的数据源 * * @Db 可注入 Mapper, SqlSession, SqlSessionFactory 类型的字段 * */ @XMapping("/demo2/") @XController public class Demo2Controller { @Db("db1") AppxMapper appxMapper; //使用@Db 指定会话工厂并注入 @Db("db2") Appx2Mapper appxMapper2; @XMapping("test") public AppxModel test(){ return appxMapper.appx_get(); } @XMapping("test2") public AppxModel test2(){ return appxMapper2.appx_get2(48); } }

关于事务的示例:(分布式环境下,尽量用消息代理JDBC事务)

/** * 事务演示 * */ @XMapping("/tran/") @XController public class TranController { @XInject AppxMapper appxMapper; /** * mybatis-solon-plugin 的事务,由 @XTran 注解发起(更详细的说明,参考其它文章) * */ @XTran @XMapping("test") public Object test() throws Throwable{ appxMapper.appx_get(); } }

关于多数据源事务的示例,需要用到Service层:(分布式环境下,尽量用消息代理JDBC事务)

/** * 多数据源事务演示 * */ @XMapping("/tran2/") @XController public class Tran2Controller { @XInject AppService appService; //这是定义的Service类,里面的函数注解了@XTran("db1") @XInject App2Service app2Service; //同上 /** * 这是一个多数据源的事务组 * */ @XTran @XMapping("test") public void test() throws Throwable { //内部走的是db2的事务 app2Service.add(); //内部走的是db1的事务 appService.add(); } }

关于分页的示例:(本案用的是sqlhelper)

@XMapping("/page/") @XController public class PageController { @XInject AppxMapper appxMapper; @XMapping("test") public Object test() throws Throwable{ SqlPaginations.preparePagination(2,2); return appxMapper.appx_get_page(); } }

(五)略过的一些代码文件(直接看开头的相关源码)

故事结尾

加了事务注解后,更加的简洁优雅了。。。所有组团挑战全部完成,OY...

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsfxzy.html