INSERT med autonummering
Hejsa jeg vil sådan set det samme somhttp://www.eksperten.dk/spm/499428
Men min struktur ser dog følgende ud:
//Bruger PreparedStatement for at slipper for at skrive
VALUES('" +dData[0] + "','" + dData[1] + "','" +
dData[2] + "','" + dData[3] + "','" +
dData[4] + "')");
PreparedStatement insertPstmt = null;
insertPstmt = conn.prepareStatement
insertPstmt = conn.prepareStatement("INSERT_INTO_BRUGERSTATUS = "INSERT INTO BrugerStatus(UserName,Projekt_Id,timeOut,Completed,Status,FriTekst,Navn,Email,Password,mail_sent,reminder_sent,allow_login,sent_date,exclude,last_completed,send_mail) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
insertPstmt.setString(1,userName);
insertPstmt.setInt(2,project_Id);
insertPstmt.setInt(3,timeOut);
insertPstmt.executeUpdate();
...
Overnstående virker. Jeg har dog et felt i databasen som hedder personId og dette felt skal have samme værdi som mit autunummeringsid (brugerId)Har så kigget på SELECT @@IDENTITY og er kommet frem til følgende:
ResultSet rsId = insertPstmt.executeQuery("SELECT @@IDENTITY");
while(rsId.next()) {
String personId = rsId.getInt(1);
System.out.println(personId);
}
Får fejlen
java.sql.SQLException: Use of the executeQuery(String) method is not supported on this type of statement.
Hvad gør jeg galt ?
Og hvorfor er det egentlig smart med "SELECT @@IDENTITY". JEg mener hvorfor kan jeg ikke bare lave en almindelig SELECT statement på mit autogenerede id ?
