关于Mybatis将查询结果中添加常量列并返回

Posted helloworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Mybatis将查询结果中添加常量列并返回相关的知识,希望对你有一定的参考价值。

引言

在使用mybatis的时候,查询一个集合返回给前台页面,在有的时候,我们会添加一个常量字段到对象或者集合中,来标识这个对象属于的类型等等情况,当前台进行再次请求的时候携带此变量进行请求.

但是:如果在数据库中并没有这个字段的时候,查询集合我们就需要前台进行这个字段的编写,写死!我们可否直接将其对应的字段返回呢?然后前台直接拿到这个字段进行请求即可?

正文

————————————————————————————————————————————————————

在进行mybatis查询的时候,我们都知道有ResultMap的结果集,所以我们可以在ResultMap中进行常量列的添加

<resultMap id="otherMap" type="java.util.HashMap">
    <id column="user_id" property="userId" jdbcType="INTEGER" />
    <result column="phone" property="phone" jdbcType="INTEGER" />
    <result column="password" property="password" jdbcType="VARCHAR" />
    <result column="head_image" property="headImage" jdbcType="VARCHAR" />
    <result column="nick_name" property="nickName" jdbcType="VARCHAR" />
    <result column="email" property="email" jdbcType="VARCHAR" />
    <result column="typeColume" property="typeColume"/>  <!-- 添加的常量列 -- >
  </resultMap>

既然我们已经添加了这个常量列,那么我们的列肯定是从SQL语句中查询出来的,否则无法找到column对应的列,所以我们在写SQL的时候,必须进行列的添加。

select
   user.* ,
   1 as typeColume
from user
where user.id = #{id}

其中,我们需要的常量的值 1 作为常量列typeColumn的值进行封装到ResultMap中,然后返回到前台页面了!

结果集如下:

{
    "password": "123456",
    "phone": 123456,
    "typeColume": 1,
    "id": 1
 }

那么问题已经解决了!

————————————————————————————————————————————————————

写在最后

欢迎转载,请注明来源

以上是关于关于Mybatis将查询结果中添加常量列并返回的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis的一级缓存和二级缓存简介笔记

mybatis中查询结果为空时不同返回类型对应返回值

mybatis update返回值

使用mybatis写一个验证方法时,mysql数据库查询结果返回null,mybatis无法将其封装为boolean类型,怎么办?

PL/pgSQL 函数 - 遍历特定列并在循环中执行第二个查询

mybatis的入门实例