MyBatis返回List集合

一、MyBatis查询返回List

在MyBatis中,我们经常需要查询出一些数据集合。而数据集合最常用的形式就是List。通过MyBatis查询操作可以直接返回一个List,或者使用resultType指定List中元素的类型。

以下是使用resultType指定List中元素类型的示例:

//Mapper.xml
<select id="getUserList" resultType="com.example.User">
  SELECT id, name, age FROM user
</select>
//Java代码
List<User> userList = sqlSession.selectList("getUserList");

接下来是直接返回List的示例:

//Mapper.xml
<select id="getNameList" resultType="java.lang.String">
  SELECT name FROM user
</select>
//Java代码
List<String> nameList = sqlSession.selectList("getNameList");

二、MyBatis返回List

有时候需要返回一个List,而这个List中的元素是由Map表示的。这种返回方法非常的灵活,可以返回任意列的任意组合,它的返回结果可以用Map调用的方法来遍历里面的内容。

以下是使用Map作为List元素类型的示例:

//Mapper.xml
<select id="getUserListMap" resultType="java.util.Map">
  SELECT id, name FROM user
</select>
//Java代码
List<Map> userListMap = sqlSession.selectList("getUserListMap");

for(Map map : userListMap){
    System.out.println("id: " + map.get("id") + " name: " + map.get("name"));
}

三、MyBatis返回List类型

有时候我们想返回一个List,但是这个List不一定是我们自定义的类型,而可能是List里面包含数组或其他类型的元素。这种情况下,我们可以使用Java自带的List类型来方便地接收。

以下是返回List类型的示例:

//Mapper.xml
<select id="getBoardList" resultMap="boardMap">
    SELECT * FROM board
</select>
//Java代码
List list = sqlSession.selectList("getBoardList");

四、MyBatis返回List结果集

有时候我们需要将查询结果包装为一个Map类型的List返回,这种情况下我们可以使用resultMap来处理。

以下是返回Map类型的List的示例:

//Mapper.xml
<resultMap id="boardMap" type="com.example.Board">
    <id property="boardId" column="board_id"/>
    <result property="boardName" column="board_name"/>
    <result property="boardDesc" column="board_desc"/>
</resultMap>

<select id="getBoardListMap" resultMap="boardMap">
    SELECT * FROM board
</select>
//Java代码
List<Map> boardListMap = sqlSession.selectList("getBoardListMap");

for(Map map : boardListMap){
    System.out.println("board_id: " + map.get("boardId") + " board_name: " + map.get("boardName") + " board_desc: " + map.get("boardDesc"));
}

五、MyBatis返回List套List

有时候我们需要返回一个List集合,并且这个List集合中的元素也是List类型的,我们可以称之为List套List。这种情况下我们可以使用MyBatis的resultType为List,然后在resultMap中指定多个result标签对应多个JavaBean。

以下是返回List套List的示例:

//Mapper.xml
<resultMap id="postMap" type="com.example.Post">
    <id property="postId" column="post_id"/>
    <result property="postTitle" column="post_title"/>
    <result property="postContent" column="post_content"/>
</resultMap>

<resultMap id="commentMap" type="com.example.Comment">
    <id property="commentId" column="comment_id"/>
    <result property="commentContent" column="comment_content"/>
</resultMap>

<select id="getPostCommentList" resultMap="postMap">
    SELECT * FROM post
</select>
//Java代码
List<Post> postList = sqlSession.selectList("getPostCommentList");

for(Post post : postList){
    List<Comment> commentList = post.getCommentList();

    for(Comment comment : commentList){
        System.out.println("post_id: " + post.getPostId() + " post_title: " + post.getPostTitle() + " comment_id: " + comment.getCommentId() + " comment_content: " + comment.getCommentContent());
    }
}

六、MyBatis返回List

有时候我们需要返回一个String类型的List,可以使用resultType为String。

以下是返回String类型List的示例:

//Mapper.xml
<select id="getCourseList" resultType="java.lang.String">
    SELECT course_name FROM course
