首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

试在运作期从ibatis配置文件中取<select/>标签内的sql

2012-11-15 
试在运行期从ibatis配置文件中取select/标签内的sqlibatis分页不怎么好用,不是数据库物理分页,数量大起

试在运行期从ibatis配置文件中取<select/>标签内的sql
ibatis分页不怎么好用,不是数据库物理分页,数量大起来性能下降得厉害,所以有必要依托特定数据库做分页sql的包装,因此牵扯出这样的问题,即在代码中如何从指定id的select标签中获取被动态拼装好带参数占位符(?)并被实际执行的sql语句.

昨天跟了一下代码,从getSqlMapClientTemplate一路跟到ibatis的源代码,
找到了几处关键性代码,因此提取出来,在jpetstore上试验了一下,发现可行,
所以和大家分享一下.

SqlMapClientTemplate sqlMapClientTemplate = super.getSqlMapClientTemplate();SqlMapClientImpl sqlMapClientImpl = (SqlMapClientImpl) sqlMapClientTemplate.getSqlMapClient();MappedStatement mappedStatement = sqlMapClientImpl.getMappedStatement(statementName);Sql sql = mappedStatement.getSql();RequestScope requestScope = new RequestScope();mappedStatement.initRequest(requestScope);String sqlString = sql.getSql(requestScope, parameterObject);ParameterMap parameterMap = sql.getParameterMap(requestScope,parameterObject);requestScope.setParameterMap(parameterMap);Object[] parameterArr = parameterMap.getParameterObjectValues(requestScope, parameterObject);
2 楼 pubx 2008-09-17   请参考http://blog.csdn.net/key232323/archive/2007/11/01/1862165.aspx

热点排行