关于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
 }

那么问题已经解决了!

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

写在最后

欢迎转载,请注明来源

猜你喜欢

转载自blog.csdn.net/cc185/article/details/80731299