新建员工表包含一下字段:员工编号员工姓名员工性别员工年龄员工籍贯入职时间薪资使用mybatis的mapper接口开发完成以下功能:1查询所有员工信息2新增一名员工信息3根据员工编号修改员工信息4根据员工编号删除员工信息5根据性别分组统计平均薪资6查询入职时间在最近一年的员工信息7查询入职两年到三年之间员工的最高薪资和最低薪资的员工信息8查询年龄为25岁的员工中最高薪资的员工信息
以下是使用MyBatis的mapper接口开发完成上述功能的示例代码:
Employee.java:
public class Employee {
private Integer id;
private String empNo;
private String empName;
private String gender;
private Integer age;
private String hometown;
private Date hireDate;
private BigDecimal salary;
// 省略getter和setter方法
}
EmployeeMapper.java:
public interface EmployeeMapper {
List<Employee> getAllEmployees();
void addEmployee(Employee employee);
void updateEmployee(Employee employee);
void deleteEmployee(String empNo);
BigDecimal getAvgSalaryByGender(String gender);
List<Employee> getEmployeesByRecentYear();
List<Employee> getEmployeesByYears(int minYears, int maxYears);
Employee getHighestSalaryEmployeeByAge(int age);
}
EmployeeMapper.xml:
<mapper namespace="com.example.EmployeeMapper">
<resultMap id="employeeResultMap" type="com.example.Employee">
<id property="id" column="id"/>
<result property="empNo" column="emp_no"/>
<result property="empName" column="emp_name"/>
<result property="gender" column="gender"/>
<result property="age" column="age"/>
<result property="hometown" column="hometown"/>
<result property="hireDate" column="hire_date"/>
<result property="salary" column="salary"/>
</resultMap>
<select id="getAllEmployees" resultMap="employeeResultMap">
SELECT * FROM employee;
</select>
<insert id="addEmployee">
INSERT INTO employee (emp_no, emp_name, gender, age, hometown, hire_date, salary)
VALUES (#{empNo}, #{empName}, #{gender}, #{age}, #{hometown}, #{hireDate}, #{salary});
</insert>
<update id="updateEmployee" parameterType="com.example.Employee">
UPDATE employee
SET emp_no = #{empNo}, emp_name = #{empName}, gender = #{gender},
age = #{age}, hometown = #{hometown}, hire_date = #{hireDate}, salary = #{salary}
WHERE id = #{id};
</update>
<delete id="deleteEmployee" parameterType="String">
DELETE FROM employee WHERE emp_no = #{empNo};
</delete>
<select id="getAvgSalaryByGender" resultType="java.math.BigDecimal">
SELECT AVG(salary) FROM employee WHERE gender = #{gender};
</select>
<select id="getEmployeesByRecentYear" resultMap="employeeResultMap">
SELECT * FROM employee WHERE hire_date BETWEEN DATE_SUB(CURDATE(), INTERVAL 1 YEAR) AND CURDATE();
</select>
<select id="getEmployeesByYears" resultMap="employeeResultMap">
SELECT * FROM employee WHERE hire_date BETWEEN DATE_SUB(CURDATE(), INTERVAL #{minYears} YEAR) AND DATE_SUB(CURDATE(), INTERVAL #{maxYears} YEAR);
</select>
<select id="getHighestSalaryEmployeeByAge" resultMap="employeeResultMap">
SELECT * FROM employee WHERE age = #{age} ORDER BY salary DESC LIMIT 1;
</select>
</mapper>
使用以上代码,你可以在MyBatis中完成对员工表的增删改查操作以及一些统计查询操作
原文地址: http://www.cveoy.top/t/topic/ihOW 著作权归作者所有。请勿转载和采集!