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

IBatis怎么获取解析后的SQL语句和占位符参数

2012-08-15 
IBatis如何获取解析后的SQL语句和占位符参数?获取IBatis中指定SQLID的SQL解析结果(根据传入参数解析后的SQ

IBatis如何获取解析后的SQL语句和占位符参数

?获取IBatis中指定SQLID的SQL解析结果(根据传入参数解析后的SQL语句和占位符参数数组)

?

SqlMapClient本身是没有方法获取SQL的解析结果的,必须将SqlMapClient对象强制转换成SqlMapClientImpl类型,然后传入SQLID和参数就可以获取到了,具体如下代码(sqlId为要解析的SQL对应的ID,params为传入的参数):

?

?

SqlMapClientImpl sci = (SqlMapClientImpl)this.sqlMapClient;MappedStatement ms = sci.getMappedStatement(sqlId);Sql sql = ms.getSql();        SessionScope sessionScope = new SessionScope();     sessionScope.incrementRequestStackDepth();     StatementScope statementScope = new StatementScope(sessionScope);     ms.initRequest(statementScope);    ms.getCacheKey(statementScope, params);       String sqlString = sql.getSql(statementScope, params);          Object[] sqlParam = sql.getParameterMap(statementScope, params).getParameterObjectValues(statementScope, params);

热点排行