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

最新文章

  1. 坚持不懈之linux haproxy的配置文件关键字查询手册
  2. Hark的数据结构与算法练习之梳排序
  3. 2012 #1 Saving Princess claire_
  4. 去掉linux 系统vi中出现^M字符的方法
  5. 通过从代码层面分析Linux内核启动来探知操作系统的启动过程
  6. C#微信开发之旅--基本信息的回复
  7. 利用CMake自己创建OpenCV静态链接库
  8. 【动态规划】Codeforces 698A &amp; 699C Vacations
  9. html系列教程--span style 及表格标签 title video
  10. portal---easyui
  11. MySQL HINT:Straight_JOIN
  12. WPF 杂谈——Binding表达式
  13. laravel 事件监听
  14. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】
  15. angular2 学习笔记 ( translate, i18n 翻译 )
  16. 学习笔记CB004:提问、检索、回答、NLPIR
  17. OPC客户端开发问题总结
  18. spss缺失值填充步骤
  19. windos 系统文件包含
  20. linux动态库

热门文章

  1. mysql InnoDB通过.frm和.ibd恢复表和数据
  2. Spring框架系列(7) - Spring IOC实现原理详解之IOC初始化流程
  3. java常见的面试题(一)
  4. NC24840 [USACO 2009 Mar S]Look Up
  5. Zend Studio,php 生成报错
  6. EfficientFormer:轻量化ViT Backbone
  7. 论文解读(MaskGAE)《MaskGAE: Masked Graph Modeling Meets Graph Autoencoders》
  8. 笔记本Usb接口案例
  9. MYSQL(基本篇)——一篇文章带你走进MYSQL的奇妙世界
  10. nodejs学习总结01