MyBatis中的模糊查詢,自動對映和手動對映

2022-08-24 18:36:17 字數 1454 閱讀 6660

在mybatis中的模糊查詢我現在已經掌握了三種

第一種:使用concat()函式連線引數形式

select * from 表名 where 列名 like concat( '% ,#, '% )

這種方式可以預防sql注入,也是比較推薦的一種方式

第二種:使用${}方式

select * from 表名 where 列名 like '%$%'

上面那種方式,如果引數為乙個引數需要在宣告方法是在方法的引數列表中新增@param("引數值"),或者直接將引數值value,引數為多個時不能再使用value方式。

這種方式無法預防sql注入

第三種:使用#{}

select * from 表名 where 列名 like "%" # "%"

這種方式在需要在引數值的兩頭新增乙個空格

mybatis中的自動對映機制

在 mybatis 中,自動對映有三種模式,分別是 none、partial、full。其中 none 表示不啟用自動對映,partial 表示只對非巢狀的 resultmap 進行自動對映,full 表示對所有的 resultmap 都進行自動對映。預設的自動對映模式為 partial

在mybatis的核心檔案中的節點下新增如下節點來控制自動對映的方式

<

setting

name

value

="partial"

/>

手動對映,當表中的字段和實體類中的屬性名稱不相同的時候,自動對映機制不能對映成功 需要手動將二者進行關聯

<

resultmap

id="唯一的標識"

type

="對映的pojo物件"

>

<

id column

="表的主鍵字段,或者可以為查詢語句中的別名字段"

jdbctype

="字段型別"

property

="對映pojo物件的主鍵屬性"

/>

<

result

column

="表的乙個字段(可以為任意表的乙個字段)"

jdbctype

="字段型別"

property

="對映到pojo物件的乙個屬性(須為type定義的pojo物件中的乙個屬性)"

/>

當進行手動對映之後,select之類的標籤,resulttype將更改為resultmap

<

select

id="getbyid"

resultmap

="resultmap的唯一的標識"

>

select

>

Mybatis中的模糊查詢

1.當我們從資料庫中查詢資料時,大批量的資料會存在相同的資料。比如重名的人,當我們使用姓名查詢該姓名的所有資料時,我們需要在mybatis中使用到模糊查詢的概念。在介面中定義函式 模糊查詢 使用name查詢的資料為物件tb7,返回的不止乙個物件使用list public listquerybynam...

MyBatis中的模糊查詢

在dml中 模糊查詢用 like 實現 那麼在mybatis中怎麼去實現呢?一頓操作猛如虎 敲出以下 1 select id test 2select3 4from 5test 6where 7test name like 8select 直接 error 1064 缺少單引號 其實很簡單 只需要用...

mybatis中LIKE模糊查詢

mybatis中對於使用like來進行模糊查詢的幾種方式 使用 由於 是引數直接注入的,導致這種寫法,大括號裡面不能註明jdbctype,不然會報錯org.mybatis.spring.mybatissystemexception nested exception is org.apache.iba...