关于多数据源的注解模式示例:
/** * 注解模式,通过@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...