当前位置: 代码迷 >> SQL >> iBATIS 怎么对sql 输出结果的映射
  详细解决方案

iBATIS 怎么对sql 输出结果的映射

热度:91   发布时间:2016-05-05 13:18:23.0
iBATIS 如何对sql 输出结果的映射
如何对输出结果进行映射:
1、将查询结果映射到不同的对象(resultClass的使用)
2、将查询结果集映射到不同的对象(resultMap的基本使用)
3、将查询结果集映射为xml格式的数据
4、将查询结果集的元素转换为Map类型的对象

1、将查询结果映射到不同的对象(resultClass的使用)
  <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());



2、将查询结果集映射到不同的对象(resultMap的基本使用)
 
<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());


3、将查询结果集映射为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);


4、将查询结果集的元素转换为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的数据		}



  相关解决方案