動態解析 -> 預編譯 -> 執行
"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裡的內容 ...