凤凰山笔记

jfinal集成原生mybatis

一直想做jfinal和原生mybatis的集成
jfinal虽然说不上和spring一样高大全,但是就轻量级这个方面真的没话说,作者詹波还是很有前瞻性的早早放弃spring的配置文件加载,选择API编程式启动。

虽然很忙,但是做了两天终于有了这个简单的集成:
git地址:https://github.com/cloudroc/honta

做了这么几个改造:

1.实现了jfinal集成原生mybatis,以jfinal plugin的方式集成

2.工具类SqlSessionUtil实现了线程安全的sqlsession的调用,不用使用原mybatis sqlsession先open再close

使用示例:

1
2
3
User user = SqlSessionUtil.getSqlSession()
.selectOne("cn.jarjar.test.dao.UserMapper.selectByUserName"
, "admin");

3.实现简单的编程式事务模板,能保证事务执行失败,进行回滚

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
使用示例

//测试失败提交
MyTx.tx(new IAtom(){

public boolean run() throws SQLException {
//插入
for(int i=0;i<10;i++){
user.setUsername("FAIL"+i);
SqlSessionUtil.getSqlSession()
.insert("cn.jarjar.test.dao.UserMapper.insert",user);
}

//失败情况
SqlSessionUtil.getSqlSession()
.insert("cn.jarjar.test.dao.UserMapper.insertXXXX",user);

return true;
}
});

4.做了基本测试,模拟并发的情况性能还是比较喜人的

cloudroc wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
很惭愧,只做了些微小的工作,您的支持将鼓励我继续努力创作!