« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 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")); } }
} |
|
|