Yo tengo estas funciones
Código Java:
Ver original/**
* @see Object[] parameters = new Object[]{new Integer(0),new
* String("CC_TMP_OMISMOR")}; Integer i =
* (Integer)executeFunction("{ ? = call p_siit_functions.getNextVal(?) }"
* ,parameters);
* @param cadena
* sql y arreglo de parametros
* @return nothing,
*/
try {
conn = dataSource.getConnection();
cstmt = conn.prepareCall(sql);
if (params != null) {
for (int i = 0; i < params.length; i++) {
if (i == 0) {
cstmt.registerOutParameter(1, resolveType(param));
} else {
cstmt.setObject(i + 1, param, resolveType(param));
}
}
}
cstmt.execute();
outPut = cstmt.getObject(1);
return outPut;
}finally{
if(cstmt!=null){
cstmt.close();
cstmt = null;
}
if(conn!=null){
conn.close();
conn = null;
}
}
}
private static int resolveType
(Object param
) { int sqlType
= Types.
VARCHAR; if (param == null) {
} else {
Class paramClass = param.getClass();
if (param
instanceof String) { } else if (paramClass.equals(double.class) ||
param
instanceof java.
sql.
Date) { } else if (paramClass.equals(int.class) ||
} else if (paramClass.equals(long.class) ||
} else if (paramClass.equals(float.class) ||
param
instanceof Float) {
}
}
return sqlType;
}
Esta hecho para correr con una base de datos Oracle, pero ya lo he probado en MySQL con un proyecto personal y me corrio muy bien, espero te sirva.