经过加密和删减处理,仅作示范;import部分全部删减。
Cotroller层
@RestController
@RequestMapping("/sample")
public class SampleController
{
@Autowired
private SampleService sampleService;
@PostMapping
public int sampleStat(@RequestBody Timestamp head,@RequestBody Timestamp tail)
//前端如何传值,后端如何得出指定的时间段可以自由发挥
{
if(tail.after(head))
return sampleService.sampleStat(head, tail);
else
return sampleService.sampleStat(tail, head);
}
}
Service层
public interface SampleService
{
public int sampleStat(Timestamp head, Timestamp tail);
}
@Service
public class SampleServiceImpl implements SampleService
{
@Autowired
private SampleMapper sampleMapper;
//此处一般idea会报红色波浪线,显示不能autowire,可以无视
@Override
public int sampleStat(Timestamp head, Timestamp tail){
List<SampleEntity> statistic = sampleMapper.sampleStat(head, tail);
//SampleEntity即数据库对应实体类,不作赘述
return statistic.size();
//返回
}
}
Mapper层
//@Mapper
//此处@Mapper注解可加可不加,似乎不影响运行,但加了可以让serviceimpl的mapper注入不报警告
public interface SampleMapper
{
List<SampleEntity> sampleStat(@Param("head") Timestamp head,
@Param("tail") Timestamp tail);
}
mapper.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.sample.mapper.SampleMapper">
<resultMap type="SampleEntity" id="SampleResult">
<id property="id" column="id" />
<result property="sampleTime" column="sample_time" />
</resultMap>
<select id="SampleStat" parameterType="java.sql.Timestamp" resultMap="SampleResult">
select * from sql_sample
where sample_time between #{head} and #{tail}
</select>
</mapper>
问题记录
sql语句between head and tail 保证 head < tail (不一定必要但一定没错)
Mapper interface 入参注解@Param必须有,不然报错