第一种 用bind实现模糊查询 通用数据库
List<RoleEntity> selectBykeyWord(@Param("keyword") String keyword);
<select id="selectBykeyWord" parameterType="string" resultType="com.why.mybatis.entity.RoleEntity">
<bind name="pattern" value="'%' + keyword + '%'" ></bind>
SELECT
*
FROM
t_role
WHERE
role_name LIKE #{pattern}
</select>
这样我们把值赋给了pattern,我们就可以在select语句中就可以用,提高了数据库的可移植性,建议用这种方法。
如果keyword为空,会出现:Error querying database. Cause: java.lang.NullPointerException的错误,可以这样:
List<RoleEntity> selectBykeyWord(@Param("keyword") String keyword);
<select id="selectBykeyWord" parameterType="string" resultType="com.why.mybatis.entity.RoleEntity">
SELECT
*
FROM
t_role
WHERE 1=1
<if test="keyword!=null and keyword!=''">
<bind name="pattern" value="'%' + keyword + '%'" ></bind>
and role_name LIKE #{pattern}
</if>
</select>