Mybatis学习 - select查询结果用resultType指定返回值

返回list

1、编写接口方法:

    public List<Teacher> getTeachersByNameLike(String name);  //根据名字模糊查询,返回一个list

2、编写mapper文件
这里的返回值类型是list中元素 的类型,不是List!!!!

    <select id="getTeachersByNameLike" resultType="bean.Teacher">
        select * from teacher where name like #{name}
    </select>

3、编码测试

 @Test
    public void testSearch4() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);

        //创建sqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //生成session实例

        try (SqlSession session = sqlSessionFactory.openSession()) {
            //获取接口的实现
            TeacherMapper teacherMapper = session.getMapper(TeacherMapper.class);
            List<Teacher> teachers = teacherMapper.getTeachersByNameLike("%a%");
            for(Teacher teacher :teachers) {
                System.out.println(teacher);
            }
        }

    }

4、运行结果如下:
在这里插入图片描述

返回javabean对象

1、编写接口方法

public Teacher getTeacherByID(Integer id);

2、编写mapper文件

    <select id="getTeacherByID" resultType="bean.Teacher">
    select * from teacher where id = #{id}
  </select>

3、编写测试代码

    @Test
    public void testSearch() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);

        //创建sqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //生成session实例

        try (SqlSession session = sqlSessionFactory.openSession()) {
            //获取接口的实现
            TeacherMapper teacherMapper = session.getMapper(TeacherMapper.class);
            Teacher teacher = teacherMapper.getTeacherByID(1);
            System.out.println(teacher);
        }

    }

4、运行结果如下:
在这里插入图片描述

返回Map(一条记录)

1、编写接口方法:

 public  Map<String,Object> getTeacherMapByID(Integer id);

2、编写mapper文件

    <select id="getTeacherMapByID" resultType="map">
        select * from teacher where id=#{id}
    </select>

3、编写测试代码

    @Test
    public void testSearch5() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);

        //创建sqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //生成session实例

        try (SqlSession session = sqlSessionFactory.openSession()) {
            //获取接口的实现
            TeacherMapper teacherMapper = session.getMapper(TeacherMapper.class);
            Map<String,Object> map = teacherMapper.getTeacherMapByID(1);
            System.out.println(map);
        }

    }

4、运行结果
在这里插入图片描述

返回Map(多条记录)

1、编写接口方法

    @MapKey("name")  //封装map的时候使用name作为主键
    public Map<String,Object> getTeachesMapByname(String name);

2、编写mapper

    <select id="getTeachesMapByname" resultType="bean.Teacher">
        select * from teacher where name like #{name}
    </select>

3、编写测试代码

    @Test
    public void testSearch6() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);

        //创建sqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //生成session实例

        try (SqlSession session = sqlSessionFactory.openSession()) {
            //获取接口的实现
            TeacherMapper teacherMapper = session.getMapper(TeacherMapper.class);
            Map<String,Object> map = teacherMapper.getTeachesMapByname("%a%");
            System.out.println(map);
        }

    }

4、执行结果
在这里插入图片描述

发布了108 篇原创文章 · 获赞 10 · 访问量 9681

猜你喜欢

转载自blog.csdn.net/liying15/article/details/102305281