• MyBatis_MyBatis之查询返回对象集合


    1.引入

    通过前面几节课程,我们了解了使用MyBatis实现基本的增删查改的操作,然后我们又说了一下载增删查改中的参数传递问题。我们之前的操作主要是针对一个对象进行的操作。那么当我们的返回值是一个集合的时候该如何进行处理呢?那么现在我们较为详细的了解一下查询操作。

    2.实现返回值是一个对象集合(List)的操作

    (1).在接口中定义编写查询的方法

    public List getEmpsByLastNameLike(String lastName);
    
    • 1

    (2).在该实体对象的对应的映射文件中进行查询的配置

    
    
    //resultType:如果返回的是一个集合,要写集合中元素的类型
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (3).测试查询

    EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
    List like = mapper.getEmpsByLastNameLike("%e%");
    for (Employee employee : like) {
    	System.out.println(employee);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    总结:使用select查询出一个对象集合然后返回需要注意:

    1.我们在实体对象的映射文件中设置配置的时候,如果返回的是一个集合,要写集合中元素的类型。

    2.在查询的时候,我们直接使用一个集合对象List来接收查询的结果即可,MyBatis会帮助我们加载到集合中。

    3.实现返回值是一个对象集合(Map)的操作

    (1).单条记录封装成为一个Map对象

    ①.在接口中定义编写查询的方法

    public Map getEmpByIdReturnMap(Integer id);
    
    • 1

    ②.在该实体对象的对应的映射文件中进行查询的配置

    
    
    //注意这一个时候的resultType
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ③.测试查询

    EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
    Map map = mapper.getEmpByIdReturnMap(1);
    System.out.println(map);
    
    • 1
    • 2
    • 3

    总结:

    1.注意在实体对象的对应的映射文件中进行查询的配置的时候resultType的类型。

    (2).单条记录封装成为一个Map对象

    ①.在接口中定义编写查询的方法

    @MapKey("lastName")
    public Map getEmpByLastNameLikeReturnMap(String lastName);
    
    //注意:@MapKey:告诉mybatis封装这个map的时候使用哪个属性作为map的key
    
    • 1
    • 2
    • 3
    • 4

    ②.在该实体对象的对应的映射文件中进行查询的配置

    
    
    //注意:这里的resultType是实体对象
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ③.测试查询

    EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);
    Map map = mapper.getEmpByLastNameLikeReturnMap("%r%");
    System.out.println(map);
    
    • 1
    • 2
    • 3

    总结:

    1.我们在实体对象的映射文件中设置配置的时候,如果返回的是一个集合,要写集合中元素的类型。

    2.我们在接收的时候需要在方法上面声明Map的key类型,使用的是@MapKey(" + key的名称+ ")。

  • 相关阅读:
    The system is running in low-graphics mode解决方法
    CAN和CAN FD
    用 Wireshark 在 Firefox 或 Google Chrome 上使用 SSLKEYLOGFILE 环境变量解密 SSL 流量
    很强!4.7k star,推荐一款Python工具,可实现自动化操作!!
    冥想第六百二十三天
    决策树分类和预测算法的原理及实现
    大数据,对于生活的改变
    springCloud在pom中快速修改运行环境,让配置不再繁琐
    高通导航器软件开发包使用指南(12)
    【JUC并发编程】Synchronized深度分析
  • 原文地址:https://blog.csdn.net/m0_67401499/article/details/126463618