Springboot mybatis总结
2024-10-20 11:56:08
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
最新文章
- 坚持不懈之linux haproxy的配置文件关键字查询手册
- Hark的数据结构与算法练习之梳排序
- 2012 #1 Saving Princess claire_
- 去掉linux 系统vi中出现^M字符的方法
- 通过从代码层面分析Linux内核启动来探知操作系统的启动过程
- C#微信开发之旅--基本信息的回复
- 利用CMake自己创建OpenCV静态链接库
- 【动态规划】Codeforces 698A &; 699C Vacations
- html系列教程--span style 及表格标签 title video
- portal---easyui
- MySQL HINT:Straight_JOIN
- WPF 杂谈——Binding表达式
- laravel 事件监听
- JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】
- angular2 学习笔记 ( translate, i18n 翻译 )
- 学习笔记CB004:提问、检索、回答、NLPIR
- OPC客户端开发问题总结
- spss缺失值填充步骤
- windos 系统文件包含
- linux动态库
热门文章
- mysql InnoDB通过.frm和.ibd恢复表和数据
- Spring框架系列(7) - Spring IOC实现原理详解之IOC初始化流程
- java常见的面试题(一)
- NC24840 [USACO 2009 Mar S]Look Up
- Zend Studio,php 生成报错
- EfficientFormer:轻量化ViT Backbone
- 论文解读(MaskGAE)《MaskGAE: Masked Graph Modeling Meets Graph Autoencoders》
- 笔记本Usb接口案例
- MYSQL(基本篇)——一篇文章带你走进MYSQL的奇妙世界
- nodejs学习总结01