MyBatis動態SQL實現配置過程解析

2022-09-26 00:57:09 字數 1710 閱讀 6916

動態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進行靈活拼接 組裝。現有需求如下 需要查詢使用者,輸入的是使用者類,如果使用者的性別類不為空,則將性別作為查詢條件之一,如果使用者的姓名不為空,則將使用者姓名作為查詢條件之一。如果使用者兩個屬性都為空,則查詢所有使用者。將上...