Ahoi Matrosen,
ich schreibe ein Adressbuch, wofür man sich registrieren muss.
Nach der Registration gehts zum Anmeldefenster, welches Eingaben erwartet.
Sollten valide Daten eingegeben worden sein, prüft die Methode [c]isRegistered()[/c] ob sich der User bereits in das Adressbuch eingetragen hat.
Wenn der User sich bereits eingetragen hat, kommt er zum 'wahren' Adressbuch. Sollte er sich noch nicht eingetragen haben, wird er dazu aufgefordert. 2 Panels erledigen mir hier die Arbeit.
Jetzt habe ich aber das Problem, dass ich nach dem Eintragen in die Datenbank das Setzen von dem registered-flag nicht hinkriege.
Folgende Methode ist dafür gedacht:
Allerdings krieg ich hier den Fehler:
Wie ist die korrekte Syntax für die Query?
ich schreibe ein Adressbuch, wofür man sich registrieren muss.
Nach der Registration gehts zum Anmeldefenster, welches Eingaben erwartet.
Sollten valide Daten eingegeben worden sein, prüft die Methode [c]isRegistered()[/c] ob sich der User bereits in das Adressbuch eingetragen hat.
Java:
public boolean isRegistered(String username)
{
try
{
statement = (PreparedStatement) connection.prepareStatement("SELECT registered FROM users WHERE username = ?");
statement.setString(1, username);
resultSet = statement.executeQuery();
while (resultSet.next())
{
if (resultSet.getInt("registered") > 0)
{
return true;
}
else
{
return false;
}
}
}
catch (SQLException sqle)
{
sqle.printStackTrace();
}
return false;
}
Jetzt habe ich aber das Problem, dass ich nach dem Eintragen in die Datenbank das Setzen von dem registered-flag nicht hinkriege.
Folgende Methode ist dafür gedacht:
Java:
public boolean setRegistered(String username)
{
try
{
statement = (PreparedStatement) connection.prepareStatement("INSERT INTO users(registered) VALUES(?) WHERE username = ?");
statement.setInt(1, 1);
statement.setString(2, username);
statement.executeUpdate();
return true;
}
catch (Exception e)
{
e.printStackTrace();
}
return false;
}
Allerdings krieg ich hier den Fehler:
Java:
org.postgresql.util.PSQLException: FEHLER: Syntaxfehler bei „WHERE“
Position: 42
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2161)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1890)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:559)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:363)
at CDatabase.setRegistered(CDatabase.java:160)
at CMain$1.run(CMain.java:11)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Wie ist die korrekte Syntax für die Query?