org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.sql.SQ
在mybatis框架中遇到了org.apache.ibatis.exceptions.PersistenceException问题,由于比较常见于测试映射文件,一不小心犯个小错就出现了,于是给自己总结一下,当然也希望对你有所帮助!!!
- 1、文件读写出现问题,系统找不到这个文件
- 2、mapper接口与映射的mapper.xml 的命名是否一致,是否在同一目录下。
- 3、SqlMapConfig.xml配置文件加载mapper接口文件的路径有错误(一般有两种方试,第一扫描
- 类<mapper class=:“类路径和类名”/>第二种批量扫描加载:选择扫描包< package name=“包名” / >)
- 4、使用mapper代理方法开发mapper接口时mapper.xml中的namespace与mapper接口的类路径相
- 同,忘记写namespace也会报该异常。
- 5、在mapper.xml里面resultMap的Type用到那个实体类名的话就要把包名也写上去
- 6、当然有时大意犯个小错也会报此异常比如写SQL语句时结尾习惯性添加了“;” 如下图,反正
- 写SQL语句千万要仔细再仔细,一不小心就报这个异常
- 7、开发mybatis动态代理时要注意四点开发规范:
- 1.接口 方法名 == User.xml 中 id 名
- 2. 返回值类型 与 Mapper.xml文件中返回值类型要一致
- 3.方法的入参类型 与Mapper.xml中入参的类型要一致
- 4.命名空间 绑定此接口
问题源头: