发表于: 2017-06-26 22:50:08

3 994


今日完成

今天开始做任务7,全部重写,没有使用以前的code。搭建完任务后,计划从用户注册的功能开始写。

用户系统建了个稍微复杂点的,有Role 和Permission的三个数据库的,用户注册成功后的role是user:unconfirmed也就是还没有通过验证的用户,然后用户可以通过手机验证后,成文user:phone-confirmed。

也就是说建立用户的时候要对user这个table 和user-role这个table进行insert。这就要使用transaction了。开始看mybatis transaction。

最后选择使用下面的代码解决transaction问题

DefaultTransactionDefinition def = new DefaultTransactionDefinition();
TransactionStatus status = transactionManager.getTransaction(def);
try {
   userRegMapper.insert(reg);
   userRoleMapper.insert(reg.getUser_id(), 1);

} catch (Exception e) {
   transactionManager.rollback(status);
   throw e;
}
transactionManager.commit(status);


测试了上面的代码,没有问题。

如果插入任何一个数据不成功,两个insert都不会成功。只有两个insert都成功的时候,才会commit。


今日遇到困难

尝试学习使用spring的@Transactional annotation。开始按照网上的一些文章做,结果加了@Transactional之后,junit测试程序虽然不出错,但是数据也写不到数据库。google了一会,发现各色文章写的真是java特点,完全听不懂,各种专有名词,各种道理。学java感觉就是总遇到懂的人看得懂,不懂的人看不懂的文章。然后还是跳回mybatis官网,使用比较传统的方法解决了。


今日收获

学习了mybatis在spring下的比较简单的transaction方式


明日计划

继续task7


返回列表 返回列表
评论

    分享到