iBATIS 如何对sql 输出结果的映射

如何对输出结果进行映射:
1、将查询结果映射到不同的对象(resultClass的使用)
2、将查询结果集映射到不同的对象(resultMap的基本使用)
3、将查询结果集映射为xml格式的数据
4、将查询结果集的元素转换为Map类型的对象

[b]1、将查询结果映射到不同的对象(resultClass的使用)[/b]
  <select id="selectUserForOtherObject" resultClass="com.bjsxt.ibatis.OtherObject" parameterClass="int">
select
username as prop1,
password as prop2
from t_user where id=#value#
</select>

//查找t_user表,将其结果映射到一个属性名不同的对象中!
OtherObject obj = (OtherObject)sqlMapper.queryForObject("selectUserForOtherObject", 1);
System.out.println(obj.getProp1()+","+obj.getProp2());



[b]2、将查询结果集映射到不同的对象(resultMap的基本使用)[/b]
<resultMap class="com.bjsxt.ibatis.OtherObject" id="ooResult">
<result property="prop1" column="username"/>
<result property="prop2" column="password"/>
</resultMap>
<!--
如果使用resultMap来定义如何映射,则如下语句不可写成:
select username as prop1,password as prop2 ....
-->
<select id="selectUserForOtherObject2" parameterClass="int" resultMap="ooResult">
select
username,
password
from t_user where id=#value#
</select>

//查找t_user表,将其结果映射到一个属性名不同的对象中!
OtherObject obj = (OtherObject)sqlMapper.queryForObject("selectUserForOtherObject2", 17);
System.out.println(obj.getProp1()+","+obj.getProp2());


[b]3、将查询结果集映射为xml格式的数据[/b]
  <select id="selectXmlData" resultClass="xml" xmlResultName="User" parameterClass="int">
select * from t_user where id=#value#
</select>
<select id="selectXmlDatas" resultClass="xml" xmlResultName="User">
select * from t_user
</select>

//查找t_user表,将其结果映射到xml!
//返回值是xml形式的字符串
Object obj = (Object)sqlMapper.queryForObject("selectXmlData", 1);
System.out.println(obj);

//查找t_user表,将其结果映射到xml!
List list = (List)sqlMapper.queryForList("selectXmlDatas");
System.out.println(list);


[b]4、将查询结果集的元素转换为Map类型的对象[/b]
  <!-- 
resultClass可以定义为java.util.HashMap类型,
将能自动转换
-->
<select id="selectMapUsers" resultClass="java.util.HashMap">
select * from t_user
</select>

List list = (List)sqlMapper.queryForList("selectMapUsers");
System.out.println(list);
for (Iterator iter = list.iterator(); iter.hasNext();) {
Map map = (Map) iter.next();
//可在此输出map的数据
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值