Tener rs
, una instancia de java.sql.ResultSet, cómo comprobar que contiene una columna llamada "theColumn"?¿Cómo comprobar que un ResultSet contiene un campo específicamente nombrado?
Respuesta
Puede utilizar ResultSetMetaData para iterar a través de las columnas de ResultSet y ver si la columna nombre coincide con su nombre de columna especificado.
Ejemplo:
ResultSetMetaData rsMetaData = rs.getMetaData();
int numberOfColumns = rsMetaData.getColumnCount();
// get the column names; column indexes start from 1
for (int i = 1; i < numberOfColumns + 1; i++) {
String columnName = rsMetaData.getColumnName(i);
// Get the name of the column's table name
if ("theColumn".equals(columnName)) {
System.out.println("Bingo!");
}
}
@Ivan, tenga en cuenta que hay algunas complejidades si usa un alias (SELECCIONE col AS foo). http://bugs.mysql.com/bug.php?id=43684 –
@JoshuaMartell, 'ResultSetMetaData.getColumnLabel' se puede utilizar si está interesado en obtener el nombre definido por la cláusula' AS' de la consulta SQL – Santosh
Trate de usar el método ResultSet#findColumn(String)
private boolean isThere(ResultSet rs, String column)
{
try
{
rs.findColumn(column);
return true;
} catch (SQLException sqlex)
{
logger.debug("column doesn't exist {}", column);
}
return false;
}
¿No son lentas las excepciones? – Ivan
Se puede comparar con una ejecución regular de Java. Tenga en cuenta que, por lo general, el cuello de botella no es el código de Java sino el delgadez que se está ejecutando en el otro lado: la base de datos. Lo más probable es que la ejecución de la consulta y el transporte de datos sean pocos órdenes de magnitud más lentos que el manejo de excepciones. –
Este método funciona bien con alias en mysql. – bancer
que puede hacer:
rs.findColumn("theColum")
y comprobar si SQLException
Sí, la manera más fácil que creo es tratar de recuperar la columna de una forma u otra y atrapar la excepción. – Jay
esto es generalmente una mala solución ya que a sabiendas lanza una excepción para un caso común, lanzar excepciones es raro y costoso en términos de recursos –
utilizar el objeto ResultSetMetaData proporcionado por el objeto ResultSet
través rs.getMetaData()
Utilice la clase ResultSetMetaData
.
public static boolean hasColumn(ResultSet rs, String columnName) throws SQLException {
ResultSetMetaData rsmd = rs.getMetaData();
int columns = rsmd.getColumnCount();
for (int x = 1; x <= columns; x++) {
if (columnName.equals(rsmd.getColumnName(x))) {
return true;
}
}
return false;
}
- 1. ¿Cómo comprobar si existe un directorio que contiene un archivo?
- 2. Rieles: cómo buscar_por un campo que contiene una cierta cadena
- 3. Cómo comprobar si un int var contiene un número específico
- 4. Cómo agregar un atributo que contiene un guión a un campo WTForms
- 5. ¿Cómo comprobar si un parámetro contiene dos subcadenas utilizando Mockito?
- 6. Android: ¿Cómo comprobar si una ruta contiene un punto tocado?
- 7. ¿Cómo comprobar si una tabla contiene un elemento en Lua?
- 8. ¿Cómo comprobar en MATLAB si un vector solo contiene ceros?
- 9. comprobar si un std :: vector contiene un determinado objeto?
- 10. Java: cómo comprobar si un campo es del tipo java.util.Collection
- 11. Restricción ÚNICA, solo cuando un campo contiene un valor específico
- 12. ¿Cómo llamo a un método dinámicamente nombrado en Javascript?
- 13. ¿Cómo comprobar que NSString contiene el '%' o no?
- 14. Cómo comprobar que la cadena contiene caracteres especiales en ruby
- 15. Javascript: Comprobar si la página contiene un div en particular
- 16. Cómo insertar una cadena que contiene un "&"
- 17. Comprobar si una Lista ya contiene un elemento o no?
- 18. ¿Cómo obtener el número de columnas de un ResultSet JDBC?
- 19. ¿Cómo comprobar que una matriz contiene un valor particular en Scala 2.8?
- 20. Usando StreamReader para comprobar si un archivo contiene una cadena
- 21. ¿Cómo funciona un bucle for, específicamente para (;;)?
- 22. cómo comprobar si la cadena contiene carácter '+'
- 23. formas de comprobar si un ArrayList contiene sólo valores nulos
- 24. Constructor para un no-nombrado estructura
- 25. ¿Cómo comprobar que una cadena comience con un número numérico?
- 26. Indica a gcc que desenrolle específicamente un ciclo
- 27. Cómo persistir una entidad que contiene un campo de tipo de usuario usando JPA2
- 28. Cómo hacer un NSURL que contiene un | (personaje de tubería)?
- 29. ¿Cómo comprobar si un NSArray contiene un objeto de una clase en particular?
- 30. Ruby: ¿Cómo comprobar si una cadena contiene varios elementos?
posible duplicado de [¿Cómo puedo determinar si el nombre de la columna existe en el conjunto de resultados?] (Http://stackoverflow.com/questions/3599861/how-can-i-determine-if-the- column-name-exist-in-the-resultset) – Riduidel
posible duplicado de [¿Cómo puedo verificar para ver si existe un nombre de columna en un CachedRowSet?] (http://stackoverflow.com/questions/462534/how-do- i-check-to-see-if-a-column-name-exists-in-a-cachedrowset) – bluish