Hola,
Posiblemente,
Cada variable de Java tienen una clase asignada inclusive los primitivos (auto
outboxing), lo que permite saber con exactitud el tipo de datos que contienen.
El enum classNames tendría que contener todos los tipos de clases que deseas usar y pasar a la base de datos, el método proxy se encargaría de regresar el enumerador del nombre de la clase. (Para no utilizar : if (algo == "Integer) else ... etc.) :
Código Java:
Ver originalprivate enum classNames {
}
private classNames proxy
(Object o
) { classNames name
= classNames.
Object; try {
name = classNames.valueOf(o.getClass().getSimpleName());
}
return name;
}
Con este método podrías hacer diferentes acciones dependiendo del tipo de datos que contiene el objecto "c" :
Código Java:
Ver original // Connection conn = DriverManager.getConnection("");
// CallableStatement stmt = conn.prepareCall("");
int i = 1;
switch (proxy(c)) {
case Integer: // stmt.setInt(i++, (Integer)c); break; case String: // stmt.setString(i++, (String)c); break; default: // stmt.setObject(i++, c); break;
System.
out.
println(c.
getClass().
getSimpleName()); }
}
}
Y podrías pasar la lista de valores ordenados en relación a la posición que tienen en el Statement, esto es solamente una idea básica que tendrías que mejorar para adecuarla a lo que necesitas,
Código Java:
Ver original list.
add(new String("Hello World!".
getBytes())); list.add(100L);
list.add(100);
callCallableStatement(list);
}
Saludos,