mybatis動態sql和分頁

2021-10-24 13:25:50 字數 2521 閱讀 8052

1.1 if

1.2 trim

1.3 foreach(遍歷集合,批量查詢、通常用於in關鍵字)

1.4 choose/set/where

2.1 引數中直接加入%%

2.2 使用katex parse error: expected 'eof', got '#' at position 8: 代替#̲(不建議使用該方式,…區別?

引數型別為字串,#會在前後加單引號[』],$則直接插入值

注:

1) mybatis中使用ognl表示式傳遞引數

2) 優先使用#

3) $方式存在sql注入風險

2.3 sql字串拼接concat

resultmap:適合使用返回值是自定義實體類的情況

resulttype:適合使用返回值的資料型別是非自定義的,即jdk的提供的型別

3.1 使用resultmap返回自定義型別集合

3.2 使用resulttype返回list

3.3 使用resulttype返回單個物件

3.4 使用resulttype返回list,適用於多表查詢返回結果集

3.5 使用resulttype返回map,適用於多表查詢返回單個結果集

為什麼要重寫mybatis的分頁?

mybatis的分頁功能很弱,它是基於記憶體的分頁(查出所有記錄再按偏移量offset和邊界limit取結果),在大資料量的情況下這樣的分頁基本上是沒有用的

struts***

定義乙個***類

invoke

sysout(「action方法被呼叫前執行的功能」)

method.invoke

sysout(「action方法被呼叫後執行的功能」)

struts-sy.xml

將***的類申明到interceptors

引用***

4.1 匯入分頁外掛程式

com.github.pagehelper<

/groupid>

pagehelper<

/artifactid>

5.1.2

<

/version>

<

/dependency>

4.2 將pagehelper外掛程式配置到mybatis中

<

!-- 配置分頁外掛程式pagehelper,

4.0.0以後的版本支援自動識別使用的資料庫 --

>

"com.github.pagehelper.pageinterceptor"

>

<

/plugin>

4.3 在你需要進行分頁的mybatis方法前呼叫pagehelper.startpage靜態方法即可,緊跟在這個方法後的第乙個mybatis查詢方法會被進行分頁

//設定分頁處理

if(null != pagebean && pagebean.

ispaginate()

)

4.4 獲取分頁資訊(二種方式)

4.4.1 使用外掛程式後,查詢實際返回的是page,而非list,page繼承了arraylist,同時還包含分頁相關的資訊

page

page =

(page

)list;

system.out.

println

("頁碼:"

+ page.

getpagenum()

);system.out.

println

("頁大小:"

+ page.

getpagesize()

);system.out.

println

("總記錄:"

+ page.

gettotal()

);

4.4.2 使用pageinfo

pageinfo pageinfo =

newpageinfo

(list)

;system.out.

println

("頁碼:"

+ pageinfo.

getpagenum()

);system.out.

println

("頁大小:"

+ pageinfo.

getpagesize()

);system.out.

println

("總記錄:"

+ pageinfo.

gettotal()

);

5.特殊字元處理

>

(>

)<

(<)&

(&) 空格(

)<

![cdata[

<=]]

>

Mybatis動態sql和分頁

1.mybatis動態sql 1.1 if 1.2 trim 1.3 foreach 1.4 其他 choose set where2.模糊查詢 3種方式 2.1 引數中直接加入 2.2 使用 代替 不建議使用該方式,有sql注入風險 關鍵 與 區別?引數型別為字串,會在前後加單引號 則直接插入值 ...

mybatis動態sql和分頁

1.mybatis動態sql 1.1 if 1.2 trim 1.3 foreach 1.4 其他 choose set where2.模糊查詢 3種方式 2.1 引數中直接加入 2.2 使用 代替 不建議使用該方式,有sql注入風險 關鍵 與 區別?引數型別為字串,會在前後加單引號 則直接插入值 ...

Mybatis動態sql和分頁

1.mybatis動態sql 1 if 2 trim 3 foreach 4 其他 5 choose set where2.模糊查詢 3種方式 2.1 引數中直接加入 2.2 使用 代替 不建議使用該方式,有sql注入風險 關鍵 與katex parse error expected eof got...