前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MyBatis查询功能(三)

MyBatis查询功能(三)

原创
作者头像
堕落飞鸟
发布2023-05-15 13:30:02
2750
发布2023-05-15 13:30:02
举报
文章被收录于专栏:飞鸟的专栏

四、查询结果映射

在MyBatis中,查询结果通常是将数据库查询结果映射到Java对象中,可以使用resultMap元素来定义查询结果映射规则。例如:

代码语言:javascript
复制
<resultMap id="userMap" type="User">
    <id property="id" column="id"/>
    <result property="name" column="name"/>
    <result property="gender" column="gender"/>
</resultMap>

<select id="getUserById" parameterType="int" resultMap="userMap">
    select * from user where id = #{id}
</select>

在上面的代码中,使用resultMap元素定义了查询结果映射规则,id元素用于定义主键映射规则,result元素用于定义普通属性映射规则。在getUserById查询语句中使用resultMap属性引用了userMap结果映射规则。

五、查询结果处理

在MyBatis中,查询结果处理方式有多种,其中常见的方式如下:

返回Java对象

返回Java对象是指将查询结果封装为Java对象返回,例如:

代码语言:javascript
复制
User user = sqlSession.selectOne("getUserById", 1);

在上面的代码中,将查询结果封装为User对象返回。

返回List

返回List是指将查询结果封装为List对象返回,例如:

代码语言:javascript
复制
List<User> userList = sqlSession.selectList("getUserListByName", "Tom");

在上面的代码中,将查询结果封装为List<User>对象返回。

返回Map

返回Map是指将查询结果封装为Map对象返回,例如:

代码语言:javascript
复制
User user = sqlSession.selectOne("getUserById", 1);
System.out.println(user.getName());

List<User> userList = sqlSession.selectList("getUserListByName", "Tom");
for (User u : userList) {
    System.out.println(u.getName());
}

Map<Integer, User> userMap = sqlSession.selectMap("getUserMap", "id");
for (Map.Entry<Integer, User> entry : userMap.entrySet()) {
    System.out.println(entry.getKey() + ": " + entry.getValue().getName());
}

在上面的代码中,首先使用selectOne方法将id为1的用户查询出来,并打印出用户的名字;然后使用selectList方法将名字为Tom的用户列表查询出来,并逐个打印出用户的名字;最后使用selectMap方法将所有用户按照id为key进行封装,并打印出所有用户的名字。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 四、查询结果映射
  • 五、查询结果处理
    • 返回Java对象
      • 返回List
        • 返回Map
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档