读书人

运作期从ibatis配置文件中获取sql 的两

发布时间: 2012-07-28 12:25:13 作者: rapoo

运行期从ibatis配置文件中获取sql 的两种方法

1.通过SqlMapClientDaoSupport,SqlMapClientImpl,MappedStatement,Sql,RequestScope等ibatis提供的类

?

/** * 获得sql * @param db 通过它获取SqlMapClient * @param param sql里面的参数 * @param sqlName Statement的ID * @return */public String getCurrSql(DBOperation db,Map<String, String> param,String sqlName) {String sql = null;SqlMapClientImpl sqlmap = (SqlMapClientImpl) db.getSqlMapClient();MappedStatement stmt = sqlmap.getMappedStatement(sqlName);Sql stmtSql = stmt.getSql();  RequestScope requestScope = new RequestScope();requestScope.setStatement(stmt);sql = stmtSql.getSql(requestScope, param);return sql; }

?

2.通过SqlMapExecutorDelegate,MappedStatement,Sql,RequestScope等ibatis提供的类

/** * 获得sql * @param db 通过它获取SqlMapClient * @param param sql里面的参数 * @param sqlName Statement的ID * @return */public String getCurrSqlTwo(DBOperation db,Map<String, String> param,String sqlName) {SqlMapExecutorDelegate delegate=((ExtendedSqlMapClient)(db.getSqlMapClient())).getDelegate();     MappedStatement ms = delegate.getMappedStatement(sqlName);   Sql sql=ms.getSql(); RequestScope requestScope = new RequestScope();requestScope.setStatement(ms);String sqlStr = sql.getSql(requestScope,param); return sqlStr;}
?

?

读书人网 >SQL Server

热点推荐