Mybatis 模糊查詢方式彙總 分析

2021-10-12 22:01:12 字數 2891 閱讀 3580

動態解析 -> 預編譯 -> 執行

"findbyname"

resulttype

="com.newzhong.pojo.user"

parametertype

="string"

>

test

="username != null and username != ''"

>

select * from user where username like #

if>

select

>

select

*from

user

where username like

"%username%"

;

"findbyname"

parametertype

="string"

resulttype

="com.newzhong.pojo.user"

>

test

="username != null and username != ''"

>

select * from user where username like '%$%'

if>

select

>

注意:1. 由於$是引數直接注入的,導致這種寫法,大括號裡面不能加上jdbctype,也有可能會引起sql的注入

注意: 2.$如果使用自定義引數名,需要在對映器介面方法的引數前加註解@param("")來與配置檔案進行對映,否則只能使用mybatis預設值value,即$

"findbyname"

parametertype

="string"

resulttype

="com.newzhong.pojo.user"

>

test

="username != null and username != ''"

>

select * from user where username like '%$%'

if>

select

>

user findbyname

(@param

("username"

) string username)

;

"findbyusername"

resulttype

="com.newzhong.pojo.user"

parametertype

="string"

>

select * from person

<!--介面傳入的值在name變數中,然後把傳入的值拼接成"'%'+name+'%'"形式,放入username引數中-->

name

="username"

value="

'%'+name+'%'

"/>

test

="username!= null and username != ''"

>

where username like #

if>

select

>

注意:在標籤裡將引數拼接糊查詢的匹配符%,然後放入name裡面,在if裡面使用name裡面的引數;

<

select id=

"findbyname" parametertype=

"string" resulttype=

""com.newzhong.pojo.

user

">

username !=

null

and username !=

''">

select

*from

user

where username like concat(

'%',

#,'%')

>

<

/select

>

格式一

instr( string1, string2 )    // instr(源字串, 目標字串)
<

select id=

"findbyname" parametertype=

"string" resulttype=

""com.newzhong.pojo.

user

">

username !=

null

and username !=

''">

select

*from

user

where instr(username,

#) > 0;

>

<

/select

>

效率還挺高的,也沒有sql注入

Mybatis 模糊查詢

mybatis從入門到精通 書籍筆記 1 使用concat 字串連線函式and user name like concat and user name like concat concat mysql中concat函式可以連線多個引數,oracle中只支援2個引數,所以有些要用多個concat 函式...

mybatis模糊查詢實現

最近在用mybatis做模糊查詢的時候,這個 xx 不知道怎麼插入,直接寫在sql語句裡面沒法實現,在網上查了一下主要有兩種比較好的方式實現 1.使用標籤 select from table where field like 注意 paramter代指傳入的引數,如果引數型別是基本資料型別或者它們對...

mybatis 配置 模糊查詢

使用mybatis連線mysql的話,需要如下步驟 1 生成實體類。public class user implements serializable2 生成主配置檔案,放在resources下面 主配置檔案也可以這樣寫,將連線資料庫的 放到外面 jdbcconfig.properties裡的內容 ...