Hallo..
Ich möchte beim Aufruf eines Programms gleich in einem Konstruktor prüfen ob eine Tabelle in meiner JDBC existiert oder nicht, wenn nicht, dann wird sie erstellt.. ich hab einen Tipp bekommen es mit dem DatabaseMetaData zu tun..aber das funktioniert nicht so wie ich es will, also versteh ich wohl etwas nicht ganz. Bitte um Hilfe
Als Fehler kommt dann: java.sql.SQLException: Table/View 'GRIFFE' already exists in Schema 'APP'.
Ich möchte beim Aufruf eines Programms gleich in einem Konstruktor prüfen ob eine Tabelle in meiner JDBC existiert oder nicht, wenn nicht, dann wird sie erstellt.. ich hab einen Tipp bekommen es mit dem DatabaseMetaData zu tun..aber das funktioniert nicht so wie ich es will, also versteh ich wohl etwas nicht ganz. Bitte um Hilfe
Java:
try {
conn = DriverManager.getConnection("jdbc:derby:C:\\Klaudia\\Java\\Beispiele\\Gitarrengriffe\\DB\\work.db;create=true");
System.out.println("Connection established");
DatabaseMetaData dm = conn.getMetaData();
rs = dm.getTables(null, null, "griffe", null);
stmt = conn.createStatement();
if(!rs.next()){
String sc = "CREATE TABLE griffe (" +
"name VARCHAR(10) NOT NULL," +
"e_Saite VARCHAR(2)," +
"bSaite VARCHAR(2)," +
"gSaite VARCHAR(2)," +
"dSaite VARCHAR(2)," +
"aSaite VARCHAR(2)," +
"eSaite VARCHAR(2)," +
"PRIMARY KEY(name))";
stmt.executeUpdate(sc);
System.out.println("Table created");
} else {
System.out.println("Table exists");
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
finally {
try {
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
e.printStackTrace();
return;
}
}
Als Fehler kommt dann: java.sql.SQLException: Table/View 'GRIFFE' already exists in Schema 'APP'.