!--7查询入职两年到三年之间员工的最高薪资和最低薪资的员工信息--用mybatis编写代码
首先,需要在数据库中创建一个员工表,表结构如下:
CREATE TABLE employee (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
hire_date DATE NOT NULL,
salary INT NOT NULL
);
然后,在MyBatis中创建一个Mapper接口,用于定义查询方法和参数:
public interface EmployeeMapper {
List<Employee> findEmployeesByHireDateRange(Date startDate, Date endDate);
}
接着,在Mapper XML文件中编写SQL语句:
<select id="findEmployeesByHireDateRange" parameterType="java.util.Map" resultType="com.example.Employee">
SELECT id, name, hire_date, salary
FROM employee
WHERE hire_date >= #{startDate} AND hire_date <= #{endDate}
ORDER BY salary DESC
LIMIT 1
</select>
最后,调用Mapper接口中的方法进行查询:
public class Main {
public static void main(String[] args) {
// 创建MyBatis的配置文件
String resource = "mybatis-config.xml";
// 读取配置文件
InputStream inputStream = Resources.getResourceAsStream(resource);
// 创建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 创建SqlSession
try (SqlSession session = sqlSessionFactory.openSession()) {
// 获取Mapper接口的代理对象
EmployeeMapper employeeMapper = session.getMapper(EmployeeMapper.class);
// 创建查询参数
Map<String, Object> params = new HashMap<>();
params.put("startDate", Date.valueOf("2019-01-01"));
params.put("endDate", Date.valueOf("2021-01-01"));
// 调用查询方法
List<Employee> employees = employeeMapper.findEmployeesByHireDateRange(params);
// 输出查询结果
for (Employee employee : employees) {
System.out.println("ID: " + employee.getId());
System.out.println("Name: " + employee.getName());
System.out.println("Hire Date: " + employee.getHireDate());
System.out.println("Salary: " + employee.getSalary());
System.out.println("--------------------------");
}
}
}
}
这样就可以查询入职两年到三年之间员工的最高薪资和最低薪资的员工信息了
原文地址: https://www.cveoy.top/t/topic/ihT5 著作权归作者所有。请勿转载和采集!