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/zh-tw/n/141404.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TZTD的頭像TZTD
上一篇 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

發表回復

登錄後才能評論