動態sql
什麼是動態sql:
動態sql就是根據不同的條件生成不同的sql語句
1、搭建環境
建表create table `bolg`(
`id` varchar(50) not null comment '部落格id',
`title` varchar(100) not null comment '部落格標題',
`author` varchar(30) not null comment '部落格作者',
`creat_time` datetime not null comment '建立時間',
`views` int(30) not null comment '瀏覽量'
)engine=innodb default charset=utf8
建立乙個基礎工程
導包編寫配置檔案
編寫實體類
@data
public class blog
編寫實體類對應的mapper介面和mapper.xm
2、if
select * from mybatis.bolg where 1=1
and title程式設計客棧 = #
and author = #
@test
public void queryblogif()
sqlsession.close();
}3、choose(when,otherwise)
程式設計客棧="queryblogchoose" parametertype="map" resulttype="com.rui.pojo.blog">
select * from mybatis.bolg
title=#
and author = #
and views = #
4、trim(where,set)
select * from mybatis.bolg
title = #
and author = #
uzxxgz;
update mybatis.bolg
title = #,
author = #,
where id = #
所謂的動態sql,本質還是sql語句,只是我們可以在sql層面,去執行一些邏輯**
5、foreach
select * from user where 1=1 and
#(id=1 or id=2 or id=3)
select * from mybatis.bolg
id = #
動態sql就是在拼接sql語句,我們只要保證sql的正確性,按照sql的格式,去排列組合就可以了
建議:先在mysql中寫出完整的sql,再對應的去修改成為我們的動態sql
sql片段
有的時候,我們可能會將一些公共的部分抽取處理,方便復用
使用sql標籤抽取公共的部分
title = #
and author = #
在需要使用的地方使用include標籤引用即可
select * from mybatis.bolg
注意事項:
最好基於單錶來定義sql片段
不要存在where或者set標籤,片段裡盡量只有if就好了
本文標題: mybatis動態sql實現配置過程解析
本文位址: /ruanjian/j**a/303379.html
MyBatis的動態SQL語句實現
1.動態sql之標籤 我們根據實體類的不同取值,使用不同的sql語句來進行查詢。比如在id如果不為空時可以根據id查詢,如果username不為空時還要加入使用者名稱作為條件,這種情況在我們的多條件組合查詢中經常會碰到。ggmd ebuhhojjm mapper.dtd select from us...
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
mybatis核心就是對sql語句進行靈活操作,通過表示式進行判斷,對sql進行靈活拼接 組裝。現有需求如下 需要查詢使用者,輸入的是使用者類,如果使用者的性別類不為空,則將性別作為查詢條件之一,如果使用者的姓名不為空,則將使用者姓名作為查詢條件之一。如果使用者兩個屬性都為空,則查詢所有使用者。將上...