1. 无法读取到xml配置文件
错误代码:
java.io.IOException: Could not find resource com/wu/dao/role/RoleMapper.xml
原因:
IDEA是不会编译src的java目录的xml文件,所以在Mybatis的配置文件中找不到xml文件!
解决方法:
在pom文件中添加
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
或者直接在resource文件夹中构建xml文件(注:包名必须相同)
2. 连接数据库中出现问题
错误代码
java.sql.SQLException: Access denied for user '${username}'@'localhost' (usi
错误原因:
config配置文件中的值命名要和db.properties中对应的值名称相同
<property name="username" value="${user}"/>
user = root
3. xml文件中resulttype写错
当接口返回值类型为list类型时,xml文档中的resultType类型应为list集合中所包含的的对象类型(泛型类型)
错误代码:
java.lang.UnsupportedOperationException
在项目中对List进行操作时报错java.lang.UnsupportedOperationException,后来发现操作的List是由数组转换而成的。
调用Arrays.asList()生产的List的add、remove方法时报异常,这是由Arrays.asList() 返回的市Arrays的内部类ArrayList, 而不是java.util.ArrayList。Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList重新了这些方法而Arrays的内部类ArrayList没有重新,所以会抛出异常。
4. config文件中映射器问题
注意 :
resource属性后面写的是xml文件
class路径后面写的是接口,并且接口和他的Mapper配置文件必须同名且在同一个包下
<mappers>
<mapper resource="com/wu/dao/role/RoleMapper.xml"/>
<mapper class="com.wu.dao.user.UserMapper"/>
</mappers>
5. 自动提交和关闭问题
在使用update语句时一定记得要设置为自动提交。
SqlSession sqlSession = sqlSessionFactory.openSession(true);
或
mapperUtil.getsqlsession().commit();
最后不要忘记关闭sqlsession!!!!
6.关于resultmap
- 用来解决实体类中属性名和数据库中的字段名不一致的情况。
- 多对一和一对多问题:
多对一:例如student实体类中包含一个老师对象。
一对多:例如teacher实体类中包含一个学生集合。