Hallo, ich versuche vergebens mit dm folgenden Code eine Tabelle in der Datenbank anzulegen. Ich bin den Code einpaar mal durchgegangen und kann leider den Fehler nicht finden und würde mich deswegen über jede Hilfe freuen.
Die Verbindung zu Datenbank ist hergestellt den mit dem folgenden Code klappt es ohne Probleme eine Tabelle azulegen, wo ist der unterschied????:L:bahnhof:
Java:
import java.sql.*;
public class HsqldbRaumDAO {
private static final String URLDB = "jdbc:hsqldb:file:hsqlDB/raumdb";
private static final String URLDBwithShutdown = URLDB+";shutdown=true";
private static final String USER = "root";
private static final String KENNWORT = "";
private static final String treiberKlasse = "org.hsqldb.jdbcDriver";
private Connection connection;
private static final String raumTabelle = "Raum";
private static final String columnRaumnummer = "Raumnummer";
private static final String columnName = "Name";
private static final String mitarbeiterSchema = " " +
columnRaumnummer + " INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY," +
columnName +" VARCHAR(64) " ;
public HsqldbRaumDAO() throws Exception {
loadDriver();
connection = startSession();
createTable();
}
private void loadDriver() throws Exception {
try {
Class.forName(treiberKlasse);
} catch (ClassNotFoundException e) {
System.err.println("Treiberklasse nicht gefunden!");
return;
}
}
private Connection startSession() throws Exception {
Connection myconnection;
try {
myconnection = DriverManager.getConnection(URLDBwithShutdown, USER, KENNWORT);
} catch (SQLException e) {
throw new Exception(e);
}
return myconnection;
}
boolean createTable(){
// Anweisung erzeugen
Statement anweisung;
try {
anweisung = connection.createStatement();
anweisung.execute(
"CREATE TABLE "+raumTabelle + "(" + mitarbeiterSchema + ")" );
} catch (SQLException e) {
e.printStackTrace();
return false;
}
return true;
}
}
public static void main(String[] args) throws Exception {
new HsqldbRaumDAO();
}
}
Die Verbindung zu Datenbank ist hergestellt den mit dem folgenden Code klappt es ohne Probleme eine Tabelle azulegen, wo ist der unterschied????:L:bahnhof:
Java:
import java.sql.Connection;
import java.sql.Connection; // wird für die Verbindung zur DB benötigt.
import java.sql.DriverManager; // Stellt die Verbindung zu DB her.
import java.sql.ResultSet; // Das Ergebnis der SQL Abfrage.
import java.sql.SQLException; // Fehlererkennung
import java.sql.Statement; // der SQL Befehl.
public class MyFirstHsqlConnection {
public MyFirstHsqlConnection() {
try {
// Treiberklasse laden
Class.forName("org.hsqldb.jdbcDriver");
} catch (ClassNotFoundException exception) {
System.err.println("Treiberklasse nicht gefunden!");
return;
}
// Connection Instanz erstellen.
Connection con = null;
try {
// Verbindung herstellen.
con = DriverManager.getConnection(
"jdbc:hsqldb:file:hsqlDB/raumdb; "
+ "shutdown=true", "root", "");
// Statement Instanz erstellen
Statement stmt = con.createStatement();
// SQL Statement.
String sql = "CREATE TABLE raumTabelle (ID INT PRIMARY KEY, " +
"Fahrer VARCHAR(25) NOT NULL, Punkte FLOAT NOT NULL," +
" WM SMALLINT , Siege SMALLINT , Poles SMALLINT );";
// Ausführung des SQL Statement.
stmt.execute(sql);
// Statement schließen
stmt.close();
} catch (SQLException exception) {
exception.printStackTrace();
} finally {
if (con != null) {
try {
con.close();
} catch (SQLException exception) {
exception.printStackTrace();
}
}
}
}
/**
* Mein Classe die beim Start Ausgeführt wird.
*
* @param args Konsoleneingaben
*/
public static void main(String[] args) {
new MyFirstHsqlConnection();
}
}
Zuletzt bearbeitet: