1. 程式人生 > >關於Mybatis將查詢結果中新增常量列並返回

關於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
 }

那麼問題已經解決了!

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

寫在最後

歡迎轉載,請註明來源