发表于: 2018-02-10 23:46:44
1 709
今天完成的事情:
1.spring整合mybatis的配置文件和分层整理好,编写了查询,插入,删除,清理表格的测试单元。
2.通过师兄的讲解还有自己在编写测试单元的过程加深了对service层和dao层分工的理解。
明天的计划:
上午把spring连接mybatis的内容整合完成。
遇到的问题:
1.今天遇到一个问题。是因为在StudentMapper.xml文件中没有对应方法的sql语句而导致的。
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ptteng.dao.StudentDao.deleteStudentById.
当时只是检查了StudentDao文件、StudentService文件和StudentServiceImplement文件发现没问题,去网上找答案发现还有其他原因导致这个问题,所以把解决办法拿出来,提前了解下。
第一种:通常是由Mapper ,interface和对应的xml文件的定义对应不上引起的,这时候就需要仔细检查相关文件和方法名。或者是过maven把项目打成war包,war包里面缺少Mapper对应的xml文件,也就是没有把xml文件打包进去,对应的解决办法是将下面的内容添加包pom.xml文件中的build标签中。(https://www.jianshu.com/p/800fe918cc7a)
第二种:当mybatis自动扫描时,建立的**mapper.xml文件的名称不是这样的,所以被mybatis自动忽略了。所以只要把名字改过来就好了。
<list>
<value>classpath*:mapper/com/xxx/**/*Mapper.xml</value>
<value>classpath*:dao/com/xxx/**/*Mapper.xml</value>
</list>
2.添加更新功能时,用的sql语句是update t_students set name=#{name}······这个太长了,出错以后很难找,明天想换成trim标签试下。
收获:
更了解spring整合mybatis中各个层是怎么调用的。现在感觉service层和dao层中的方法名可以不一样,因为在service层中调用dao层的方法是,service层中方法的内容实现了操作的逻辑,还有一些其他处理,现在还不是很理解。
评论