MyBatis動態SQL常用標籤 if標籤

2021-10-20 21:33:02 字數 2279 閱讀 4017

在用mybatis之前,我們如果進行條件查詢的話(條件查詢需要判斷從前端獲取的值是否存在來進行操作),是利用**拼接來進行實現的

第一步:在介面中寫出條件查詢的方法

/* 

根據姓名和密碼進行查詢

@param是mybatis所提供的(org.apache.ibatis.annotations.param),

作為dao層的註解,作用是用於傳遞引數,從而可以與sql中的的欄位名相對應

*/user getuserbynamepwd

(@param

("name"

) string name,

@param

("pwd"

) string pwd)

;

"getuserbynamepwd"

resultmap

="usermap"

>

select * from user

>

test

="name != null and name != ''"

>

name = #

if>

test

="pwd != null and pwd != ''"

>

and`在這裡插入**片` pwd = #

if>

where

>

select

>

在這裡我們就可以看出if標籤的作用就是判斷,他會判斷test裡的為true或者為false,如果為true則進行,如果為false則不進行操作

@test

public

void

test01()

sqlsession.

close()

;}

結果為:

setting autocommit to false on jdbc connection [com.mysql.jdbc.jdbc4connection@530612ba]

==> preparing: select * from user

==> parameters:

<== columns: id, name, pwd

<== row: 1, 狂神, 123456

<== row: 2, 張三, 123456

<== row: 3, 李四, 123890

<== row: 4, 嘿嘿, 123123

<== row: 5, 德瑪西亞, 666666

<== row: 6, 李莫寒, 121212

<== total: 6

user

user

user

user

user

user

傳乙個值:

@test

public

void

test01()

sqlsession.

close()

;}

結果為:

preparing: select * from user where name = ? 

==> parameters: 狂神(string)

<== columns: id, name, pwd

<== row: 1, 狂神, 123456

<== total: 1

user

傳兩個值的話:

@test

public

void

test01()

sqlsession.

close()

;}

結果為:

==>  preparing: select * from user where name = ? and pwd = ? 

==> parameters: 狂神(string), 123456(string)

<== columns: id, name, pwd

<== row: 1, 狂神, 123456

<== total: 1

user

Mybatis動態插入資料(使用trim標籤)

有時我們控制同一張表,但傳入的引數不固定,操作表的字段不固定,就要用到mybatis動態插入。xml如下 insertmessage parametertype com.sf.ccsp.member.client.request.messagereq insert cx customer messa...

Mybatis動態插入資料(使用trim標籤)

有時我們控制同一張表,但傳入的引數不固定,操作表的字段不固定,就要用到mybatis動態插入。xml如下 insertmessage parametertype com.sf.ccsp.member.client.request.messagereq insert cx customer messa...

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...