Hvordan få kolonnenavn i en database tabell i Java

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

import java.sql.DriverManager

import java.sql.ResultSet

import java.sql.ResultSetMetaData

import java.sql.SQLException

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\")

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()

ResultSet rs = s.executeQuery(\"select * from APP.Customer\")

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()

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))

}

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.