Mybatis Exception

Mybatis Exception:

提示:org.apache.ibatis.exceptions.PersistenceException:


问题描述

提示:Error parsing SQL Mapper Configuration case: java.io.IOException: Could not find resource com/zwh/mapper/UserMapper.xml

public class test {
    public static void main(String[] args) throws IOException {
        //1.加载配置文件
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        //2.创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        //3.使用工厂生产SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //4.使用SqlSession创建Dao接口代理对象
        IUserDao userDao = (IUserDao) sqlSession.getMapper(User.class);
        //5.使用代理对象执行方法
        List<User> users = userDao.selectUserList();
        for (User user:users){
            System.out.println(user);
        }
        //6.释放资源
        sqlSession.close();
        inputStream.close();
    }
}


原因分析:

提示:idea在resource目录第一创建文件夹时的小bug:

创建com.zwh.mapper时本是三个目录,结果变成一个目录的文件名
在这里插入图片描述


解决方案:

提示:
rm -rf com.zwh.mapper
mkdir -p ./com/zwh/mapper

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
               <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
               <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/zwh/mapper/UserMapper.xml"/><!--此路径读取不到原因如 ⬆️ 所述-->
    </mappers>
</configuration>

问题描述

提示:Type class com.zwh.domain.User is not known to the MapperRegistry 小问题总是很致命,问题如图⬇️修改地方

public class test {
    public static void main(String[] args) throws IOException {
        //1.加载配置文件
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        //2.创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        //3.使用工厂生产SqlSession对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //4.使用SqlSession创建Dao接口代理对象
        
        //IUserDao userDao = (IUserDao) sqlSession.getMapper(User.class);
        IUserDao userDao =  sqlSession.getMapper(IUserDao.class);
        
        //5.使用代理对象执行方法
        List<User> users = userDao.selectUserList();
        for (User user:users){
            System.out.println(user);
        }
        //6.释放资源
        sqlSession.close();
        inputStream.close();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值