mybatis中写条件查询
时间: 2023-08-27 13:20:10 浏览: 46
在MyBatis中,可以使用动态SQL来编写条件查询。其中,常用的动态SQL标签包括`<if>`、`<where>`、`<choose>`和`<when>`。
对于单个条件的查询,可以使用`<if>`标签来进行判断。例如,如果要根据表单中的内容判断简历来源是否为空或为null,可以使用以下语句:
```
<select id="findResumeByCand" resultType="Resume">
SELECT * FROM resume
<where>
<if test="resume1.source != null">
AND source = #{resume1.source}
</if>
</where>
</select>
```
如果要进行多条件查询,可以使用`<choose>`和`<when>`标签。例如,如果要根据姓名和年龄查询学生信息,可以使用以下语句:
```
<select id="selectStudentByNameAndAge" resultType="Student">
SELECT id, name, age, score
FROM student
WHERE 1=1
<choose>
<when test="nameCon != null and ageCon != null">
AND name LIKE concat('%', #{nameCon}, '%')
AND age > #{ageCon}
</when>
<when test="nameCon != null">
AND name LIKE concat('%', #{nameCon}, '%')
</when>
<when test="ageCon != null">
AND age > #{ageCon}
</when>
<otherwise>
AND 1=0
</otherwise>
</choose>
</select>
```
需要注意的是,以上示例中的参数名称(如`resume1`、`startTime`、`endTime`、`nameCon`和`ageCon`)需要与Java对象中的属性名称保持一致。此外,可以根据实际情况进行调整和扩展。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [idea中基于mybatis下的条件查询与动态条件查询](https://blog.csdn.net/ModestHC/article/details/125959169)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [MyBatis中的多条件查询](https://blog.csdn.net/weixin_42142899/article/details/103311118)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [MyBatis 多条件查询](https://blog.csdn.net/weixin_66107774/article/details/127939872)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]