我正在使用JDBC将行插入MYSQL数据库.我构建一个参数化命令,执行它并尝试检索自动生成的键,如下所示:
String sql = "INSERT IGNORE INTO `users` (`email`, `pass-hash`) VALUES (?, ?)"; Connection conn = SQLAccess.getConnection(); PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, login); ps.setString(2, passHash); int count = ps.executeUpdate(); if (count == 1) { ResultSet rs = ps.getGeneratedKeys(); rs.next(); //some more stuff... }
出于某种原因,我在包含以下内容的行上获得以下SQLException ResultSet rs = ps.getGeneratedKeys();
:
!声明.生成的密钥未被请求!
有什么想法吗?当我运行相同的查询时,通过调试器运行应用程序生成的查询,在MySQL浏览器中它执行时没有发生任何事故.
谢谢,布莱恩
我想你想打电话 prepareStatement(sql, RETURN_GENERATED_KEYS)