Mit rs
, eine Instanz von java.sql.ResultSet, wie Sie überprüfen, dass es eine Spalte namens "theColumn" enthält?Wie überprüft man, ob ein ResultSet ein speziell benanntes Feld enthält?
Antwort
können Sie ResultSetMetaData verwenden, um durch die ResultSet Spalten zu durchlaufen und sehen, ob die Spalte name entspricht dem angegebenen Spaltennamen.
Beispiel:
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, beachten Sie, dass es einige Komplexitäten gibt, wenn Sie einen Alias verwenden (SELECT col AS foo). http://bugs.mysql.com/bug.php?id=43684 –
@JoshuaMartell, 'ResultSetMetaData.getColumnLabel' kann verwendet werden, wenn der Name von der AS-Klausel der SQL-Abfrage definiert werden soll – Santosh
Versuchen Sie, die Methode 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;
}
Sind Ausnahmen nicht langsam? – Ivan
Es kann mit einer regulären Ausführung von Java verglichen werden. Bedenken Sie, dass der Flaschenhals normalerweise nicht der Java-Code ist, sondern die Thins, die auf der anderen Seite laufen - die Datenbank. Höchstwahrscheinlich ist die Ausführung der Abfrage und des Transports von Daten um einige Größenordnungen langsamer als die Behandlung von Ausnahmebedingungen. –
Diese Methode funktioniert gut mit Aliasen in MySQL. – bancer
Sie tun können:
rs.findColumn("theColum")
und prüfen SQLException
Ja, der einfachste Weg, den ich denke, ist, einfach versuchen, die Spalte auf die eine oder andere Weise abzurufen und die Ausnahme zu fangen. – Jay
Dies ist im Allgemeinen eine schlechte Lösung, da Sie wissentlich eine Exception für einen häufigen Fall werfen, Exceptions werfen ist in seltenen Fällen und ist in Bezug auf Ressourcen teuer –
Verwenden Sie die ResultSetMetaData Aufgabe durch das ResultSet
Objekt vorgesehen, über rs.getMetaData()
Verwenden der ResultSetMetaData
Klasse.
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. Wie überprüft man, ob ein String ein bestimmtes Zeichen enthält?
- 2. Wie überprüft man, ob ein Element ein spezifisches Klassenattribut enthält
- 3. Wie überprüft man, ob ein String ein int enthält? -Swift
- 4. Wie überprüft man, ob ein Lesezeichen eine Tabelle enthält?
- 5. Wie überprüft man, ob ein Objekt einen Wert enthält?
- 6. Wie überprüft man, ob ein TextView eine bestimmte Zeichenfolge enthält
- 7. Winkelmesser - wie überprüft man, ob ein Element Text enthält
- 8. Wie überprüft man, ob ein Feld deklariert wurde oder nicht?
- 9. Wie überprüft man, ob ein bestimmtes Feld einen Fehler in Django enthält?
- 10. Wie überprüft man, ob ein Registrierungsschlüssel existiert
- 11. Wie überprüft man, ob ein Pfad existiert?
- 12. Wie überprüft man, ob ein Diktatwert ein Wort/eine Zeichenfolge enthält?
- 13. Wie überprüft man, ob ein String mindestens ein Alphabet in Java enthält?
- 14. Wie überprüft man, ob ein Tupel ein Element in Python enthält?
- 15. Wie überprüft man, ob ein Zeichen ein Apostroph ist?
- 16. Wie überprüft man, ob ein Java-Zeichen ein Währungssymbol ist
- 17. C - Wie überprüft man, ob ein Prozess ein Systemprozess ist?
- 18. Wie überprüft man, ob ein Wort ein Palindrom ist?
- 19. Wie überprüft man, ob ein Datum abgelaufen ist (PHP)
- 20. Wie überprüft man, ob ein Objekt "tief leer" ist?
- 21. Wie überprüft man, ob Array ein Min-Heap ist?
- 22. Wie überprüft man, ob ein Fensterstil in einem Hexadezimalformat existiert?
- 23. Hibernate Envers: Wie überprüft man, ob sich ein Feld zwischen zwei Revisionen geändert hat?
- 24. Wie überprüft man, ob ein Modul in Lua existiert?
- 25. Wie überprüft man, ob ein eval-Name nicht definiert ist
- 26. CONSTRUCT in ein benanntes Diagramm
- 27. Wie überprüft man, ob das erforderliche Attribut auf ein Feld gesetzt ist
- 28. Wie überprüft man, ob ein JTextField leer ist?
- 29. Wie überprüft man, ob CKEditor etwas Text enthält?
- 30. Wie überprüft man, ob ein Objekt serialisierbar ist in C#
möglich Duplikat [Wie kann ich feststellen, ob die Spaltennamen in der ResultSet existieren?] (Http://stackoverflow.com/questions/3599861/how-can-i-determine-if-the- Spaltenname-exist-in-the-resultset) – Riduidel
mögliches Duplikat von [Wie überprüfe ich, ob in einem CachedRowSet ein Spaltenname existiert?] (http://stackoverflow.com/questions/462534/how-do- i-check-zu-sehen-wenn-eine-Spalte-Name-existiert-in-cachedrowset) – bluish