Gå til innhold

Hente ut ukjente rader fra en databasetabell


Anbefalte innlegg

Noen som vet hvordan man kan hente ut radene fra en tabell i JDBC uten å vite hvilke rader som eksisterer? I eksemplet under ser du hvordan jeg spesifiserer hver rad jeg vil hente ut fra tabellen i while-løkken. Det jeg forsøker å gjøre i mitt program er å hente ut radene fra en dynamisk opprettet tabell, så jeg vet dermed ikke hva denne tabellen inneholder. Jeg ønsker også å lagre disse radene i en tabell.

 

package connectToDB;

import java.sql.*;

public class ConnectToDB {

   public static void main(String args[]) {

       Connection con = null;
       Statement st = null;
       ResultSet rs = null;

       String url = "jdbc:mysql://localhost:3306/";
       String db = "test";
       String driver = "com.mysql.jdbc.Driver";
       String user = "test";
       String pass = "test";

       try {
           Class.forName(driver);
           con = DriverManager.getConnection(url + db, user, pass);
           st = con.createStatement();

           String sql = "select * from test";
           rs = st.executeQuery(sql);

           while (rs.next()) {
           	int id = rs.getInt(1);
           	String name = rs.getString(2);
           	String desc = rs.getString(3);
           	double lon = rs.getDouble(4);
           	double lat = rs.getDouble(5);
           	System.out.println(id + " | " + name + " | " + desc + " | " + lon + " | " + lat);
           }

           rs.close();
           st.close();
           con.close();

       } catch (Exception e) {
           System.out.println(e);
       }
   }
}

Lenke til kommentar
Videoannonse
Annonse
  • 2 uker senere...

Bruk ResultSet.getMetaData()

 

Ok, det fungererer. Jeg klarer nå å finne hvilke kolonner som befinner seg i tabellen. Det neste jeg vil gjøre er å lagre innholdet i hver kolonne i ulike tabeller. F.eks. hvis første kolonne er en INT-kolonne, så vil jeg at dette skal bli lagret i en INT-tabell. Og hvis da neste kolonne er VARCHAR, så vil jeg at alt innholdet der skal lagres i en STRING-tabell. Jeg har forsøkt meg på noen løkker som gjør dette, men nå står jeg helt fast. Noen som har forslag/eksempel på hvordan jeg kan gjøre dette?

Lenke til kommentar

create table STRINGTABLE as select VARCHARKOLONNE from MYTABLE

 

eller

 

insert into STRINGTABLE select VARCHARKOLONNE from MYTABLE

 

... du må selvsagt gjøre dette i en løkke som går gjennom alle kolonnene og genererer sql-setningene basert på kolonnetype, men det burde jo være grei skuring nå som du har grokka metadataene.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...