mybatis固定条件查询
时间: 2023-11-07 21:09:22 浏览: 136
mybatis动态SQL练习 动态查询 动态修改.zip
在 MyBatis 中,固定条件查询可以使用 `<where>` 元素和 `<if>` 元素来实现。
假设我们有一个 `User` 类,包含 `id`、`username` 和 `password` 属性,我们想根据用户名和密码进行查询,可以编写如下的 SQL 语句:
```
SELECT * FROM user
WHERE 1 = 1
<if test="username != null">
AND username = #{username}
</if>
<if test="password != null">
AND password = #{password}
</if>
```
这里使用了 `<if>` 元素来动态生成查询条件。如果 `username` 或 `password` 不为 `null`,则会拼接成相应的查询条件;否则不会生成该条件。
这里还使用了一个 `<where>` 元素,它会自动忽略所有未被包含在其内部的条件(在这里是 `1 = 1`),从而避免了出现多余的 `AND` 或 `OR` 连接符。
在 MyBatis 的 Mapper 接口中,可以定义一个方法来对应上述 SQL 语句:
```
public interface UserMapper {
List<User> findByUsernameAndPassword(String username, String password);
}
```
在映射文件中,可以使用 `<select>` 元素来定义该方法对应的 SQL 语句:
```
<select id="findByUsernameAndPassword" resultType="User">
SELECT * FROM user
WHERE 1 = 1
<if test="username != null">
AND username = #{username}
</if>
<if test="password != null">
AND password = #{password}
</if>
</select>
```
这样,我们就可以通过调用 `UserMapper.findByUsernameAndPassword("admin", "123456")` 来查询用户名为 `admin`,密码为 `123456` 的用户了。
阅读全文