2017-01-30 5 views
0

Ich versuche, Inhalt von Tabellen mit Java-Code zu empfangen. Dies ist der grundlegende Code und ich habe ein Problem damit. Ich brauche den Code flexibel zu sein, damit er verschiedene Tabellen lesen kann (mit unterschiedlicher Anzahl von Zeilen/Spalten usw.). Ich möchte, dass die while-Schleife alle Spalten in einer bestimmten Tabelle druckt.Java zum Lesen verschiedener Datenbanktabellen

public class Main1 { 
     public static void main(String[] args) throws Exception { 
     Class.forName("org.gjt.mm.mysql.Driver"); 

     Connection conn = DriverManager.getConnection(
      "jdbc:mysql:address", "root", ""); 

     String SQL = "select * from users"; 
     ResultSet rs = Statement.executeQuery(); 
      ResultSetMetaData rsmd = rs.getMetaData(); 
      System.out.println("querying SELECT * FROM users"); 
      int columnsNumber = rsmd.getColumnCount(); 
      while (rs.next()) { 
       for (int i = 1; i <= columnsNumber; i++) { 
        if (i > 1) System.out.print(", "); 
        String columnValue = rs.getString(i); 
        System.out.print(columnValue + " " + rsmd.getColumnName(i)); 
       } 
       System.out.println(""); 
      } 

     } 
     } 
+1

so was nicht in Ordnung ist? Ich gebe meinen Job als Gedankenleser auf, ich bin einfach nicht gut darin –

+0

haha ​​Entschuldigung, ich habe die Probleme nicht angegeben. Die Zeile "ResultSet rs = Statement.executeQuery();" ist anscheinend falsch. Dann frage ich, ob es eine bessere und effizientere Art gibt, das zu tun, was ich brauche. –

Antwort

0

OK, sind Sie wahrscheinlich besser dran mit einem PreparedStatement

betrachten

PreparedStatement ps = conn.prepareStatement (SQL); 
rs = ps.executeQuery(); 
+0

Funktioniert gut! Ich habe den Rest geschrieben, aber dann gibt es ein Problem. "String SQL =" Wählen Sie * aus "+ Tabellenname;" (wobei tabellenname) ist eine Zeichenfolge, die vom Benutzer in der Befehlszeile angegeben wird. Dies ist außerhalb des Zitats und funktioniert nicht korrekt. Ich muss in der Lage sein, die Tabelle deshalb zu wählen, ich muss in der Lage sein, die Tabelle auf diese Weise auszuwählen. –

Verwandte Themen