mybatis几大常见错误点
- 1、Error parsing Mapper XML. The XML location is 'mapper/MinGrayscaleQaDao.xml'. Cause: org.apache.ibatis.builder.BuilderException: Mapper's namespace cannot be empty
- 2、Mapped Statements collection does not contain value for MinGrayscaleQaDao.selectById
- 3、java.lang.ClassNotFoundException: Cannot find class: com.mysql.jdbc.Driver
- 4、java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: ${driver}
- 5、org.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 109; 对实体 "useUnicode" 的引用必须以 ';' 分隔符结尾。
1、Error parsing Mapper XML. The XML location is ‘mapper/MinGrayscaleQaDao.xml’. Cause: org.apache.ibatis.builder.BuilderException: Mapper’s namespace cannot be empty
我在启动的时候碰到了这个问题
这个其实写的蛮清楚了,也很好解决。那就是mapper.class文件与mapper.xml文件没有关联上,或者说你这里压根就写。
解决方法,你把你dao或者mapper.class接口文件的相对路径,写在namsapce上就好了
2、Mapped Statements collection does not contain value for MinGrayscaleQaDao.selectById
这个问题的原因是
你这里肯定是像我这样子写的所以就报错了,嘿嘿!!!我猜你是跟着官方文档写的,我也是。但是这里应该写的是文件的相对路径(路径跟文件名一定要正确)。
我的写法是这样子的(容错率低):
3、java.lang.ClassNotFoundException: Cannot find class: com.mysql.jdbc.Driver
这个问题的原因是
可能你的maven -》mysql-jar包版本过高没有对应你本地数据库的版本,降下版本。因为我本地是5点几版本的数据库,但是load下来的mybatis源码mysql-jar版本到8点几了。所以我把版本改为5点几的了,修改后如图:
4、java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: Cannot find class: ${driver}
这个问题的原因是
没有读取到properties文件里面的数据!可以先去判断是否是driver,url等是否写错了,如果没有的话那就是.properties文件没有读取到。
解决办法:
看图,细品~~~~~~~~
对比两张图的细节,我相信以你的聪明才智肯定是看出哪里有问题了的
5、org.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 109; 对实体 “useUnicode” 的引用必须以 ‘;’ 分隔符结尾。
这个问题的原因:
头铁,我这里是无意间碰到,正常用.properties文件跟正则来取值得话是不会出来这种问题的,我这里是因为:
报错了看到没,所以&这样子写config.xml文件是根本就无法识别的就报错了,解决方案就是你换回.properties的方式或者去掉&符号。