鍍金池/ 問(wèn)答/Java  數(shù)據(jù)庫(kù)/ Mybatis的寫(xiě)法

Mybatis的寫(xiě)法

第一種:在java里面寫(xiě)。
@Select("select bureau_code from drt_opr_area")
List<String> getAllAreas();
第二種:在xml里面寫(xiě)。
<select id="selectList" resultMap="BaseResultMap" parameterType="com.csg.intshop.entity.DrtShopConfig">

    select 
    <include refid="BaseColumnList" />
    from drt_shop_config
    where 1=1
    <include refid="BaseCustomQueryCondition" />
  </select>

想問(wèn)問(wèn):在什么情況下寫(xiě)java代碼好,在什么情況下選中寫(xiě)xml好?如果是全表查詢,這兩種寫(xiě)法在性能有沒(méi)有區(qū)別?
比如:當(dāng)表字段比較多的時(shí)候,全表查詢寫(xiě)xml看起來(lái)比較簡(jiǎn)潔,可讀性強(qiáng)。### 問(wèn)題描述

問(wèn)題出現(xiàn)的環(huán)境背景及自己嘗試過(guò)哪些方法

相關(guān)代碼

// 請(qǐng)把代碼文本粘貼到下方(請(qǐng)勿用圖片代替代碼)

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

回答
編輯回答
逗婦乳

你好,一般來(lái)說(shuō)正常的項(xiàng)目都是使用xml,維護(hù)起來(lái)方便,對(duì)于性能的話,應(yīng)該使用xml的形式或比注解sql后,因?yàn)楣俜揭彩峭扑]使用xml,且注解方式拼接動(dòng)態(tài) sql 功能有限,對(duì)于項(xiàng)目而言,sql與java(項(xiàng)目主編程語(yǔ)言)應(yīng)該區(qū)分開(kāi)來(lái),不要混合在一起,且拼接sql易爆炸·····,xml是我比較支持與推薦的,對(duì)于后期維護(hù)還有升級(jí)版本而言,不過(guò)簡(jiǎn)單輕松的項(xiàng)目也可以用sql來(lái)完成。

2018年9月20日 21:22
編輯回答
咕嚕嚕

您好,1、增加對(duì)象返回自增主鍵 在一個(gè)Mapper接口中,出現(xiàn)多個(gè)select查詢(>=3個(gè)),且每個(gè)查詢都需要寫(xiě)相同的返回@Results內(nèi)容(這一部分內(nèi)容通常很多),這樣的話,為了使Mapper接口比較整潔,重復(fù)代碼比較少,我們會(huì)將這些select方法的具體實(shí)現(xiàn)寫(xiě)在xml文件中,因?yàn)樵趚ml文件的頂部我們就會(huì)配置與注解
2、就是通過(guò)注解動(dòng)態(tài)拼接sql是不如xml來(lái)的方便

2018年8月18日 16:49
編輯回答
氕氘氚

還是分開(kāi)好一點(diǎn),xml比較好。
除非是Spring data jpa rest那種開(kāi)發(fā)·

2018年6月16日 07:19