用java 写一个根据名字模糊查询的接口 不传就查所有 mybatis
时间: 2024-03-21 11:41:36 浏览: 61
好的,以下是一个用Java和MyBatis实现根据名字模糊查询的接口的示例,同时支持不传入参数查询所有记录:
首先,我们需要修改Mapper接口中的方法,例如:
```java
public interface UserMapper {
List<User> findUsersByName(@Param("name") String name);
}
```
注意这里使用了@Param注解,用于指定参数的名称,这样MyBatis可以正确地将参数映射到SQL语句中。同时,我们也可以不传入参数,此时name参数的值为null。
然后,修改Mapper XML文件中的SQL语句,例如:
```xml
<select id="findUsersByName" resultType="User">
SELECT * FROM users WHERE
<if test="name != null">
name LIKE CONCAT('%', #{name}, '%')
</if>
<if test="name == null">
1=1
</if>
</select>
```
这里使用了if标签实现动态SQL语句的拼接。如果传入了name参数,则根据名字模糊查询;如果没有传入name参数,则查询所有记录。
最后,在Service层中调用Mapper接口的方法,例如:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> findUsersByName(String name) {
return userMapper.findUsersByName(name);
}
}
```
这样,我们就可以通过调用findUsersByName方法来实现根据名字模糊查询了,同时也支持不传入参数查询所有记录。
阅读全文