(十二)動態SQL之if trim

2021-09-23 20:25:22 字數 1363 閱讀 4293

q:mybatis動態sql有什麼用?執行原理?有哪些動態sql?

mybatis動態sql可以在xml對映檔案內,以標籤的形式編寫動態sql,執行原理是根據表示式的值完成邏輯判斷並動態拼接sql的功能

mybatis提供了9種動態sql標籤:trim、where、set、foreach、if、choose、when、otherwise

一、if

select *

from tb_teacher

where

id=#

and name=#

二、select語句拼接遇到的關鍵字冗餘問題 用trim標籤解決

(trim標籤用途用於拼接,不限於select語句)

就要用trim標籤

prefix="" 整體加個字首

prefixoverrides="" 去掉整個字串前面多餘的字元

suffix=""

suffixoverrides=""

①若不用trim拼接,則會遇到的問題:select *           from tb_teacher           where id=?  and  

(只輸入id,並不輸入其他內容)

select * 

from tb_teacher

id=# and

name=# and

email=#

②若不用trim處理,遇到的情況: select *           from tb_teacher           where  and  name=?

(只輸入name,並不輸入id)

select * 

from tb_teacher

id=#

and name=#

and email=#

三、update更新部分屬性

update tb_teacher set 

name=#,

email=#

where id=#

從這我們可以看出,set、where關鍵字都可以用trim進行拼接,但是拼接後個人感覺不太直觀 

update tb_teacher 

name=#,

email=# ,

id=#

資料結構 十二 動態規劃

動態規劃一般用於全域性問題,在構造遞迴的時候,一般採用自頂向下分解的方法,先把全域性問題分解成更小的子問題求解。下面舉兩個例子 例子1 有一座高度是10 階的樓梯,從下往上走,每跨一步可以是一級或兩級台階。要求用程式求出一共一共有多少種走法。問題分析建模 首先總共有10 步,假設只剩最後一步就到達第...

初識 Mybatis(二) 動態 SQL

主要內容 if 標籤 where 標籤 trim 標籤 1.if 標籤 使用 if 標籤來判斷引數是否為空,來達到 sql 拼接的效果 selectproduct resulttype bean.product select from product where id 1 test name nul...

iOS入門(十二)動態記憶體分配

棧 由編譯器自動分配和釋放,在函式體中定義的變數通常在棧上,先進後出,從高向低分配。堆 一般由程式設計師分配和釋放 從低向高分配。一些分配記憶體的函式。全域性區 靜態區 初始化的全域性變數和靜態變數在一塊區域,未初始化的全域性變數和靜態變數在相鄰的另外一塊區域。常量區 程式 區 函式被呼叫時會從 區...