在 MyBatis 中,可以使用 select
元素和 where
元素来实现多条件查询。
例如,假设要查询一个表中满足多个条件的记录,可以使用如下 SQL 语句:
SELECT * FROM table_name
WHERE condition1 = value1
AND condition2 = value2
AND condition3 = value3;
在 MyBatis 中,可以使用如下方式实现多条件查询:
<select id="selectByConditions" parameterType="map" resultType="com.example.model.Entity">
SELECT * FROM table_name
<where>
<if test="condition1 != null">
AND condition1 = #{condition1}
</if>
<if test="condition2 != null">
AND condition2 = #{condition2}
</if>
<if test="condition3 != null">
AND condition3 = #{condition3}
</if>
</where>
</select>
在上面的示例中,selectByConditions
是查询的 ID,parameterType
指定参数类型为 map
,resultType
指定返回结果类型为 com.example.model.Entity
。<where>
元素内部使用 <if>
元素根据条件动态拼接 SQL 语句。当条件不为 null 时,拼接对应的条件语句。
调用该方法时,可以传入一个 Map 对象,其中包含多个条件的键值对,例如:
Map<String, Object> params = new HashMap<>();
params.put("condition1", value1);
params.put("condition2", value2);
params.put("condition3", value3);
List<Entity> result = sqlSession.selectList("selectByConditions", params);
这样就可以根据传入的条件动态构建 SQL 查询语句,实现多条件查询。