MyBatis教程:数据输出与实体类映射

需积分: 5 0 下载量 150 浏览量 更新于2024-08-05 收藏 22KB MD 举报
"mybatis-day02.md - 关于MyBatis的数据输出,包括返回单个简单类型数据和返回一条数据的详细讲解" 在MyBatis框架中,数据输出主要是指查询操作,它涉及到如何从数据库获取数据并将其映射到Java对象上。本教程将深入探讨如何在MyBatis中实现数据输出,主要分为两个部分:返回单个简单类型数据和返回一条数据。 ### 第一部分:返回单个简单类型数据 当查询结果只需要一个简单的数据类型(如整型、浮点型或字符串)时,可以在Mapper接口中定义一个抽象方法,其返回值就是这个简单类型。例如,统计员工数量的接口方法: ```java /** * 统计员工数量 *@return 员工数量 */ Long selectEmployeeCount(); ``` 在对应的Mapper XML配置文件中,我们需要使用`<select>`标签来编写SQL查询,并设置`resultType`属性为抽象方法的返回值类型,这里为`long`: ```xml <select id="selectEmployeeCount" resultType="long"> select count(emp_id) from t_emp </select> ``` 这样,MyBatis会自动将查询结果转换成对应的简单类型并返回。 ### 第二部分:返回一条数据 返回一条数据通常涉及将查询结果映射到一个实体类对象。在Mapper接口中,定义一个返回POJO类型的抽象方法: ```java Employee selectEmployee(Integer empId); ``` 在XML配置文件中,`resultType`属性应设置为返回对象的全限定类名,比如`com.atguigu.mybatis.entity.Employee`: ```xml <select id="selectEmployee" resultType="com.atguigu.mybatis.entity.Employee"> select emp_id as empId, emp_name as empName, emp_salary as empSalary from t_emp where emp_id=#{empId} </select> ``` 为确保字段和实体类属性匹配,可以为数据库表字段设置别名,使得查询结果的每一列都能对应到Java实体类的属性。 ### 自动映射驼峰命名规则 为了简化配置,MyBatis允许开启全局的自动映射功能,这样在SQL查询中无需显式设置字段别名。在MyBatis的核心配置文件中,添加以下设置: ```xml <settings> <!-- 开启驼峰命名规则自动映射 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> ``` 开启后,MyBatis会自动将数据库中的下划线命名(如`emp_id`)转换为驼峰命名(如`empId`),与Java实体类的属性名保持一致。 总结来说,MyBatis通过Mapper接口和XML配置文件协同工作,实现了对数据库查询结果的有效映射。对于返回简单类型的数据,直接将查询结果转换为相应类型;而对于返回实体类对象的情况,可以通过设置字段别名或者启用驼峰命名规则自动映射,使查询结果能正确地映射到Java对象的属性上。这样的设计极大地提高了开发效率和代码的可维护性。