相信每個人都不喜歡把一句代碼寫了一遍又一遍
然而在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>
這就是常用的兩種方法啦,希望能對各位開發人員有用!