mapper写一个模糊查询
时间: 2024-02-17 15:00:51 浏览: 12
如果您使用的是MyBatis框架,可以通过使用`LIKE`关键字和`CONCAT`函数来实现模糊查询。具体的Mapper代码如下:
```java
public interface UserMapper {
List<User> findUsersByName(String name);
}
```
```xml
<!-- UserMapper.xml -->
<select id="findUsersByName" resultType="User">
SELECT * FROM user WHERE name LIKE CONCAT('%', #{name}, '%')
</select>
```
在上面的代码中,`#{name}`是占位符,会被实际的参数值替换。`CONCAT`函数会将`%`和参数值拼接成一个模糊查询的表达式,例如`'%张%'`,从而实现模糊查询。
相关问题
模糊查询sql怎么写mapper
在MyBatis中,可以使用以下方式实现模糊查询:
1. 使用#{}占位符和concat函数拼接字符串,例如:
```
<select id="selectUserByName" parameterType="String" resultType="User">
SELECT * FROM user WHERE name LIKE CONCAT('%', #{name}, '%')
</select>
```
2. 使用${}占位符直接拼接字符串,例如:
```
<select id="selectUserByName" parameterType="String" resultType="User">
SELECT * FROM user WHERE name LIKE '%${name}%'
</select>
```
需要注意的是,使用${}占位符存在SQL注入的风险,因此应该尽量避免使用。同时,为了防止SQL注入,使用#{}占位符时应该使用预编译语句,例如:
```
<select id="selectUserByName" parameterType="String" resultType="User">
SELECT * FROM user WHERE name LIKE CONCAT('%', #{name,jdbcType=VARCHAR}, '%')
</select>
```
这样可以确保输入的参数被正确地转义。
mapper.xml中模糊查询like
在 mapper.xml 中实现模糊查询可以使用 like 关键字。例如,在查询名称中包含 "张" 的数据时,可以使用以下语句:
```
<select id="findByName" parameterType="string" resultType="User">
SELECT * FROM user WHERE name LIKE '%张%'
</select>
```
其中,'%张%' 中的 % 表示任意字符。