`
yheye
  • 浏览: 65822 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

运行期从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;
	}
 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics