mybatyis強大的功能之一就是可以方便的使用動態sql,以前使用jdbc來運算元據庫的時候,能感受到那種在根據不同條件進行拼接sql語句帶來的不方便。在mybatis中利用關係標籤就能很方便的解決這一問題。
標籤:if、choose、where、set、trim、foreach
實體類用員工(emp)和部門(dept)
實體類中的屬性名:
emp:empno、ename、job、sal、deptno
dept:deptno、dname
』(1)if 標籤:以查詢為例子
select e.*,d.dname from emp e,dept d where d.deptno=e.deptno
and ename=#
0">
and sal=#
(2)choose...when...otherwise標籤:以查詢為例子
select e.*,d.dname from emp e,dept d where e.deptno=d.deptno
and ename=#
and sal=#
1=1
(3)where...if標籤
select * form emp
and ename=#
0">
and sal=#
(4)set...if 標籤:更新語句為例
update emp
ename=#
0">
sal=#
job=#
where empno=#
(5)trim(where\set)標籤(對where標籤和set標籤的補充,功能和where\set標籤一樣)
select * from emp
and ename=#
if>
0">
or sal=#
if>
trim>
select>
update emp
ename=#,
if>
0">
sal=#,
if>
job=#,
if>
hirbate=#,
if>
0">
deptno=#
if>
trim>
where empno=#
update>
(6)foreach標籤:批量操作
標籤中的屬性:collection:集合的型別,list或者array或者map
index:集合的索引
item:集合中元素的名稱
separator:迴圈體的分隔符,向迴圈體中新增的
open:開始內容
close:結束內容
insert into emp(ename,job,hiredate,sal,deptno) values
(#,#,#,#,#)
foreach>
insert>
delete from emp where empno in
#foreach>
delete>
update emp set job=#,sal=# where empno=#;
foreach>
update>
mybatis入門 動態sql
mybatis核心就是對sql語句進行靈活操作,通過表示式進行判斷,對sql進行靈活拼接 組裝。現有需求如下 需要查詢使用者,輸入的是使用者類,如果使用者的性別類不為空,則將性別作為查詢條件之一,如果使用者的姓名不為空,則將使用者姓名作為查詢條件之一。如果使用者兩個屬性都為空,則查詢所有使用者。將上...
mybatis 動態sql詳解
內容 轉到原網頁insert into t blog title,content,owner values select from t blog where id update t blog set title content owner where id select from t blog se...
MyBatis動態sql查詢
什麼是動態sql mybatis核心 對sql語句進行靈活操作,通過表示式進行判斷,對sql進行靈活拼接 組裝。需求public class userpo if test userpo.id null and id if if where select id findusercount parame...