如何将查询结果映射到不同的对象?(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的数据
}