mabatis的输出参数resultType

介绍:

在SQL标签中使用resultType,从这条语句中返回的期望类型的类的完全限定名或别名。
注意如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身。
可以使用 resultType 或 resultMap,但不能同时使用。

1.简单类型(8个基本+String)
2.输出参数为实体对象类型
<select id="queryPersonById" parameterType="int" resultType="person">
		select * from person where id=#{xxx}
	</select>

在接口中:

Person queryPersonById(int id);
3.输出参数为实体对象类型的集合

虽然输出类型为集合,但是resultType依然写 集合的元素类型(resyltType=“Person”)。
但是在接口中,则要返回 List<Person> ,从而实现了当语句被调用时返回集合。

<select id="queryPersonById" parameterType="int" resultType="person">
		select * from person where id=#{xxx}
	</select>

在接口中(和第2条的区别就在于接口返回值的实现不同)

List<Person> queryPersonById(int id);
4.输出参数类型为HashMap

HashMap本身是一个集合,可以存放多个元素。但是当返回值为HashMap时,只能返回一个实体对象,因为HashMap中的元素分别对应了实体类对象的多个属性。

根据id返回对应学生的所有属性和值

<select id="queryPersonByIdWithHashMap" parameterType="int" resultType="HashMap">
		select * from person where id=#{id}
	</select>
	HashMap<String,Object> queryPersonByIdWithHashMap(int id);
PersonMapper personMapper = session.getMapper(PersonMapper.class);
HashMap<String, Object> personMap = personMapper.queryPersonByIdWithHashMap(1001);

要用HashMap返回多个对象,可以在接口的返回值中使用List,参照实体对象类型的集合 。

补充

注意:当实体类的属性、数据表的字段: 类型、名字不同时(stuno,id),除了使用resultMap以外,还可以使用resultType+HashMap。

a.resultMap

	<resultMap type="Person" id="queryPersonByIdMap">
			<!-- 指定类中的属性 和 表中的字段 对应关系 -->
			<id property="No"  column="id" />
			<result property="Name" column="name" />
	</resultMap>

b.resultType+HashMap

select  表的字段名 "类的属性名" from... 来制定字段名 和属性名的对应关系
	<select id="queryPersonByIdWithHashMap" 	 parameterType="int"	resultType="Person" >
		select id "No",name "Name" from Person where id = #{id}
	</select>

注意: 如果如果10个字段,但发现 某一个字段结果始终为默认值(0,0.0,null),则可能是 表的字段 和 类的属性名字写错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值