1>resultType
- resultType: 执行 sql 得到 ResultSet 转换的类型,使用类型的完全限定名或别名。 注意如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身。
- resultType 和resultMap,不能同时使用。
1.1、简单类型
int countStudent();
<select id="countStudent" resultType="int">
select count(*) from student
</select>
@Test
public void testRetunInt(){
int count = studentDao.countStudent();
System.out.println(" 学生总人数:"+ count);
}
1.2、对象类型
Student selectById(int id);
- mapper 文件:
- resultType是全限定名称或者别名
<select id="selectById" resultType="com.bjpowernode.domain.Student">
select id,name,email,age from student where id=#{
studentId}
</select>
- 框架的处理: 使用构造方法创建对象。调用 setXXX 给属性赋值。
Student student = new Student();
- 我的思考:一开始就在思考为什么不在构造方法里面传入参数,这里让我想明白了,因为Mybatis是通过无参构造方法和set语句来帮助我们创建对象的
1.3、Map
- sql 的查询结果作为 Map 的 key 和 value。推荐使用 Map<Object,Object>。
- 注意:Map作为接口返回值,sql语句的查询结果最多只能有一条记录。大于一条记录是错误。
- 接口方法:
Map<Object,Object> selectReturnMap(int id);
<select id="selectReturnMap" resultType="java.util.HashMap">
select name,email from student where id = #{
studentId}
</select>
@Test
public void testReturnMap(){
Map<Object,Object> retMap = studentDao.selectReturnMap(1002)