mybatis 结合where标签,传参里有开始时间和结束时间,查询这个时间段的数据
时间: 2023-11-14 20:08:36 浏览: 84
查询指定时间段的数据
假设开始时间为 `startTime`,结束时间为 `endTime`,在 XML 中可以使用 MyBatis 的 `where` 标签结合动态 SQL 实现:
```xml
<select id="selectByTimeRange" parameterType="map" resultType="...">
select * from your_table
<where>
<if test="startTime != null">
and create_time >= #{startTime}
</if>
<if test="endTime != null">
and create_time <= #{endTime}
</if>
</where>
</select>
```
其中,`parameterType` 为 `map`,表示传入的参数是一个 Map;`resultType` 为查询结果的类型。在 SQL 中,使用了 `where` 标签,如果开始时间不为空,则拼接 `and create_time >= #{startTime}`,如果结束时间不为空,则拼接 `and create_time <= #{endTime}`,最终 SQL 语句中只会包含非空的条件。
在 Java 代码中,传入的 Map 参数应该包含键值对 `"startTime" -> startTime` 和 `"endTime" -> endTime`,例如:
```java
Map<String, Object> params = new HashMap<>();
params.put("startTime", startTime);
params.put("endTime", endTime);
List<YourEntity> result = sqlSession.selectList("selectByTimeRange", params);
```
阅读全文