什麼是動態sql:
mybatis核心 對sql語句進行靈活操作,通過表示式進行判斷,對sql進行靈活拼接、組裝。
需求
public
class userpo
if>
test="userpo.id!=null">
and id=#
if>
if>
where>
select>
id="findusercount"
parametertype="cn.domarvel.vo.userqueryvo"
resulttype="_int">
select count(id) from user
test="userpo!=null">
test="userpo.username!=null and userpo.username!=''">
and username like #
if>
test="userpo.id!=null">
and id=#
if>
if>
where>
select>
public
inte***ce
public listfinduserbynamesandid(userqueryvo userqueryvo) throws exception;
public
intfindusercount(userqueryvo userqueryvo) throws exception;
}
測試**public
class
userdaotest catch (ioexception e)
}@test
public
void
finduserbynamesandid() throws exception
}@test
public
void
findusercount() throws exception
}
需求:
定義sql片段
id="query_user_username_id">
test="userpo!=null">
test="userpo.username!=null and userpo.username!=''">
and username like #
if>
test="userpo.id!=null">
and id=#
if>
if>
sql>
引用sql片段
id="finduserbynamesandid"
parametertype="cn.domarvel.vo.userqueryvo"
resulttype="cn.domarvel.po.userpo">
select * from user
refid="query_user_username_id">
include>
where>
select>
向sql傳遞陣列或list,mybatis使用foreach解析
需求:
在使用者查詢列表中增加多個id輸入查詢。
sql語句如下:
兩種方式:
select * from
user
where username like
'%小明%'
and (id=1
or id=2)
select * from
user
where username like
'%小明%'
and id in(1,2)
在輸入引數型別中新增list
ids傳入多個idpublic
class userqueryvo
if>
test="ids!=null">
collection="ids"
item="item_id"
open="and ("
close=")"
separator="or">
id=#
foreach>
if>
if>
sql>
測試**@test
public
void finduserbynamesandid() throws exception
}
另外乙個sql的實現:
collection="ids"
item="item_id"
open="and id in("
close=")"
separator=",">
#foreach>
mybatis 動態sql(查詢學習)
mybatis 這個框架 與書寫 sql 語句 有很大的關係,所以 在 沒有 sql 很好的 書寫能力下,會遇到好多問題,本人就是例子,先將學習 查詢操作中遇到的問題進行總結 一,標籤的使用,繫結上下文 多用與 sql 語句中 sql 語句like 模糊查詢使用 使用案列 select from s...
mybatis 動態Sql的模糊查詢
1 where teacher.tname like concat concat 2 distinct的使用 下面先來看看例子 table id name 1 a2 b 3 c4 c 5 b比如我想用一條語句查詢得到name不重複的所有資料,那就必須使用distinct去掉多餘的重覆記錄。selec...
Mybatis 模糊查詢 動態sql 插入回填
方式一 用 selectuser parametertype com.gec.bean.user resulttype com.gec.bean.user select from t user where address like select 方式二 用 value 然後傳入引數時加入 selec...