lidaye2396

博客园 首页 新随笔 联系 订阅 管理

2.3 编写代码

1610288565160

  • 实体类

  • Dao接口

    public interface UserDao {
       public List<User> getUserList();
    }
  • 接口实现类 (由原来的UserDaoImpl转变为一个Mapper配置文件)

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
           PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
           "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

    <!--namespace=绑定一个指定的Dao/Mapper接口-->
    <mapper namespace="com.kuang.dao.UserDao">
       <select id="getUserList" resultType="com.kuang.pojo.User">
      select * from USER
     </select>
    </mapper>
  • 测试

    注意点:

    org.apache.ibatis.binding.BindingException: Type interface com.kuang.dao.UserDao is not known to the MapperRegistry.

    MapperRegistry是什么?

    核心配置文件(MyBatis-config.xml)中注册mappers

    <!--此处为我的包的路径-->
    <!--MyBatis-congfig.xml中各个标签有规定顺序,这个在后边-->
       <mappers>
           <mapper resource="com/alice/dao/UserMapper.xml"/>
       </mappers>

     

    • junit测试

         @Test
         public void test(){

             //1.获取SqlSession对象
             SqlSession sqlSession = MybatisUtils.getSqlSession();
             //2.执行SQL
             // 方式一:getMapper
             UserDao userDao = sqlSession.getMapper(UserDao.class);
             List<User> userList = userDao.getUserList();
             for (User user : userList) {
                 System.out.println(user);
            }

             //关闭sqlSession
             sqlSession.close();
        }

可能会遇到的问题:

    1. 配置文件没有注册

    2. 绑定接口错误

    3. 方法名不对

    4. 返回类型不对

    5. Maven导出资源问题

posted on 2021-03-24 11:11  lidaye2396  阅读(14)  评论(0编辑  收藏  举报