關於mapper里的sql簡寫之include和動態sql


相信每個人都不喜歡把一句代碼寫了一遍又一遍

然而在java開發里,有些代碼確實需要寫個好幾遍

比如mapper里的sql,查詢是select * from 表名;

然后很多都會有個where條件,根據什么什么查詢什么的

這個時候就會多次出現selece * from 表名; 這個字段

那么怎樣才能簡化呢?

下面說兩種方法

1.include,這個在很多開源框架里還是挺常見的

我們可以先寫一句查詢

<sql id="這個是名字">
select * from 表名
</sql>

是不是在想條件呢?

不要急,往下看,接下來就寫普通的調用

<select id="名字" resultMap="參數名字">
--然后加一句這個
<include refid="這個和上一句查詢表的id名字一樣"/>
--然后再接where條件
where id = #{id}
</select>

然后在controller層調用帶條件的方法就行,剩下的交給mapper自己去拼接

這樣在多個查詢的情況下就可以只寫where條件就行啦。

2.第二種方法就是判斷了

<select id="方法名" resultMap="參數名字">
--這里接查詢語句
select * from 表民
--然后是where條件
    <where>  
<if test="id!= null and id != ''">
and id= #{id}
</if>
<if test="name!= null and name!='' ">
and name= #{name}
</if>
</where>
--在次接排序或格式條件常見
</select>

這就是常用的兩種方法啦,希望能對各位開發人員有用!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM