Java kommer med et stærkt sæt af database klasser kaldes JDBC . Disse værktøjer giver en Java-udvikler , med kun få undtagelser , for at arbejde med en bred vifte af store databaser uden ændringer i koden. Men nogle opgaver, såsom at hente kolonnenavne fra en forespørgsel , ikke er umiddelbart intuitivt at bruge fælles Connection , Statement og ResultSet klasser. Instruktioner
1
Import de nødvendige klasser ved at indsætte følgende i din kode : Hej
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
Forbind til databasen. Du bliver nødt til at omgive de fleste af de kommandoer i følgende trin med en try-catch erklæring at håndtere SQLException fejl, der kunne opstå
Connection con = DriverManager.getConnection ( " jdbc : . Derby ://localhost: 1527/sample "," bruger " , " pass ");
Change ordet" derby " til navnet på den database program, du bruger . For eksempel, " pass ", " mysql " for MySQL.
De sidste to argumenter i eksemplet , "bruger" , og repræsenterer , passende nok , brugernavn og adgangskode til din database.
3
oprette og køre en erklæring om den pågældende forbindelse. Hente resultaterne af erklæringen som et ResultSet
Statement s = con.createStatement (); . ResultSet rs = s.executeQuery ( " select * from APP.Customer ")
Dette kører en forespørgsel for at få alle oplysninger fra Kunden tabel i APP -databasen. Du kan erstatte den med en gyldig SQL-kommando for den database, du bruger.
4
Få " metadata " for det ResultSet og gemme det i ResultSetMetaData klassen.
ResultSetMetaData RSM = rs.getMetaData ();
som du måske har mistanke om , metadata henviser til de oplysninger , der beskriver din forespørgsel. Dette er ikke kun omfatter kolonnenavne , men også oplysninger som skemanavnet , datatyper for kolonner , og om en kolonne tillader Null-værdier .
5.
Få kolonnenavne og udskrive dem til skærmen på separate linjer
for (int x = 1; x < = rsm.getColumnCount (); x + +) . { System.out.println ( rsm.getColumnName (x)) ;}
< br >