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文件中返回值的类型是集合里面的类的类型。