首先,我们需要创建一个员工实体类,包含以下字段:

public class Employee {
    private Integer id;
    private String employeeNo;
    private String employeeName;
    private String gender;
    private Integer age;
    private String hometown;
    private Date hireDate;
    private Double salary;
    
    // 省略getter和setter方法
}

接下来,我们需要创建一个Mapper接口,定义对员工表的操作:

public interface EmployeeMapper {
    List<Employee> findAllEmployees();
    
    void insertEmployee(Employee employee);
    
    void updateEmployee(Employee employee);
    
    void deleteEmployee(String employeeNo);
    
    Double findAverageSalaryByGender(String gender);
    
    List<Employee> findEmployeesByHireDate(Date startDate, Date endDate);
    
    List<Employee> findEmployeesByYears(int startYear, int endYear);
    
    Employee findMaxSalaryEmployeeByAge(int age);
}

然后,我们需要创建一个Mapper XML文件,实现Mapper接口定义的方法:

<!-- EmployeeMapper.xml -->
<mapper namespace="com.example.mapper.EmployeeMapper">
    <select id="findAllEmployees" resultType="com.example.model.Employee">
        SELECT * FROM employee
    </select>
    
    <insert id="insertEmployee" parameterType="com.example.model.Employee">
        INSERT INTO employee (employeeNo, employeeName, gender, age, hometown, hireDate, salary) 
        VALUES (#{employeeNo}, #{employeeName}, #{gender}, #{age}, #{hometown}, #{hireDate}, #{salary})
    </insert>
    
    <update id="updateEmployee" parameterType="com.example.model.Employee">
        UPDATE employee SET employeeNo = #{employeeNo}, employeeName = #{employeeName}, gender = #{gender},
        age = #{age}, hometown = #{hometown}, hireDate = #{hireDate}, salary = #{salary}
        WHERE id = #{id}
    </update>
    
    <delete id="deleteEmployee" parameterType="String">
        DELETE FROM employee WHERE employeeNo = #{employeeNo}
    </delete>
    
    <select id="findAverageSalaryByGender" resultType="Double">
        SELECT AVG(salary) FROM employee WHERE gender = #{gender}
    </select>
    
    <select id="findEmployeesByHireDate" resultType="com.example.model.Employee">
        SELECT * FROM employee WHERE hireDate BETWEEN #{startDate} AND #{endDate}
    </select>
    
    <select id="findEmployeesByYears" resultType="com.example.model.Employee">
        SELECT * FROM employee WHERE YEAR(hireDate) BETWEEN #{startYear} AND #{endYear}
    </select>
    
    <select id="findMaxSalaryEmployeeByAge" resultType="com.example.model.Employee">
        SELECT * FROM employee WHERE age = #{age} ORDER BY salary DESC LIMIT 1
    </select>
</mapper>

最后,我们可以在Java代码中使用Mapper接口进行数据库操作:

public class EmployeeService {
    private SqlSessionFactory sqlSessionFactory;
    
    public EmployeeService() {
        // 初始化SqlSessionFactory
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    }
    
    public List<Employee> findAllEmployees() {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
            return mapper.findAllEmployees();
        }
    }
    
    public void insertEmployee(Employee employee) {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
            mapper.insertEmployee(employee);
            session.commit();
        }
    }
    
    public void updateEmployee(Employee employee) {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
            mapper.updateEmployee(employee);
            session.commit();
        }
    }
    
    public void deleteEmployee(String employeeNo) {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
            mapper.deleteEmployee(employeeNo);
            session.commit();
        }
    }
    
    public Double findAverageSalaryByGender(String gender) {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
            return mapper.findAverageSalaryByGender(gender);
        }
    }
    
    public List<Employee> findEmployeesByHireDate(Date startDate, Date endDate) {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
            return mapper.findEmployeesByHireDate(startDate, endDate);
        }
    }
    
    public List<Employee> findEmployeesByYears(int startYear, int endYear) {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
            return mapper.findEmployeesByYears(startYear, endYear);
        }
    }
    
    public Employee findMaxSalaryEmployeeByAge(int age) {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
            return mapper.findMaxSalaryEmployeeByAge(age);
        }
    }
}

以上就是使用MyBatis的Mapper接口完成对员工表的操作的示例代码。请根据实际情况修改数据库连接配置和SQL语句。在使用时间类型进行比较时,可以使用BETWEEN关键字或者>、<等运算符进行比较。具体的SQL语句可根据实际需求进行调整

mybatis写 新建员工表包含一下字段:员工编号员工姓名员工性别员工年龄员工籍贯入职时间薪资使用mybatis的mapper接口开发完成以下功能:1查询所有员工信息2新增一名员工信息3根据员工编号修改员工信息4根据员工编号删除员工信息5根据性别分组统计平均薪资6查询入职时间在最近一年的员工信息7查询入职两年到三年之间员工的最高薪资和最低薪资的员工信息8查询年龄为25岁的员工中最高薪资的员工信息P

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

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