MyBatis输出结果
mybatis执行了sql语句,得到java对象。
1、resultType
resultType: 执行 sql 得到 ResultSet 转换的类型,使用类型的完全限定名或别名。 注意如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身。resultType 和 resultMap,不能同时使用。
resultType结果类型, 指sql语句执行完毕后, 数据转为的java对象, java类型是任意的。
resultType结果类型的值
- 类型的全限定名称
- 类型的别名, 例如 java.lang.Integer别名是int
1.1 简单类型
接口方法:
int countStudent();
mapper 文件:
<select id="countStudent" resultType="java.lang.Integer">
select count(*) from student
</select>
测试:
@Test
public void countStudent() {
SqlSession sqlSession = MybatisUtils.getSqlSession();
StudentDao dao = sqlSession.getMapper(StudentDao.class);
int countStudent = dao.countStudent();
System.out.println("学生总人数------->" + countStudent);
sqlSession.close();
}
1.2 对象类型
接口方法:
Student selectStudentById(Integer id);
mapper 文件:
<select id="selectStudentById" resultType="com.b0kuwa.entity.Student">
select * from student where id = #{id}
</select>
框架的处理: 使用构造方法创建对象。调用 setXXX 给属性赋值。
Student student = new Student();
注意: Dao 接口方法返回是集合类型,需要指定集合中的类型,不是集合本身。
1.3 Map
sql 的查询结果作为 Map 的 key 和 value。推荐使用 Map<Object,Object>。
注意:Map 作为接口返回值,sql 语句的查询结果最多只能有一条记录。大于一条记录是错误。
接口方法:
Map<Object,Object> selectMapById(Integer id);
mapper 文件:
<select id="selectMapById" resultType="java.util.HashMap">
select * from student where id = #{studentId}
</select>
测试方法:
@Test
public void selectMapById() {
SqlSess