有开始时间和结束时间,怎么样用SpringBoot和mybatis查询
时间: 2023-11-14 15:23:31 浏览: 248
基于springboot+mybatis的选课管理系统.zip
在 Spring Boot 中使用 MyBatis 进行查询操作的步骤如下:
1. 配置 MyBatis
在 `application.properties` 文件中配置 MyBatis 相关属性,如下所示:
```
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.example.model
```
其中,`mybatis.mapper-locations` 属性指定 Mapper.xml 文件的路径,`mybatis.type-aliases-package` 属性指定 Java 类型别名的包名。
2. 编写 Mapper.xml 文件
在 `resources/mapper` 目录下编写 Mapper.xml 文件,定义查询语句,如下所示:
```xml
<?xml version="1.0" encoding="UTF-8" ?>
<mapper namespace="com.example.mapper.DataMapper">
<select id="selectDataByTime" parameterType="java.util.Map" resultType="com.example.model.Data">
SELECT * FROM data
WHERE create_time BETWEEN #{startTime} AND #{endTime}
</select>
</mapper>
```
在上述例子中,我们定义了一个 ID 为 `selectDataByTime` 的查询语句,使用了动态 SQL 的 `WHERE` 子句来根据开始时间和结束时间查询数据。
3. 编写 Mapper 接口
编写 Mapper 接口,定义查询方法,如下所示:
```java
package com.example.mapper;
import com.example.model.Data;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
@Mapper
public interface DataMapper {
List<Data> selectDataByTime(Map<String, Object> params);
}
```
在上述例子中,我们定义了一个名为 `selectDataByTime` 的查询方法,使用了 `Map<String, Object>` 类型的参数来传递开始时间和结束时间。
4. 编写 Service
编写 Service 类,调用 Mapper 接口中的查询方法,如下所示:
```java
package com.example.service;
import com.example.mapper.DataMapper;
import com.example.model.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class DataService {
@Autowired
private DataMapper dataMapper;
public List<Data> getDataByTime(long startTime, long endTime) {
Map<String, Object> params = new HashMap<>();
params.put("startTime", startTime);
params.put("endTime", endTime);
return dataMapper.selectDataByTime(params);
}
}
```
在上述例子中,我们注入了 `DataMapper` 接口,然后在 `getDataByTime` 方法中,将开始时间和结束时间封装为一个 `Map<String, Object>` 对象,调用 `selectDataByTime` 方法进行查询操作。
5. 控制器中调用 Service
在控制器中调用 Service 类的 `getDataByTime` 方法,如下所示:
```java
package com.example.controller;
import com.example.model.Data;
import com.example.service.DataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class DataController {
@Autowired
private DataService dataService;
@GetMapping("/data")
public List<Data> getDataByTime(@RequestParam long startTime, @RequestParam long endTime) {
return dataService.getDataByTime(startTime, endTime);
}
}
```
在上述例子中,我们在控制器中定义了一个名为 `getDataByTime` 的方法,使用 `@RequestParam` 注解来接收开始时间和结束时间参数,然后调用 Service 类的 `getDataByTime` 方法进行查询操作,最终返回查询结果。
这样,我们就可以使用 Spring Boot 和 MyBatis 进行查询操作了。
阅读全文