利用Spring JDBC和模板框架实现SQL可配置

!!利用SPRING JDBC 和模板框架实现SQL可配置!

入参是Map<String,Object>, 查询返回结果List<Map>

实现功能:

1.主要实现查询功能和SQL可配置化:

2.配置信息可多数据源存储(XML,DATABASE,TXT),可热部署,

3.缓存控制与刷新;

4.物理分页

与MYBATIS比较功能单一了 ,

特点:配置信息可多数据源存储(XML,DATABASE,TXT),可热部署;

简单的添加Dialect 的实现类,进行配置就可实现不同数据库的物理分页;

见org.myframework.jdbc.MyBatis

Java代码  收藏代码
  1. /**
  2.      * 查询所有记录
  3.      *
  4.      * @param mapperId
  5.      * @param map
  6.      * @return
  7.      * @throws Exception
  8.      */
  9.     public List<Map<String, Object>> selectAllList(String sqlKey,
  10.             Map<String, Object> map) {
  11.         SqlMapper sqlMapper = sqlTemplate.getSqlMapper(sqlKey);
  12.         String cacheKey = getCacheKey(sqlKey, map);
  13.         if (sqlMapper == null) {
  14.             throw new RuntimeException("load sqlconfig error :" + sqlKey);
  15.         }
  16.         if (sqlMapper.isFlushCache()) {
  17.             dataCache.removeObject(cacheKey);
  18.         }
  19.         if (sqlMapper.isUseCache()) {
  20.             if (dataCache.getObject(cacheKey) != null) {
  21.                 log.debug("load from cacheKey : " + cacheKey);
  22.                 return (List<Map<String, Object>>) dataCache
  23.                         .getObject(cacheKey);
  24.             } else {
  25.                 log.debug("reload   cacheKey : " + cacheKey);
  26.                 List<Map<String, Object>> rs = this.queryForList(
  27.                         sqlTemplate.getSql(sqlKey, map), map);
  28.                 dataCache.putObject(cacheKey, rs);
  29.                 return rs;
  30.             }
  31.         } else {
  32.             List<Map<String, Object>> rs = this.queryForList(
  33.                     sqlTemplate.getSql(sqlKey, map), map);
  34.             return rs;
  35.         }
  36.     }

http://www.iteye.com/topic/1119163

  1. da shang
    donate-alipay
               donate-weixin weixinpay

发表评论↓↓