1. 程式人生 > >MyBatis的模糊查詢mapper.xml的寫法

MyBatis的模糊查詢mapper.xml的寫法

1.直接傳參

在controller類中

String id = "%"+ id +"%";
String name = "%"+ name +"%";
dao.selectByIdAndName(id,name);

在mapper.xml對映檔案中

<select>
    select * from table wherer id=#{id} or name like #{name}
</select>

2.針對MySQL資料庫的語句,採用concat()函式,它可以將多個字串連線成一個字元

<select>
    select * from table where name like concat('%',#{name},'%')
</select>

3.適用於所有資料庫的則採用MyBatis的bind元素

public xx selectByLike(@Param("_name") String name);
<select id="selectByLike">
    <bind name="user_name" value="'%' + _name + '%'"/>
    select * from table where name like #{user_name}
</select>

其中_name為傳遞進來的引數,bind元素的value屬性將傳進來的引數和 '%' 拼接到一起後賦給name屬性的user_name,之後可以在select語句中使用user_name這個變數。

bind元素也支援傳遞多個引數

public xx selectByLike(@Param("_name") String name, @Param("_note") String note);
<select id="selectByLike">
    <bind name="user_name" value="'%' + _name + '%'"/>
    <bind name="user_note" value="'%' + _note + '%'"/>
    select * from table where name like #{user_name} and note like #{user_note}
</select>