在 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 查詢語句,實現多條件查詢。