mybatis的核心是對sql語句進行靈活的操作,通過表示式進行判斷,對sql進行靈活拼接、組裝。
動態sql包括:if、choose(when,otherwise)、where、set、trim、foreach、sql片段
if標籤比較簡單,這裡記錄一下文件內容的例子,通過看例子,就清楚的知道if是如何使用的了。
select * from blog
where state = 『active』
and title like #
select * from blog where state = 『active』
and title like #
and author_name like #
choose標籤跟if差不多,多了幾層判斷而已,這裡也使用文件的例子。
select * from blog where state = 『active』
and title like #
and author_name like #
and featured = 1
where 標籤可以自動配置where關鍵字,並自動去掉條件中的第乙個and
示例:配置檔案內容:
select * from tab_user
and username like '%$%'
and city like '%$%'
介面方法:
//查詢使用者列表
public listselectwhere(user user) throws exception;
執行測試後,在控制台看到如下的sql語句:
說明where標籤確實是把動態sql中的第乙個and去掉了
在update操作的時候,使用set標籤能自動配置set關鍵字,並把條件後面多餘的逗號去掉
update tab_user
username=#,
`password`=#,
where id=#
trim標籤更加靈活的處理字串之間的替換,可以實現where,set標籤的功能
1.使用trim實現where的功能:
select * from tab_user
and username like '%$%'
and city like '%$%'
select * from tab_user
and username like '%$%'
and city like '%$%'
2.使用trim實現set的功能
update tab_user
username=#,
`password`=#,
where id=#
update tab_user
username=#,
`password`=#,
where id=#
select * from tab_user where
id=#
select * from tab_user where id in
#
這裡也記錄一下文件的介紹,實際中需要用的時候再檢視文件進行開發。
示例1:
$.id,$.username,$.password
select
,from some_table t1
cross join some_table t2
示例2:
$table
from
select
field1, field2, field3
mybatis學習之動態sql
1 select查詢 簡單的select類似如下 select id findbyid resultmap studentresult parametertype integer select from t student where id select 1 if 常用於各種查詢的條件判斷部分 se...
MyBatis學習總結 七 Mybatis快取
正如大多數持久層框架一樣,mybatis 同樣提供了一級快取和二級快取的支援 一級快取 基於perpetualcache 的 hashmap本地快取,其儲存作用域為session,當session flush 或 close之後,該session中的所有 cache 就將清空。2.二級快取,如 eh...
MyBatis學習總結 七 Mybatis快取
正如大多數持久層框架一樣,mybatis 同樣提供了一級快取和二級快取的支援 一級快取 基於perpetualcache 的 hashmap本地快取,其儲存作用域為session,當session flush 或 close之後,該session中的所有 cache 就將清空。2.二級快取,如 eh...