MyBatis的模糊查詢mapper.xml的寫法
阿新 • • 發佈:2018-12-19
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>