一、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