當前位置: 首頁>>代碼示例>>Java>>正文


Java QueryUtil.isProcedureCall方法代碼示例

本文整理匯總了Java中ro.nextreports.engine.util.QueryUtil.isProcedureCall方法的典型用法代碼示例。如果您正苦於以下問題:Java QueryUtil.isProcedureCall方法的具體用法?Java QueryUtil.isProcedureCall怎麽用?Java QueryUtil.isProcedureCall使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在ro.nextreports.engine.util.QueryUtil的用法示例。


在下文中一共展示了QueryUtil.isProcedureCall方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: executeQuery

import ro.nextreports.engine.util.QueryUtil; //導入方法依賴的package包/類
/**
 * Execute query This method is useful in case you are not interested about
 * report layout, but only query and you want to make your own business.
 * 
 * @return QueryResult object
 * 
 * @throws ReportRunnerException
 *             if Runner object is not correctly configured
 * @throws InterruptedException
 *             if process was interrupted
 */
public QueryResult executeQuery() throws ReportRunnerException, InterruptedException {
	if (connection == null) {
		throw new ReportRunnerException("Connection is null!");
	}
	if (report == null) {
		throw new ReportRunnerException("Report is null!");
	}

	String sql = getSql();

	// retrieves the report parameters
	Map<String, QueryParameter> parameters = getReportParameters();

	if (QueryUtil.restrictQueryExecution(sql)) {
		throw new ReportRunnerException("You are not allowed to execute queries that modify the database!");
	}

	if (QueryUtil.isProcedureCall(sql)) {
		if (!QueryUtil.isValidProcedureCall(sql, dialect)) {
			throw new ReportRunnerException("Invalid procedure call! Must be of form 'call (${P1}, ?)'");
		}
	}

	QueryResult queryResult = null;
	try {
		Query query = getQuery(sql);
		QueryExecutor executor = new QueryExecutor(query, parameters, parameterValues, connection, count, true,
				csv);
		executor.setMaxRows(0);
		executor.setTimeout(queryTimeout);

		queryResult = executor.execute();

		return queryResult;
	} catch (Exception e) {
		throw new ReportRunnerException(e);
	}

}
 
開發者ID:nextreports,項目名稱:nextreports-engine,代碼行數:51,代碼來源:ReportRunner.java

示例2: setOutParametersValues

import ro.nextreports.engine.util.QueryUtil; //導入方法依賴的package包/類
private void setOutParametersValues(PreparedStatement pstmt) throws SQLException, DialectException {
    Dialect dialect = DialectUtil.getDialect(conn);
    if (QueryUtil.isProcedureCall(query.getText())) {
        if (dialect.hasProcedureWithCursor()) {
            ((CallableStatement) pstmt).registerOutParameter(outputParameterPosition,dialect.getCursorSqlType());
        }            
    }
}
 
開發者ID:nextreports,項目名稱:nextreports-engine,代碼行數:9,代碼來源:QueryExecutor.java

示例3: createQueryString

import ro.nextreports.engine.util.QueryUtil; //導入方法依賴的package包/類
/**
 * Parse query and return a string query  that will be passed to prepared
 * statement(substitute parameter with '?' char).
 */
private String createQueryString() {
       QueryChunk[] chunks = query.getChunks();
	if ((chunks == null) || (chunks.length == 0)) {
		// no query chunks
		return "";
	}

	StringBuffer sb = new StringBuffer();
       QueryChunk chunk = null;
       int position = 1;
       for (int i = 0; i < chunks.length; i++) {
		chunk = chunks[i];
		//System.out.println("chunk = " + chunk);
		switch (chunk.getType()) {
			case QueryChunk.PARAMETER_TYPE: {
                   position++;
                   String paramName = chunk.getText();
				QueryParameter param = parameters.get(paramName);					
				if (QueryParameter.MULTIPLE_SELECTION.equals(param.getSelection())) {
					if (QueryUtil.isProcedureCall(query.getText())) {		
						sb.append("?");
					} else {
						Object[] paramValue = (Object[]) parameterValues.get(paramName);						
						sb.append('(');
						for (int j = 0; j < paramValue.length; j++) {
							if (j > 0) {
								sb.append(',');
							}
							sb.append('?');
						}
						sb.append(')');
					}
				} else {
					sb.append("?");
				}
				break;
			}
			case QueryChunk.TEXT_TYPE:
                   if (chunk.getText().contains("?")) {
                       outputParameterPosition = position;                        
                   }
               default: {
				sb.append(chunk.getText());
				break;
			}
		}
	}        
       return sb.toString();
}
 
開發者ID:nextreports,項目名稱:nextreports-engine,代碼行數:54,代碼來源:QueryExecutor.java


注:本文中的ro.nextreports.engine.util.QueryUtil.isProcedureCall方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。