Mybatis一些使用问题总结
date
Aug 7, 2018
slug
Mybatis一些使用问题总结
status
Published
tags
Mybatis
summary
type
Post
以下是一些我个人使用mybatis常见问题总结:
插入MySQL数据乱码Spring-Boot-Mybatis-Starter无法找不到bean无法启动更换为@Mapper注解启动类配置mapper接口扫描路径用配置类指定mapper接口扫描路径小结:SQL绑定失败(Not Found)
插入MySQL数据乱码
这个是因为没配置好jdbc连接字符串,在连接字符串后加上
characterEncoding=UTF-8
即可,当然连接字符串还可以添加很多其他参数,例如:是否使用SSL连接useSSL=false
,服务器时间serverTimezone=CST
。Spring-Boot-Mybatis-Starter无法找不到bean无法启动
这个情况发生在使用spring-boot-mybatis-starter过程中,项目启动后报错:
看信息的结果是无法找到对应的mapper实现,先看下接口的写法:
解决方法有三种:
更换为@Mapper
注解
@Repository
注解替换为@Mapper
注解启动类配置mapper接口扫描路径
每个Mapper接口都要配置@Mapper注解太麻烦,可以在启动类配置扫描路径:
用配置类指定mapper接口扫描路径
小结:
mybatis的mapper扫描路径设置官方文档介绍也是三种方法,与上面的大同小异,无非一个是注解+yml配置一个是xml配置。
MyBatis:Scanning for mappers
SQL绑定失败(Not Found)
这个错误太常见了,基本概括为以下几点:
- mapper.xml中的namespace与mapper接口不对应
- 函数名称没有对上,全限定名(类名+方法名,不包括参数)
- xml文件没有扫描到
对于第三点,maven项目的xml文件应该放到resource里面,不然即使配了路径也没法扫描到。
以下配置没法扫描到xml文件,maven打包后并没有将Java文件夹里面的xml文件打包,运行的时候就会包绑定错误(not found)。
改为把xml文件放到resources文件夹即可: