本文整理汇总了Java中java.sql.DatabaseMetaData.procedureColumnUnknown方法的典型用法代码示例。如果您正苦于以下问题:Java DatabaseMetaData.procedureColumnUnknown方法的具体用法?Java DatabaseMetaData.procedureColumnUnknown怎么用?Java DatabaseMetaData.procedureColumnUnknown使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类java.sql.DatabaseMetaData
的用法示例。
在下文中一共展示了DatabaseMetaData.procedureColumnUnknown方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: prepareParameters
import java.sql.DatabaseMetaData; //导入方法依赖的package包/类
private void prepareParameters(PreparedStatement preparedStatement, SqlQueryInfos sqlQueryInfos) throws SQLException{
Map<String, String> values = sqlQueryInfos.getParametersMap();
List<Map<String, Object>> parameterList = getProcedureParameters(connection, sqlQueryInfos);
int i = 1;
for (Map<String, Object> parameterMap : parameterList) {
boolean isIn = false, isOut = false;
String param_name = (String) parameterMap.get("COLUMN_NAME");
int param_mode = (Integer) parameterMap.get("COLUMN_TYPE");
int param_type = (Integer) parameterMap.get("DATA_TYPE");
switch (param_mode) {
case DatabaseMetaData.procedureColumnIn :
isIn = true;
break;
case DatabaseMetaData.procedureColumnInOut :
isIn = true; isOut = true;
break;
case DatabaseMetaData.procedureColumnOut :
case DatabaseMetaData.procedureColumnReturn :
case DatabaseMetaData.procedureColumnResult :
isOut = true;
break;
case DatabaseMetaData.procedureColumnUnknown :
default :
break;
}
if (isOut) {
Engine.logBeans.trace("[SqlConnector] Registering OUT parameter at index "+i);
((CallableStatement)preparedStatement).registerOutParameter(i, param_type);
}
if (isIn) {
Engine.logBeans.trace("[SqlConnector] Setting IN parameter at index "+i);
Object java_value = null;
try {
String param_in = StringUtils.normalize(param_name);
java_value = getParameterJavaValue(param_type, values.get(param_in));
if (java_value == null) {// param name differs from variable name
List<String> params = sqlQueryInfos.getOrderedParametersList();
int j = parameterList.size() - values.size();
java_value = getParameterJavaValue(param_type, values.get(params.get(i-j-1)));
}
preparedStatement.setObject(i , java_value);
} catch (Exception e) {
Engine.logBeans.warn("[SqlConnector] Error generating value for parameter at index "+i, e);
preparedStatement.setNull(i, Types.OTHER);
}
}
i++;
}
Engine.logBeans.trace("[SqlConnector] Preparing statement done");
}
示例2: createSqlTransaction
import java.sql.DatabaseMetaData; //导入方法依赖的package包/类
public static SqlTransaction createSqlTransaction(SqlConnector sqlConnector, String callableName, String specific_name) throws EngineException, ClassNotFoundException, SQLException {
SqlTransaction sqlTransaction = null;
if (sqlConnector != null && !callableName.isEmpty()) {
// get a connection
sqlConnector.open();
// Create transaction
sqlTransaction = sqlConnector.newTransaction();
sqlTransaction.setName("Call_"+StringUtils.normalize(callableName));
sqlTransaction.hasChanged = true;
sqlTransaction.bNew = true;
// Build sqlQuery and retrieve parameters
boolean isFunction = false;
String sqlQuery = "CALL "+ callableName +"(";
Connection connection = sqlConnector.connection;
List<Map<String, Object>> parameterList = getProcedureParameters(connection, callableName);
for (Map<String, Object> parameterMap : parameterList) {
String proc_specific_name = (String) parameterMap.get("SPECIFIC_NAME");
if (specific_name.equals(proc_specific_name)) {
String param_name = (String) parameterMap.get("COLUMN_NAME");
int param_mode = (Integer) parameterMap.get("COLUMN_TYPE");
//int param_type = (Integer) parameterMap.get("DATA_TYPE");
switch(param_mode) {
case DatabaseMetaData.procedureColumnReturn :
case DatabaseMetaData.procedureColumnResult :
isFunction = true;
break;
case DatabaseMetaData.procedureColumnIn :
case DatabaseMetaData.procedureColumnInOut :
// update query and create input variable
if (param_name != null && !param_name.isEmpty()) {
RequestableVariable variable = new RequestableVariable();
variable.setName(StringUtils.normalize(param_name));
variable.hasChanged = true;
variable.bNew = true;
sqlQuery += sqlQuery.endsWith("(") ? "":",";
sqlQuery += "{"+ variable.getName()+"}";
sqlTransaction.addVariable(variable);
}
else {
sqlQuery += sqlQuery.endsWith("(") ? "?":",?";
}
break;
case DatabaseMetaData.procedureColumnOut :
sqlQuery += sqlQuery.endsWith("(") ? "?":",?";
break;
case DatabaseMetaData.procedureColumnUnknown :
default :
break;
}
}
}
sqlQuery += ")";
if (isFunction) {
sqlQuery = "? = "+ sqlQuery;
}
sqlQuery = "{"+sqlQuery+"}";
sqlTransaction.setSqlQuery(sqlQuery);
// close connection
sqlConnector.close();
}
return sqlTransaction;
}