MyBatis sql映射器 Mapper

半腔热情 提交于 2019-12-05 20:56:03

入门

  MyBatis基于动态代理机制,让我们无需再编写Dao的实现。

  传统Dao接口,现在名称统一以Mapper结尾,还有我们映射器配置文件要和映射器在同一个包.

 

   IDeptDao---->DeptMapper.java---DeptMapper.xml(namespace直接写DeptMapper.java的全限定名)

 

 

1.创建个User类(首先得有个数据库中的表是User,并且还有对应的字段)

public class User {
    private Long id;
    private String name;

   get和set和tostring此处省略。。。。(get和set和tostring是要的,太长了没复制) }

2.个上面的类建个接口UserMapper

import java.util.List;
/** * 查询数据库中所有数据 * @return */
public interface UserMapper {   List<User> queryAll(); }

 

3.建个UserMapper.xml

 

<?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">
<!-- orm框架 sql的映射
namespace:命名空间  namespace路径+ id值
          namespace怎么配置 包名.接口名 + queryAll
-->
<mapper namespace="cn.itsource._02mapper.UserMapper">
<!-- 查询 queryAll()    resultType 返回类型    注意下面id的值必须和你接口中的方法名一致,如果有其他方法也要一一对应,否则会报错找不到方法     下面resultType的值就是你执行了下面sql语句返回的数据类型-->
<select id="queryAll" resultType="User"> select * from t_user </select> </mapper>

 

 

 

 

4.写一个测试类进行测试

import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import util.MyBataisUtil;

import java.util.List;

public class UserImplTest {

    @Test
    public void querAll() {
        //MyBataisUtil.MYBATAIS.getSqlSession();通过单例模式封装好sqlSession
        SqlSession sqlSession = MyBataisUtil.MYBATAIS.getSqlSession();
        //sqlSession.getMapper(要动态代理的接口)返回动态代理类
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        //用动态代理类来调用查询全部数据的方法
        List<User> users = mapper.queryAll();
        for (User user : users) {
            System.out.println(user);
        }
    }
}

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!