</select>
//Java代码
List<String> courseList = sqlSession.selectList("getCourseList");

七、MyBatis返回List对象

有时候我们需要将查询结果包装为一个自定义的类型,而且这个类型是一个Collection子类,比如List。

以下是返回自定义类型的List的示例:

//Mapper.xml
<resultMap id="userMap" type="com.example.User">
    <id property="id" column="id"/>
    <result property="name" column="name"/>
    <result property="age" column="age"/>
</resultMap>

<select id="getUserList2" resultMap="userMap">
    SELECT * FROM user
</select>
//Java代码
List<User> userList = sqlSession.selectList("getUserList2");

八、MyBatis返回List

集合

有时候我们需要将查询结果包装为一个Map的List集合。

以下是返回Map类型的List的示例:

//Mapper.xml
<select id="getUserList3" resultType="java.util.Map">
    SELECT * FROM user
</select>
//Java代码
List<Map> userListMap = sqlSession.selectList("getUserList3");

原创文章,作者:TZTD,如若转载,请注明出处:https://www.506064.com/n/141404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
TZTDTZTD
上一篇 2024-10-04 01:58
下一篇 2024-10-04 02:42

相关推荐

  • Tensor to List的使用

    Tensor to List是TensorFlow框架提供的一个非常有用的函数,在很多的深度学习模型中都会用到。它的主要功能是将TensorFlow中的张量(Tensor)转换为P…

    编程 2025-04-29
  • 理解Mybatis中的SQL Limit用法

    Mybatis是一种非常流行的ORM框架,提供了SQL映射配置文件,可以使用类似于传统SQL语言的方式编写SQL语句。其中,SQL的Limit语法是一个非常重要的知识点,能够实现分…

    编程 2025-04-29
  • 如何使用Python将输出值赋值给List

    对标题进行精确、简明的解答:本文将从多个方面详细介绍Python如何将输出的值赋值给List。我们将分步骤进行探讨,以便读者更好地理解。 一、变量类型 在介绍如何将输出的值赋值给L…

    编程 2025-04-28
  • Python List查找用法介绍

    在Python中,list是最常用的数据结构之一。在很多场景中,我们需要对list进行查找、筛选等操作。本文将从多个方面对Python List的查找方法进行详细的阐述,包括基本查…

    编程 2025-04-28
  • Python DataFrame转List用法介绍

    Python中常用的数据结构之一为DataFrame,但有时需要针对特定需求将DataFrame转为List。本文从多个方面针对Python DataFrame转List详细介绍。…

    编程 2025-04-27
  • Python中list和tuple的用法及区别

    Python中list和tuple都是常用的数据结构,在开发中用途广泛。本文将从使用方法、特点、存储方式、可变性以及适用场景等多个方面对这两种数据结构做详细的阐述。 一、list和…

    编程 2025-04-27
  • 使用Flutter开发ToDo List App

    本文将会介绍如何使用Flutter开发一个实用的ToDo List App。ToDo List,即待办事项清单,是一种记录人们未处理工作和待办事项的方式。随着日常生活的快节奏,如此…

    编程 2025-04-27
  • list长度

    一、长度对内存和性能的影响 在Python中,list是一种基本的数据类型,它常常被用于存储数据。然而,当list的长度不断增加时,它对于内存和性能的影响也逐渐加重。 在处理大量数…

    编程 2025-04-25
  • List of Devices Attached是什么意思

    一、介绍 在Android应用程序开发中,List of Devices Attached这个术语是非常常见的。它的简称是LoDA,大多数情况下,我们可以看到这个缩写在Androi…

    编程 2025-04-25
  • Mybatis-plus条件构造器

    一、可重用性 Mybatis-plus作为Mybatis的扩展工具,提供了丰富的功能让开发更加高效便捷。其中之一的条件构造器可以帮助我们构建各种查询条件,而且支持链式调用,非常适合…

    编程 2025-04-25

发表回复

登录后才能评论