public Integer toevoegenKlant(Klant nieuweKlant) throws DBException {
try (Connection conn = ConnectionManager.getConnection();) {
try (PreparedStatement stmt = conn.prepareStatement(
"insert into klant(naam, voornaam, geboortedatum, opmerking, debetstand_limiet, actief) values(?,?,?,?,?,?)",PreparedStatement.RETURN_GENERATED_KEYS);) {
stmt.setString(1, nieuweKlant.getNaam());
stmt.setString(2, nieuweKlant.getVoornaam());
stmt.setDate(3, Date.valueOf(nieuweKlant.getGeboorteDatum()));
stmt.setString(4, nieuweKlant.getOpmerking());
stmt.setDouble(5, nieuweKlant.getDebetstandLimiet().doubleValue());
byte b;
if (nieuweKlant.isActief() == true){
b = 1;
}
else{
b = 0;
}
stmt.setByte(6, b);
stmt.execute();
ResultSet rs = stmt.getGeneratedKeys();
return rs.getInt(1);
} catch (SQLException sqlEx) {
throw new DBException("SQL-exception in toevoegenKlant - statement"+ sqlEx);
}
} catch (SQLException sqlEx) {
throw new DBException(
"SQL-exception in toevoegenKlant - connection"+ sqlEx);
}
}
因此,当我检查我的数据库时,会添加'klant',但它不会返回生成的密钥。谁知道我做错了什么?
toevoegenKlant中的SQL异常 - statementjava.sql.SQLException:在开始结果集之前 exception.DBException
答案 0 :(得分:0)
在处理Result set
之前,您需要调用next方法if(rs.next()){
rs.getInt(1);
}