MyBatis 查询入职两年到三年员工的最高薪资和最低薪资 - 代码示例
在 MyBatis 中,可以使用 XML 或注解方式编写 SQL 语句进行数据库操作。以下是使用 XML 方式编写的 MyBatis 查询入职两年到三年之间员工的最高薪资和最低薪资的员工信息的示例。\n\n首先,创建一个 EmployeeMapper.xml 文件,定义查询语句:\n\nxml\n<!-- EmployeeMapper.xml -->\n\n<mapper namespace="com.example.mapper.EmployeeMapper">\n\n <!-- 查询入职两年到三年之间员工的最高薪资 -->\n <select id="getMaxSalaryByYears" resultType="com.example.model.Employee">\n SELECT * FROM employee\n WHERE DATEDIFF(CURDATE(), hire_date) >= 730 AND DATEDIFF(CURDATE(), hire_date) < 1095\n ORDER BY salary DESC\n LIMIT 1\n </select>\n\n <!-- 查询入职两年到三年之间员工的最低薪资 -->\n <select id="getMinSalaryByYears" resultType="com.example.model.Employee">\n SELECT * FROM employee\n WHERE DATEDIFF(CURDATE(), hire_date) >= 730 AND DATEDIFF(CURDATE(), hire_date) < 1095\n ORDER BY salary ASC\n LIMIT 1\n </select>\n\n</mapper>\n\n\n接下来,创建一个 EmployeeMapper 接口,定义对应的方法:\n\njava\n// EmployeeMapper.java\n\npackage com.example.mapper;\n\nimport com.example.model.Employee;\n\npublic interface EmployeeMapper {\n\n Employee getMaxSalaryByYears();\n\n Employee getMinSalaryByYears();\n\n}\n\n\n最后,在 MyBatis 配置文件中配置 Mapper 接口和数据库连接信息:\n\nxml\n<!-- mybatis-config.xml -->\n\n<configuration>\n\n <!-- 配置数据库连接信息 -->\n\n <!-- 配置 Mapper 接口 -->\n <mappers>\n <mapper resource="com/example/mapper/EmployeeMapper.xml"/>\n </mappers>\n\n</configuration>\n\n\n现在,就可以在代码中使用 EmployeeMapper 接口进行查询操作了:\n\njava\n// 使用 Spring 整合 MyBatis 的示例代码\n\npackage com.example.service;\n\nimport com.example.mapper.EmployeeMapper;\nimport com.example.model.Employee;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\n@Service\npublic class EmployeeService {\n\n private final EmployeeMapper employeeMapper;\n\n @Autowired\n public EmployeeService(EmployeeMapper employeeMapper) {\n this.employeeMapper = employeeMapper;\n }\n\n public Employee getMaxSalaryByYears() {\n return employeeMapper.getMaxSalaryByYears();\n }\n\n public Employee getMinSalaryByYears() {\n return employeeMapper.getMinSalaryByYears();\n }\n\n}\n\n\n上述代码示例中,使用 @Autowired 注解将 EmployeeMapper 注入到 EmployeeService 中,然后可以调用 EmployeeMapper 接口中定义的方法来执行查询操作。\n\n请注意,示例中使用了 CURDATE() 函数获取当前日期,DATEDIFF() 函数计算入职时间与当前时间的天数差。同时,根据实际的数据库表结构和字段名进行调整。
原文地址: https://www.cveoy.top/t/topic/p0bq 著作权归作者所有。请勿转载和采集!