mapper.xml中判断语句例子
时间: 2023-08-07 07:05:40 浏览: 41
假设有一个表 `user`,其中包含 `id`、`name` 和 `age` 三个字段,下面是一个 mapper.xml 文件中的判断语句例子:
```xml
<!-- 根据 id 查询用户信息 -->
<select id="getUserById" parameterType="int" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
<!-- 根据条件查询用户信息 -->
<select id="getUserByCondition" parameterType="map" resultType="User">
SELECT * FROM user
<where>
<if test="name != null and name != ''">
AND name LIKE CONCAT('%',#{name},'%')
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select>
```
以上代码中,`getUserById` 方法根据 `id` 查询用户信息,参数类型为 `int`,返回类型为 `User`。SQL 语句直接写在 `<select>` 标签内部,使用 `#{id}` 占位符表示参数。
`getUserByCondition` 方法根据条件查询用户信息,参数类型为 `map`,返回类型为 `User`。SQL 语句中使用了 `<where>` 标签,其内部的 `<if>` 标签用于判断条件是否成立,如果成立则拼接对应的 SQL 语句。例如,如果 `name` 参数不为空,则拼接 `AND name LIKE CONCAT('%',#{name},'%')`;如果 `age` 参数不为空,则拼接 `AND age = #{age}`。最终的 SQL 语句为 `SELECT * FROM user WHERE (name LIKE CONCAT('%',#{name},'%') AND age = #{age})`。