MyBatis的動態SQL語句實現

2022-09-28 01:24:11 字數 963 閱讀 2808

1. 動態sql之標籤

我們根據實體類的不同取值,使用不同的sql語句來進行查詢。比如在id如果不為空時可以根據id查詢,如果username不為空時還要加入使用者名稱作為條件,這種情況在我們的多條件組合查詢中經常會碰到。

<?xml version="1.0" encoding="utf-8"?>

ggmd">ebuhhojjm-mapper.dtd">

select * from user where 1=1

程式設計客棧 and username != '' ">www.cppcns.com

and username like #

and address like #

注意:標籤的test屬性中寫程式設計客棧的是物件的屬性名,如果是包裝類的物件要使用ognl表示式的寫法。另外要注意where 1=1的作用。

2. 動態sql之標籤

為了簡化上面where 1=1的條件拼裝,我們可以採用標籤來簡化開發。

<?xml version="1.0" encoding="utf-8"?>

select * from user

and username like #

and address like #

3. 動態sql之標籤

<?xml version="1.0" encoding="utf-8"?>

select * from user

0">

#

4. mybatis中的sql片段

mybatis的sql中可將重複的sql提取出來,使用時用include引用即可,最終達到sql重用的目的。

<?xml version="1.0" encoding="utf-8"?>

select * from user

where id = #

本文標題: mybatis的動態sql語句實現

本文位址:

mybatis 動態SQL語句

一 concat字串拼接 1.sql中字串拼接 select from tablename where name like concat concat 2.使用 代替 select from tablename where name like 解析過來的引數值不帶單引號,解析傳過來引數帶單引號。二 ...

Mybatis動態sql語句

finduserbycondition resultmap usermap select from user test username null and username if test user null and if where select 元素只會在子元素有返回內容的時候才會插入where...

MyBatis動態SQL語句

關鍵字 ifwhere trim foreach set if 如果傳入的p1 不為空,那麼才會sql才拼接id where mybatis的where標籤是對sql語句做了處理,當它遇到and或者or這些,where自己就給處理了。select from test t and username l...