2016-12-16 3 views
-3

Ich versuche, eine neue Tabelle in einer Datenbank zu erstellen, aber ich bin erhalte eine Fehlermeldung, die besagt:Fehler bei der Erstellung von Tabellen

Exception in thread „main“ java.sql.SQLSyntaxErrorException: Tabelle/View ‚USERPRIVACYDB ' ist nicht vorhanden.

Der Code ist wie folgt:

public class UserPrivacyData { 

    private static String password = null; 
    private final static String USER = "root"; 
    final String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver"; 
    final String DATABASE_URL = "jdbc:derby://localhost:1527/USERPRIVACYDB;create=true;"; 

    public void loadDB() throws SQLException { 
     try { 
      Class.forName(DRIVER); //load the driver 
       connection = DriverManager.getConnection(DATABASE_URL, USER, password); 
     statement = connection.createStatement(); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
String sql = "insert into USERPRIVACYDB values('" + gender[rand.nextInt(2)] + "'," 
        + " '" + privacyLevel[rand.nextInt(3)] + "', '" + age[rand.nextInt(3)] + "'," 
        + " '" + presentEducationLevel[rand.nextInt(3)] + "'," 
        + " '" + highestEducation[rand.nextInt(3)] + "', '" 
        + everVictimOfCrimeString + "', " 
        + " '" + crimeTypeString + "', " 
        + " '" + shareWithThirdParty[rand.nextInt(2)] + "'," 
        + " '" + reasonforChoiceofPrivacy[rand.nextInt(5)] + "')"; 

      statement.executeUpdate(sql); 
      // } 

     } 

    }   

Kann jemand mir bitte helfen? Vielen Dank.

+2

Wo ist demonstriert Code, wie Sie diese Fehlermeldung erhalten? Bitte lesen Sie die [Hilfe] – Liam

+0

Danke Liam. Der Code lautet wie folgt: – user3048253

+0

public class UserPrivacyData { private static Zeichenfolge Kennwort = null; private final static Zeichenfolge USER = "root"; letzte Zeichenfolge DRIVER = "org.apache.derby.jdbc.EmbeddedDriver"; final Zeichenfolge DATABASE_URL = "jdbc: derby: // localhost: 1527/USERPRIVACYDB; create = true;"; public void loadDB() löst SQLException aus { try { Class.forName (DRIVER); // lade den Treiber connection = DriverManager.getConnection (DATABASE_URL, USER, Passwort); \t Anweisung = connection.createStatement(); } catch (Ausnahme ex) {ex.printStackTrace(); } – user3048253

Antwort

0

Ihre JDBC-Verbindungs-URL und JDBC-Treiberklasse nicht übereinstimmen:

final String DRIVER = "org.apache.derby.jdbc.EmbeddedDriver"; 
final String DATABASE_URL = "jdbc:derby://localhost:1527/USERPRIVACYDB;create=true;"; 

eine JDBC-Verbindung URL der Form jdbc:derby://hostname:port/path/to/db zur Verwendung mit dem Client-Server-Konfiguration von Derby ist, also wenn Sie diese verwenden möchten Konfiguration, müssen Sie Ihren Treiber zu org.apache.derby.jdbc.ClientDriver ändern, und derbyclient.jar in Ihre CLASSPATH platzieren.

Der JDBC-Treiber Klasse org.apache.derby.jdbc.EmbeddedDriver ist für die Verwendung mit der Embedded-Konfiguration von Derby, so dass, wenn Sie diese Konfiguration verwenden möchten, müssen Sie Ihre JDBC-Verbindungs-URL zu jdbc:derby:path/to/db ändern, und legen derby.jar in Ihrem CLASSPATH.

Dies ist wahrscheinlich nicht das gesamte Problem mit Ihrem Code, aber die Korrektur wäre gut und würde Ihnen helfen, Ihre Pläne für die Erstellung und Bereitstellung Ihrer Anwendung zu klären.

Weitere allgemeine Hintergrundinformationen über die grundlegenden Derby-Konfigurationen finden Sie unter: https://db.apache.org/derby/docs/10.13/getstart/

Verwandte Themen