我的项目结构如下:
1、介绍问题
最近在学习JavaWeb相关技术,学到了这个Mybatis(相关的知识点稍后出一篇文章详细说明,关键词搜索Mybatis即可)。
关于这个Error building SqlSession.问题,不同的朋友会遇到不同的情况,我这里介绍一种我遇到的情形:我的情况是运行了一个MybatisDemo类,这个是使用了mapper代理的。然后运行爆了Error building SqlSession.的同时,实体类中两个方法也报错了,如下:
2、报错原因
在折腾了两个小时之后,找到了问题所在:没有给实体类User设置别名,但是在UserMapper.xml文件中却使用了"默认别名",所以找不到User类,所以产生错误。
如下图:
3、如何解决
解决方式有两种:
第一种:每次使用都配置User类的全限定名
可以看到,selectAll方法已经不报错了。
第二种:设置别名
在mybatis-config.xml文件中配置typeAliases标签,我使用的是批量设置别名的方式。
批量指定很简单,只要指定包名即可,之后程序会为包下的所有类都自动加上别名,其定义别名的规范就是对应包装类的类名首字母变为小写。如User类的别名就自动设置为user。