设为首页 加入收藏

TOP

SpringBoot整合Mybatis(CRUD的实现)(三)
2019-09-06 00:26:39 】 浏览:119
Tags:SpringBoot 整合 Mybatis CRUD 实现
r
11 public class UserController { 12 13 @Autowired 14 private UserMapper userMapper; 15 16 //插入user 17 @RequestMapping("/user") 18 public void insert( User user) { 19 userMapper.insert(user); 20 } 21 22 //根据id删除 23 @RequestMapping("/user1/{id}") 24 public void delete(@PathVariable("id") Integer id) { 25 userMapper.delete(id); 26 } 27 //修改 28 @RequestMapping("/user2/{id}") 29 public void update(User user,@PathVariable("id") Integer id) { 30 userMapper.update(user); 31 } 32 33 //根据id查询学生 34 @RequestMapping("/user3/{id}") 35 public User getById(@PathVariable("id") Integer id) { 36 User user = userMapper.getById(id); 37 return user; 38 } 39 40 //查询全部 41 @RequestMapping("/users") 42 public List<User> list(){ 43 List<User> users = userMapper.list(); 44 return users; 45 } 46 47 } UserController.java

 

测试使用PostMan或者直接在浏览器测试

 

过程中所遇到的问题:

报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

解释:就是说,你的Mapper接口,被SpringBoot注入后,却无法正常的使用mapper.xml的sql;

首先检查下自己的代码是否错误,sql语句是否正确,在此基础上对照下面的解决方法。

这里的可能发生的情况有如下几种:

  1. 接口已经被扫描到,但是代理对象没有找到,即使尝试注入,也是注入一个错误的对象(可能就是null)
  2. 接口已经被扫描到,代理对象找到了,也注入到接口上了,但是调用某个具体方法时,却无法使用(可能别的方法是正常的)

二者报错的结果是一样的,这里就提供几种排查方法:

   1.mapper接口和mapper.xml是否在同一个包(package)下?名字是否一样(仅后缀不同)?

         比如,接口名是UserMapper.java;对应的xml就应该是UserMapper.xml  

   2.mapper.xml的命名空间(namespace)是否跟mapper接口的包名一致?

    比如,你接口的包名是com.beilin.mapper,接口名是UserMapper.java,那么你的mapper.xml的namespace应该是com.beilin.mapper.UserMapper 

  3.接口的方法名,与xml中的一条sql标签的id一致 

    比如,接口的方法List<User> GetById();那么,对应的xml里面一定有一条是<select id="GetByIdparameterType="int" resultType="user">****</select>  

  4.如果接口中的返回值List集合(不知道其他集合也是),那么xml里面的配置,尽量用resultMap(保证resultMap配置正确),不要用resultType

  5.最后,在编译后,到接口所在目录看一看,很有可能是没有生产对应的xml文件,因为maven默认是不编译的,因此,你需要在你的pom.xml的<build></build>里面,加这么一段:

 

1 <resources>
2             <resource>
3                 <directory>src/main/java</directory>
4                 <includes>
5                     <include>**/*.xml</include>
6                 </includes>
7                 <filtering>true</filtering>
8             </resource>
9  </resources>
resources

 

 

 

 

 

 

 

 

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇什么是SEO?SEO能做什么! 下一篇IIS 程序池优化配置方案

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目