ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Springboot mybatis总结

2022-04-16 14:00:21  阅读:126  来源: 互联网

标签:总结 mapper java Springboot apache 3.5 mybatis org


mybatis 总结

属性配置

1. mybatis.configuration.mapUnderscoreToCamelCase=true

mapUnderscoreToCamelCase用于映射表中的字段与model中成员的映射关系

映射关系为:表中字段去掉"_",并转为驼峰

比如:

//映射转换方式
role_id => roleId

如果配置为false,则只有一模一样的字段才可以映射到

2. mybatis.mapper-locations

用于设置mapper.xml的映射目录

比如

mybatis.mapper-locations=classpath:/mybatis/mapper/*.xml

这个路径必须写正确,之前写错误有报错以下错误,且还是在运行期发生与数据库访问时报错,无法再编译期检查出来,要格外小心

2019-08-28 13:52:33.769 ERROR 26395 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.grady.mybatisdemo.mapper.UserMapper.findAllUser] with root cause

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.grady.mybatisdemo.mapper.UserMapper.findAllUser
	at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:235) ~[mybatis-3.5.2.jar:3.5.2]
	at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:53) ~[mybatis-3.5.2.jar:3.5.2]
	at org.apache.ibatis.binding.MapperProxy.lambda$cachedMapperMethod$0(MapperProxy.java:61) ~[mybatis-3.5.2.jar:3.5.2]
	at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[na:1.8.0_191]
	at org.apache.ibatis.binding.MapperProxy.cachedMapperMethod(MapperProxy.java:61) ~[mybatis-3.5.2.jar:3.5.2]

3. 一定要加上@MapperScan("com.grady.mybatisdemo.mapper")注解

mapperScan中需填入mapper.java所在的包的路径,方便mybatis生成增强对象

经测试@mapperScan可以加载使用@Bean @Configuration @Component @Service 注解的类上,也是可以生效的

但建议还是加载Application的类上,这样更加一目了然

4. mybatis.typeAliasesPackage=com.grady.mybatisdemo.model

mybatis.typeAliasesPackage用于指定包的别名映射关系,之后在xml中就直接使用类名就可以了

比如:

  <select id="findAllUser" resultType="User">
    SELECT
      *
    FROM
      user
  </select>
PS:这个属性虽好,但建议谨慎使用,因为它固定了model类生成的目录,而大型项目往往进行模块划分,不能保证所有的model在同一个目录下,而且还需要去属性文件中去寻找目录的位置,相对会有些繁琐(==IDE也不能通过左击直接进入model类中)

5. 开启Mybatis SQL 日志

logging.level.com.grady.mybatisdemo.mapper=DEBUG

标签:总结,mapper,java,Springboot,apache,3.5,mybatis,org
来源: https://www.cnblogs.com/gradyblog/p/16152617.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有