Java sqllite get_generated_keys无效

时间:2016-08-12 16:31:05

标签: java sqlite

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

1 个答案:

答案 0 :(得分:0)

在处理Result set

之前,您需要调用next方法
if(rs.next()){
   rs.getInt(1);
}