发表于: 2018-04-03 23:46:06
1 720
今天完成的事情:
1.昨天完成插入数据的方法应该返回ID,今天继续完成:更新或删除数据的方法应该返回True/False。
参考:https://blog.csdn.net/gaojinshan/article/details/24308313
实现:直接设定Mapper接口相关方法的返回类型为Boolean即可
service:
Mapper接口:
在项目开发中,通过实现约定的接口来进行项目的协作推进。具体到这个service,约定俗成的惯例就是:插入数据即返回数据在数据库中的主键,更新或删除数据的方法应该返回True/False以显示是否成功
2.完善了单元测试
3.Mybatis单元测试的数据库回滚
一、什么是数据库事务?数据库事务是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要不完全地不执行。
二、什么是事务回滚?回滚到操作之前的状态
举个例子:在将资金从一个账户转移到另一个账户的银行应用中,一个账户将一定的金额贷记到一个数据库表中,同时另一个账户将相同的金额借记到另一个数据库表中。由于计算机可能会因停电、网络中断等出现故障,因此有可能更新了一个表中数据,但没有更新另一个表中的数据。如果数据库支持事务,则可以将数据库操作组成一个事务,以防止因这些事件而使数据库出现不一致。如果事务中的某个点发生故障,则所有更新都可以回滚到事务开始之前的状态。如果没有发生故障,则通过以完成状态提交事务来完成更新。
在之前的单元测试中,每次进行测试都会产生对数据库的影响,然而理想情况下,单元测试除了测试功能能够正常通过以外,不应该对数据库产生任何改变。那么就需要在单元测试中添加事物回滚。
参考:spring结合junit进行单元测试(二)——测试后进行事务回滚 https://blog.csdn.net/wild46cat/article/details/52939491?locationNum=10&fps=1
@TransactionConfiguration过时与替代写法 https://blog.csdn.net/qq_35209780/article/details/64444186
实现:在application-context.xml中:
接着在特定方法上添加注解@Transactional即可
明天计划的事情:
继续完善task1
遇到的问题:
1.遇到问题:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):
mybatis的mapper接口绑定出错。
根据搜索得知需注意以下几点:
1:检查xml文件所在package名称是否和Mapper interface所在的包名一一对应;
2:检查xml的namespace是否和xml文件的package名称一一对应;
3:检查方法名称是否对应;
4:去除xml文件中的中文注释;
5:随意在xml文件中加一个空格或者空行然后保存。
最后修改了mapper接口类的方法名称,使与mapper.xml的方法id相对应
收获:
spring事务管理的流程
Mybatis自带方法返回值设定
评论