下面是一个示例测试代码,使用 MyBatis 进行查询并根据性别分组统计平均薪资:

public class EmployeeMapperTest {
    private SqlSessionFactory sqlSessionFactory;

    @Before
    public void setup() throws IOException {
        // 创建 MyBatis 的配置文件输入流
        String resource = 'mybatis-config.xml';
        InputStream inputStream = Resources.getResourceAsStream(resource);

        // 根据配置文件创建 SqlSessionFactory
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    }

    @Test
    public void testGetAverageSalaryByGender() {
        try (SqlSession session = sqlSessionFactory.openSession()) {
            EmployeeMapper employeeMapper = session.getMapper(EmployeeMapper.class);

            // 使用 MyBatis 的 selectList 方法执行查询
            List<Map<String, Object>> result = employeeMapper.getAverageSalaryByGender();

            // 遍历查询结果并打印
            for (Map<String, Object> row : result) {
                String gender = (String) row.get('gender');
                Double avgSalary = (Double) row.get('averageSalary');
                System.out.println('Gender: ' + gender + ', Average Salary: ' + avgSalary);
            }
        }
    }
}

在上面的示例中,首先创建了一个 SqlSessionFactory,然后使用该工厂创建一个 SqlSession 对象。接下来,从 SqlSession 对象中获取一个 EmployeeMapper 接口的实例。

通过调用 employeeMapper.getAverageSalaryByGender() 方法,执行 SQL 查询并将结果返回为一个 List,其中每个元素都是一个 Map 对象,表示一行查询结果。每个 Map 对象包含两个键值对,分别是 genderaverageSalary,分别表示性别和平均薪资。

最后,遍历查询结果并打印每行数据。


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

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