zoukankan      html  css  js  c++  java
  • 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文件中返回值的类型是集合里面的类的类型。

  • 相关阅读:
    TensorboardX的使用【有手就⭐系列】
    Python学习记录
    es 之 自定义 mapping(五)
    es 索引和文档 API (四)
    布尔查询(三)
    term 和 match 查询(二)
    使用 Python 批量将数据插入到 ES中
    【flask + vue 前后端分离博客】设计 User 用户(三)
    【flask + vue 前后端分离博客】使用 axios 访问接口(二)
    【flask + vue 前后端分离博客】创建第一个 Flask RESTFul(一)
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12215720.html
Copyright © 2011-2022 走看看