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

以下是ibatis2及其之前的写法,在mybatis中。parameterClass被改成了parameterType resultClass被改成了resultType


如何对输出结果进行映射:
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的数据
		}




你可能感兴趣的:(java,sql,xml,ibatis)