在 MyBatis 中,可以使用动态 SQL 语句来实现根据时间类型进行比较的查询。以下是一个示例:

<select id="getEmployeeByYears" parameterType="java.util.Map" resultType="com.example.Employee">
    SELECT * FROM employee
    WHERE join_date >= #{startDate} AND join_date <= #{endDate}
    ORDER BY salary DESC
    LIMIT 1
</select>

在这个示例中,我们使用了 Map 作为参数传递起始日期和结束日期。在 Mapper 接口中定义一个方法来调用这个查询语句:

public interface EmployeeMapper {
    Employee getEmployeeByYears(Map<String, Date> params);
}

然后,在调用这个方法时,传入起始日期和结束日期作为参数:

Map<String, Date> params = new HashMap<>();
params.put("startDate", startDate);
params.put("endDate", endDate);

Employee employee = employeeMapper.getEmployeeByYears(params);

在上面的示例中,我们使用了ORDER BY salary DESC来按照薪资降序排序,然后使用LIMIT 1来限制只返回一条记录,即最高薪资的员工信息。如果你想查询最低薪资的员工信息,只需将ORDER BY salary DESC改为ORDER BY salary ASC即可。

注意:在这个示例中,假设join_date字段是一个日期类型的字段,你需要根据实际情况修改表名、字段名和实体类名。


原文地址: https://www.cveoy.top/t/topic/pZ6e 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录