本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告

戒除浮躁,读好书,交益友


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:邢红瑞的blog
日志总数:523
评论数量:1142
留言数量:0
访问次数:9696419
建立时间:2004年12月20日




[java语言]实现ibatis的查询处理 
原创空间,  软件技术,  电脑与网络

邢红瑞 发表于 2006/7/18 10:19:09

import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory; import java.util.*; /** * Created by IntelliJ IDEA. * User: 邢红瑞 * Date: 2006-12-19 * Time: 16:18:34 * To change this template use File | Settings | File Templates. */public class DBDao extends AbstractDBDao{    private static Log log = LogFactory.getLog(DBDao.class);     public Map update(Map dataMapForUpdate, boolean validateParaOnly) {        setParamMap(dataMapForUpdate);        int result = getNamedParameterJdbcTemplate().update(dealwtithsql(getUpdatesqlstring()), dataMapForUpdate);        return CreateMap(result);    }     public List<Map> queryMaps(Map condMapForQuery, boolean validateParaOnly) {        setParamMap(condMapForQuery);        String str= dealwtithsql(getSqlstring());        log.debug(str);        //getNamedParameterJdbcTemplate().                return getNamedParameterJdbcTemplate().queryForList(str, condMapForQuery);    }     public Map queryCount(Map condMapForQuery,boolean validateParaOnly){        setParamMap(condMapForQuery);        String str= dealwtithsql(getSlectCountString());        log.debug(str);        return getNamedParameterJdbcTemplate().queryForMap(str, condMapForQuery);    }        public static Map CreateMap(int result) {        Map map = new HashMap();        map.put("result", new Integer(result));        return map;    }     public Map remove(Map dataMapForRemove, boolean validateParaOnly) {        setParamMap(dataMapForRemove);        int result = getNamedParameterJdbcTemplate().update(dealwtithsql(getDetelesqlstring()), dataMapForRemove);        return CreateMap(result);    }     public Map insert(Map dataMapForInsert, boolean validateParaOnly) {        setParamMap(dataMapForInsert);        String str = dealwtithsql(getInsertsqlstring());                int result = getNamedParameterJdbcTemplate().update(str, dataMapForInsert);        return CreateMap(result);    }} import org.springframework.jdbc.core.namedparam.NamedParameterJdbcDaoSupport;import org.apache.commons.logging.LogFactory;import org.apache.commons.logging.Log; import java.util.Map;import java.util.Iterator; /** * Created by IntelliJ IDEA. * User: 邢红瑞 * Date: 2005-12-19 * Time: 15:36:52 * To change this template use File | Settings | File Templates. */public class AbstractDBDao extends NamedParameterJdbcDaoSupport {    private static Log log = LogFactory.getLog(AbstractDBDao.class);     public AbstractDBDao() {        this.sqlstring = null;        this.detelesqlstring = null;        this.insertsqlstring = null;        this.updatesqlstring = null;    }     public String getSqlstring() {        return sqlstring;    }     public void setSqlstring(String sqlstring) {        this.sqlstring = sqlstring;    }     private String sqlstring;     public String getDetelesqlstring() {        return detelesqlstring;    }     public void setDetelesqlstring(String detelesqlstring) {        this.detelesqlstring = detelesqlstring;    }     private String slectCountString;        /**  * @return the slectCountString  */ public final String getSlectCountString() {  return slectCountString; }  /**  * @param slectCountString the slectCountString to set  */ public final void setSlectCountString(String slectCountString) {  this.slectCountString = slectCountString; }         private String detelesqlstring;     public String getInsertsqlstring() {        return insertsqlstring;    }     public void setInsertsqlstring(String insertsqlstring) {        this.insertsqlstring = insertsqlstring;    }     private String insertsqlstring;     public String getUpdatesqlstring() {        return updatesqlstring;    }     public void setUpdatesqlstring(String updatesqlstring) {        this.updatesqlstring = updatesqlstring;    }     private String updatesqlstring;     public Map getParamMap() {        return paramMap;    }     public void setParamMap(Map paramMap) {        this.paramMap = paramMap;    }     private Map paramMap;     public String dealwtithsql(String sqlstr) {     if (paramMap != null) {   Iterator it = paramMap.keySet().iterator();    while (it.hasNext()) {    String parametername = (String) it.next();    if (parametername != null      && sqlstr.indexOf(parametername) != -1) {     String o = (String) paramMap.get(parametername);     sqlstr = sqlstr.replaceAll("#" + parametername + "#", o);    }   }  }  log.debug(sqlstr);  return sqlstr;    }     public boolean validateparameter() {        return true;    }  }参数使用#count# 处理的,使用时构建map将参数传入即可使用spring的配置 <bean id="abcdaoimpl" class="com.tantan.module.DBDao" lazy-init="true">        <property name="dataSource">   <ref local="logdataSource"/>        </property>  <property name="sqlstring">           <value>              <![CDATA[select top #count#  * from #table# ]>           </value>        </property>    </bean>测试用例import junit.framework.TestCase; import java.util.Map;import java.util.HashMap; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;import org.springframework.jdbc.core.namedparam.NamedParameterUtils; /** * Created by IntelliJ IDEA. * User: 邢红瑞 * Date: 2006-12-19 * Time: 16:44:59 * To change this template use File | Settings | File Templates. */public class AbstractDBDaoTest  extends TestCase {    public void testdealwtithsql() {  String a="wqwqtqwtqttqtq   32 t23 #123#sgje #abc#";        Map map=new HashMap();        map.put("abc","def");        map.put("123","456");        AbstractDBDao ab=new  AbstractDBDao();        ab.setParamMap(map);        ab.setSqlstring(a);        System.out.println(ab.dealwtithsql(a));    }     public void testprocname() {  String a="wqwqtqwtqttqtq :efg  32 t23 :abc sgje ";        Map map=new HashMap();        map.put("abc","def");         map.put("efg","qqqqqqq");        Object tt[]=NamedParameterUtils.buildValueArray(a,map);         for(int i=0;i<tt.length;i++)         {             System.out.println(tt[i]);         }         System.out.println(NamedParameterUtils.substituteNamedParameters(a,new MapSqlParameterSource(map)));    }}import junit.framework.TestCase;import org.springframework.beans.factory.xml.XmlBeanFactory;import org.springframework.core.io.ClassPathResource; import java.util.Map;import java.util.HashMap;import java.util.List;import java.util.Iterator; /** * Created by IntelliJ IDEA. * User: 邢红瑞 * Date: 2006-12-19 * Time: 17:31:12 * To change this template use File | Settings | File Templates. */public class CommonDBDaoTest extends TestCase {    ClassPathResource classPathResource;    XmlBeanFactory beanFactory;     protected void setUp() throws Exception {        classPathResource = new ClassPathResource(                "applicationContext.xml");        beanFactory = new XmlBeanFactory(classPathResource);    }     public void querymap() {         CommonDBDao libraryDao = (CommonDBDao) beanFactory.getBean("syslogdaoimpl");        Map map = new HashMap();        map.put("table", "L_ips_tb");        map.put("cond", "id > 1");        map.put("count", "100");        map.put("start", "1001");        map.put("id", "1001");        map.put("field", "id as ID");              List ls = libraryDao.queryMaps(map, false);        Iterator it = ls.iterator();        while (it.hasNext()) {            Map ma = (Map) it.next();            System.out.println(ma.get("ID"));        }    }     }


阅读全文(4781) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144780010 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号