可用方法
getClause
语 法: public static java.lang.String getClause(java.lang.String sql, int key)
参数说明: sql - 需要分析的SQL语句 key - 检索子句对应的关键字,请参阅API文档
功能说明: 获取SQL中的子句
Returns : SQL子句
调用举例: String SQL = “select id,name from table where id = ‘0001’” //以下取where子句,返回id=’0001’ String sqlClause = SQLParser.getClause(SQL, SQLParser.KEY_WHERE)
getClause
语 法: public java.lang.String getClause(int key)
参数说明: key - 检索子句对应的关键字,请参阅API文档
功能说明: 获取SQL中的子句
Returns : SQL子句
调用举例: String SQL = “select id,name from table where id = ‘0001’” SQLParser sqlParse = new SQLParser(SQL); //以下取where子句,返回id=’0001’ String sqlClause = sqlParse.getClause(SQLParser.KEY_WHERE)
modify
语 法: public static java.lang.String modify(java.lang.String sql, int key, java.lang.String clause)
参数说明: sql - 需要分析的SQL语句 key - 需要修改子句的关键字 clause - 用于替换的子句
功能说明: 修改指定SQL语句中指定的子句
Returns : 修改后的SQL语句
调用举例: //获得报表定义中的数据集元对象 DataSetMetaData dsmd = reportDefine. getDataSetMetaData(); //取到需要修改的数据集对象 SQLDataSetConfig sdsc = (SQLDataSetConfig)dsmd.get( 1 ); //取得数据集对象中的SQL String sql = sdsc.getSQL(); String where = "student.id=scores.id and student.class=2 and student.sex='1'"; //替换SQL中的where条件 sql = SQLParser.modify( sql, SQLParser.KEY_WHERE, where ); //将修改后的SQL设置到数据集对象中 sdsc.setSQL( sql );
mergeWhere
语 法: public static java.lang.String mergeWhere(java.lang.String sql, java.lang.String where)
参数说明: sql - 需要合并WHERE子句的SQL语句 where - 要加入的WHERE条件
功能说明: 将条件表达式合并进SQL语句中的WHERE子句
Returns : 合并后的SQL语句
调用举例: 略