MyBatis的输出参数:resultType和resultMap

输出参数resultType
1、简单类型(8个基本类型+String)
2、输出参数为实体对象类型
3、输出参数为实体对象类型的集合:虽然输出类型为集合,但是resultType依然写集合的元素类型
4、输出参数类型为HashMap,如:

	<select id="queryStudentByHashMap" resultType="HashMap">
		select stuno "no",stuname "name" from student
	</select>

测试方法

public static void queryStudentByHashMap() throws IOException {
		Reader reader = Resources.getResourceAsReader("conf.xml");
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
		SqlSession session = sessionFactory.openSession();
		StudentMapper studentMapper = session.getMapper(StudentMapper.class);
		List<HashMap<String, Object>> studentMap = studentMapper.queryStudentByHashMap();
		System.out.println(studentMap);
		session.close();
	}

当把数据表中stuno改为id,stuname改为name,使得类中的属性名和表中的字段名不一致。则又以下两种方法使之对应
方法一:使用resultMap

<!-- select的resultType的值=resultMap的id值 -->
<select id="query" parameterType="id" resultType="queryStudent">
		select id,name from student where id = #{id}
	</select>
	
	<resultMap type="student" id="queryStudent">
		<id property="stuNo" column="id"/>
		<result property="stuName" column="name"/>
	</resultMap>

方法二:使用resultType+HashMap
只需在StudentMapper.xml文件中做如下即可

<!-- 给数据库表的字段起别名,对应类的属性名 -->
	<select id="query" parameterType="int" resultType="student">
		select id "stuNo",name "stuName" from student where id = #{id}
	</select>

如果表中字段的别名和类的属性名不一致,则该属性的返回值是默认值,如0,null等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值