练习中遇到的问题

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

  1. 用来解决实体类中属性名和数据库中的字段名不一致的情况。
  2. 多对一和一对多问题:
    多对一:例如student实体类中包含一个老师对象。
    一对多:例如teacher实体类中包含一个学生集合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值