!!利用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
[img]http://dl.iteye.com/upload/attachment/609543/5cec3e5a-428a-36c3-a124-fa63296684a8.jpg[/img]
入参是Map<String,Object>, 查询返回结果List<Map>
实现功能:
1.主要实现查询功能和SQL可配置化:
2.配置信息可多数据源存储(XML,DATABASE,TXT),可热部署,
3.缓存控制与刷新;
4.物理分页
与MYBATIS比较功能单一了 ,
特点:配置信息可多数据源存储(XML,DATABASE,TXT),可热部署;
简单的添加Dialect 的实现类,进行配置就可实现不同数据库的物理分页;
见org.myframework.jdbc.MyBatis
/**
* 查询所有记录
*
* @param mapperId
* @param map
* @return
* @throws Exception
*/
public List<Map<String, Object>> selectAllList(String sqlKey,
Map<String, Object> map) {
SqlMapper sqlMapper = sqlTemplate.getSqlMapper(sqlKey);
String cacheKey = getCacheKey(sqlKey, map);
if (sqlMapper == null) {
throw new RuntimeException("load sqlconfig error :" + sqlKey);
}
if (sqlMapper.isFlushCache()) {
dataCache.removeObject(cacheKey);
}
if (sqlMapper.isUseCache()) {
if (dataCache.getObject(cacheKey) != null) {
log.debug("load from cacheKey : " + cacheKey);
return (List<Map<String, Object>>) dataCache
.getObject(cacheKey);
} else {
log.debug("reload cacheKey : " + cacheKey);
List<Map<String, Object>> rs = this.queryForList(
sqlTemplate.getSql(sqlKey, map), map);
dataCache.putObject(cacheKey, rs);
return rs;
}
} else {
List<Map<String, Object>> rs = this.queryForList(
sqlTemplate.getSql(sqlKey, map), map);
return rs;
}
}
[img]http://dl.iteye.com/upload/attachment/609543/5cec3e5a-428a-36c3-a124-fa63296684a8.jpg[/img]