Hvordan få kolonnenavn i en database tabell i Java
Java kommer med et kraftig sett med database klasser kalt JDBC. Disse verktøyene lar en Java-utvikler, med bare noen få unntak, for å jobbe med et bredt utvalg av store databaser uten noen endringer i koden. Men noen oppgaver, som å hente kolonnenavn fra en spørring, er ikke umiddelbart intuitiv å bruke de vanlige Connection, Statement, og ResultSet klasser.
Bruksanvisning
1 Importer de nødvendige klassene ved å lime inn følgende i koden din:
import java.sql.Connection
GÅ
import java.sql.DriverManager
GÅ
import java.sql.ResultSet
GÅ
import java.sql.ResultSetMetaData
GÅ
import java.sql.SQLException
GÅ
import java.sql.Statement;
2 Koble til databasen. Du må omgi fleste av kommandoene i følgende trinn med en try-catch-setning for å håndtere SQLException feil som kan oppstå.
Connection con = DriverManager.getConnection(\"jdbc:derby://localhost:1527/sample\", \"user\", \"pass\")
GÅ
Endre ordet \ "derby \" til navnet på databasen programmet du bruker. For eksempel \ "mysql \" for MySQL.
De to siste argumentene i eksempel \ "bruker \" og \ "pass, \" representerer, riktig nok, brukernavn og passord for databasen.
3 Lag og kjøre en uttalelse på den tilkoblingen. Hente resultatene av erklæringen som et ResultSet.
Statement s = con.createStatement()
GÅ
ResultSet rs = s.executeQuery(\"select * from APP.Customer\")
GÅ
Dette kjører en spørring for å få all informasjon fra Kunden tabellen i APP database. Du kan erstatte den med en hvilken som helst gyldig SQL kommando for databasen du bruker.
4 Få \ "metadata \" for at ResultSet og lagre den i ResultSetMetaData klassen.
ResultSetMetaData rsm = rs.getMetaData()
GÅ
Som du kanskje har mistanke om, refererer metadata til informasjonen som beskriver søket ditt. Dette ikke bare omfatter kolonnenavn, men også informasjon som skjemanavnet, datatyper for kolonner, og om en kolonne tillater nullverdier.
5 Få kolonnenavnene og skrive dem til skjermen på egne linjer.
for (int x = 1; x <= rsm.getColumnCount(); x++) {
System.out.println(rsm.getColumnName(x))
GÅ
}
Hint
- I motsetning til nesten alt annet i Java, kolonnenavnene i JDBC ResultSetMetaData klassen starter på en heller enn null. Prøver å få tilgang kolonne null ut av vane vil generere en kjøretidsfeil.