Einfügen der vorbereiteten Anweisung in die Datenbank - PSQL

Dies scheint ein wirklich einfaches Problem zu sein, aber ich kann nicht herausfinden, was mein Problem ist. Ich habe eine Methode addTask, die unserer Datenbank einige Informationen hinzufügt, wie in diesem Code zu sehen:

public static boolean addTask(String name, String question, int accuracy, int type){
    StringBuilder sql = new StringBuilder();
      sql.append("INSERT INTO tasks (name, question, type, accuracy) ");
      sql.append("VALUES(?, ?, ?, ?)");
      try {
        Connection c = DbAdaptor.connect();
        PreparedStatement preparedStatement = c.prepareStatement(sql.toString());
        preparedStatement.setString(1, name);
        preparedStatement.setString(2, question);
        preparedStatement.setInt(3, type);
        preparedStatement.setInt(4, accuracy);
        preparedStatement.execute();
        preparedStatement.close();
        c.close();
            return true;
      }       
      catch (SQLException e) {
          e.printStackTrace();
          return false;
      }
}

Mein Problem ist, dass prepareStatement.execute () immer false zurückgibt und angibt, dass die Informationen nicht zur Datenbank hinzugefügt wurden. Ich kann psql ausführen und dies bestätigt, dass nichts in die Datenbank geschrieben wurde. Die Verbindung stellt definitiv eine Verbindung zur richtigen Datenbank her (ich habe einige andere Druckinformationen eingegeben, um dies zu überprüfen). Ich versuche, in eine neu initialisierte Tabelle einzufügen, die so aussieht:

CREATE TABLE tasks
(
  id SERIAL PRIMARY KEY,
  submitter INTEGER REFERENCES accounts (id),
  name VARCHAR(100) NOT NULL,
  question VARCHAR(100) NOT NULL,
  accuracy INTEGER NOT NULL,
  type INTEGER REFERENCES types (id),
  ex_time TIMESTAMP,
  date_created TIMESTAMP
); 

Code für DbAdaptor.connect ():

public static Connection connect(){
    try {
        Class.forName("org.postgresql.Driver");
    } catch (ClassNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    Properties properties = new Properties();
      properties.setProperty("user", USER);
      properties.setProperty("password", PASSWORD);
    try {
        return DriverManager.getConnection(URL, properties);
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return null;
}

woherUSER undPASSWORD sind statische Felder in der Klasse

Antworten auf die Frage(1)

Ihre Antwort auf die Frage