91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mybatis 使用Map封裝查詢的結果

發布時間:2020-07-02 10:49:40 來源:網絡 閱讀:1970 作者:詩和_遠方 欄目:開發技術

有時我們厭倦了為每個查詢寫一個Entity類,這時Map開始發揮它的功效。

對于要返回“學號,班級,姓名”結果的查詢,可以這樣寫Mapper:

<select id="selectStudent">

    select s.code as sNo , s.name as sName, c.name as cName

    from xStudent s, xClass c

    where s.cID = c.ID

</select>


如下聲明我們的dao方法:

public List<Map<String, Object>> selectStudent(Map<String, Object> parameter) {

    return getSqlSession().selectList(getStatement("selectStudent"), parameter);

}

如果要將該查詢結果轉為JSON字符串返回,那么我們就可以直接將List<Map<String, Object>轉為JSON,邏輯層不需要任何代碼。

如果返回的結果集需要按select中的字段順序返回,那么將resultType="java.util.HashMap" 換為resultType="java.util.LinkedHashMap"

------------------------------華麗分割線-----------------------------

使用Map封裝查詢結果時注意數據的類型映射

對于如下的Mapper

<select id="selectStudent">

    select s.code as sNo , concat(s.firstName, s.lastName) as sName

    from xStudent s

</select>


Mybatis會傻傻的將sName的數據類型映射為byte[], 因為我們沒有提供entity,mybatis也不知道我們想要什么類型,而sName是計算出來的值,mybatis也沒有辦法從數據庫中獲取字段的值,所以它就將其封裝為byte[],解決辦法很簡單,加一個cast 函數

<select id="selectStudent">

select s.code as sNo , cast(concat(s.firstName, s.lastName) AS CHAR) as sName

from xStudent s

</select>

------------------------------------華麗分割線--------------------------------

之前講到了orcale的字符串與日期等類型的轉換,現在我們來看看MySQL是怎么轉換的。比起orcale,MySQL相比之下就簡單得多了,只需要一個Cast()函數就能搞定。其語法為:Cast(字段名 as 轉換的類型 ),其中類型可以為:

CHAR[(N)] 字符型 
DATE  日期型
DATETIME  日期和時間型
DECIMAL  float型
SIGNED  int
TIME  時間型

例如表table1

date

2015-11-03 15:31:26

select cast(date as signed) as date from  table1;

結果如下:

date

20151103153126


select cast(date as char) as date from  table1;

結果如下:

date

2015-11-03 15:31:26



select cast(date as datetime) as date from  table1;

結果如下:

date


2015-11-03 15:31:26


select cast(date as date) as date from  table1;

結果如下:

date


2015-11-03


select cast(date as time) as date from  table1;

結果如下:

date

15:31:26

這里date對應日期,time對應時間



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

肇庆市| 英德市| 株洲市| 壤塘县| 钟祥市| 赞皇县| 柘荣县| 吴忠市| 灌云县| 沂南县| 岗巴县| 峨眉山市| 金秀| 西宁市| 滨州市| 墨江| 金溪县| 广宁县| 娱乐| 定南县| 中西区| 南靖县| 舟曲县| 突泉县| 吉首市| 凤山市| 靖江市| 沾化县| 苍山县| 公安县| 德化县| 响水县| 泉州市| 二连浩特市| 黎川县| 黑龙江省| 高淳县| 安达市| 乐都县| 广南县| 徐闻县|