ibatis resultMap 结果集映射

1、结果集映射

  就是将返回的记录,逐个字段映射到java对象上;如果数据库字段与java对象的成员变量名对应的话,则使用resultClas即可

2、实现

  结合 ibatis初探这篇文章中提到的project 修改以下文件:

  

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
    <typeAlias alias = "user" type = "com.jiexun.User" />
    
    <resultMap class="user" id="dbUser">
        <!--property值 是类的成员名,column 是数据库字段名  -->
        <result property="userId" column="id" jdbcType="int" />
        <result property="userName" column="name" jdbcType="varchar" />
    </resultMap>

    <select id="getUser" parameterClass = "int" resultMap="dbUser">
        select * from user where user.id = #id#
    </select>
    
    <!-- 对象传参 user的属性中有id name 成员变量 -->
    <insert id="addUser" parameterClass="user">
        insert into user values(#id#,#name#)
    </insert>
    
    <!-- Map传参 -->
    <insert id="addUser2" parameterClass="java.util.HashMap">
        insert into user values(#id#,#name#)
    </insert>
</sqlMap>
user.xml

user类主要是修改了成员名,以便有鲜明的对比

package com.jiexun;

public class User {
    public int userId;
    public String userName;
    public int getId() {
        return userId;
    }
    public void setId(int id) {
        this.userId = id;
    }
    public String getName() {
        return userName;
    }
    public void setName(String name) {
        this.userName = name;
    }
}
com.jiexun.User
import java.io.Reader;
import java.util.HashMap;
import java.util.List;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.jiexun.User;


public class testIbatis {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception{
        // TODO Auto-generated method stub
        int id = 1002;
        User newUser = new User();
        newUser.setId(1001);
        newUser.setName("LS");
        
        String config = "com/jiexun/xml/ibatis.xml";
        Reader reader = Resources.getResourceAsReader(config);   
        SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);  
        //对象传参 插入
//        Object obj = sqlMap.insert("addUser",newUser);
//        System.out.println("插入新用户返回值:" + obj);
//        
//        //Map传参 插入
//        HashMap paraMap = new HashMap<String, Object>();
//        paraMap.put("id", "1002");
//        paraMap.put("name", "WWN");
//        Object obj2 =sqlMap.insert("addUser2",paraMap);
        
        //查询
        List<User> list = (List<User>)sqlMap.queryForList("getUser",id);
        System.out.println("执行select完毕");
        for (User user : list) {  
            System.out.println(user.userId + ": " + user.userName);  
        }
        

    }

}
testIbatis

  

原文地址:https://www.cnblogs.com/tengpan-cn/p/5332796.html