Ibatis的使用-II(MapBean的通用格式)

现在使用自定义的MapBean通用格式,在上述的<Ibatis的使用-I>中代码修改,对数据库作操作:

 

MapBean.java类如下:

package com.test;

import java.sql.Timestamp;
import java.util.HashMap;

public class MapBean extends HashMap<String, Object> {
    public MapBean() {
    }
 
    public MapBean(Object... args) {
        put(args);
    }
 
    public int getInt(Object key) {
        return getInt(key, 0);
    }
 
    public int getInt(Object key, int defaultInt) {
        Integer i = (Integer) get(key);
        return i == null ? defaultInt : i;
    }
 
    public String getString(Object key) {
        return (String) get(key);
    }
 
    public String getString(Object key, String defaultValue) {
        String value = (String) get(key);
        return value == null ? defaultValue : value;
    }
 
    public Timestamp getTimestamp(Object key) {
        return (Timestamp) get(key);
    }
 
    public void put(Object... args) {
        for (int i = 1; i < args.length; i += 2) {
            put(String.valueOf(args[i - 1]), args[i]);
        }
    }
}

 

user.xml中增加如下代码:

<typeAlias alias="mapbean" type="com.test.MapBean" />

<select id="selectUserByName" parameterClass="mapbean" resultClass="mapbean">
      <![CDATA[
          select * from users where username=#username#
      ]]>
 </select>

 

最后,我们的测试端Main函数中编写如下代码:

package com.test;

import java.sql.SQLException;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

import com.dao.IbatisFactory;
import com.entity.User;
import com.ibatis.sqlmap.client.SqlMapClient;

public class IbatisTest {
    public static void main(String[] args)
    {
        SqlMapClient sqlMap = IbatisFactory.getSqlMap();
        MapBean params = new MapBean("username","aa");
       
        try {
            Iterator<MapBean> it = sqlMap.queryForList("selectUserByName", params).iterator();
            while(it.hasNext())
            {
                MapBean tb = it.next();
                for(Iterator i = tb.entrySet().iterator();i.hasNext();)
                {
                    Map.Entry e = (Entry) i.next();
                    System.out.println(e.getKey().toString() + e.getValue().toString());
                }
                System.out.println("/n");
            }
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值