ibatis 使用介绍03

本文介绍MyBatis中查询结果映射至不同对象的方法,包括使用resultMap映射属性名称不同的对象,将查询结果映射为XML格式,以及如何使用Map作为参数和将结果映射为Map对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何将查询结果映射到不同的对象?(resultClass的使用)

如何将查询结果集映射到不同的对象?(resultMap的基本使用)

 <resultMap class="com.ysen.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());
  
如何将查询结果集映射为xml格式的数据?

<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);

 如何用Map类型的对象作为传入参数?

 <!-- 
  这里,可以使用全路径类名,如:
  java.util.Map
  java.util.HashMap
  java.util.TreeMap
  或
  map
  -->
  <insert id="insertUser" parameterClass="map">
  	insert into t_user values (
  		null,#username#,#password#
  	)
  </insert>
 

	Map user = new TreeMap();
		user.put("username", "Map用户");
		user.put("password", "Map用户密码");
		sqlMapper.insert("insertUser",user);

如何将查询结果集的元素转换为Map类型的对象?

<!-- 
  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的数据
		}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值