關於Mybatis將查詢結果中新增常量列並返回
阿新 • • 發佈:2019-01-04
引言
在使用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
}
那麼問題已經解決了!
————————————————————————————————————————————————————
寫在最後
歡迎轉載,請註明來源