Fork me on GitHub

mybatis文件映射之select操作返回List集合

在EmplyeeMapper.java中:

public List<Employee> getEmpByLastNameLike(String lastName);

在EmployeeMapper.xml中

    <select id="getEmpByLastNameLike" resultType="com.gong.mybatis.bean.Employee">
        select id,last_name lastName,gender,email from tbl_employee where last_name like #{lastName}
    </select>

由于数据库中的字段last_name与实体类中的lastName名字不对应,因此需要用别名来指代。

之后进行单元测试:

package com.gong.mybatis.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import com.gong.mybatis.bean.Employee;
import com.gong.mybatis.dao.EmployeeMapper;
import com.gong.mybatis.dao.EmployeeMapperAnnotation;

public class TestMybatis {
    
    public SqlSessionFactory getSqlSessionFactory() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream is = Resources.getResourceAsStream(resource);
        return new SqlSessionFactoryBuilder().build(is);
    }

    @Test
    public void test04() throws IOException {
        SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
        SqlSession openSession = sqlSessionFactory.openSession();
        try {
            EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
            List<Employee> employees = mapper.getEmpByLastNameLike("%小%");
            for(Employee e:employees) {
                System.out.println(e);
            }
            openSession.commit();
        } finally {
            openSession.close();
        }
        
    }

}

补充:进行模糊查询时:

 1. LIKE'Mi%' 将搜索以字母 Mi开头的所有字符串(如 Michael)。

 2. LIKE'%er' 将搜索以字母 er 结尾的所有字符串(如 Worker、Reader)。

 3. LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 When、Green)。

在数据库中的数据为:

执行test04方法,得到:

至此结合List进行select操作的流程就基本完成了。 需要注意的若返回值是List集合,在mapper.xml文件中返回值的类型是集合里面的类的类型。

posted @ 2020-01-19 21:51  西西嘛呦  阅读(3287)  评论(4编辑  收藏  举报