今天在做JDBC获得自动插入到数据库中内容的主键的时候,莫名报了这个错误:java.sql.SQLException: !Statement.GeneratedKeysNotRequested! 在Mysql的官网文档上查看了一下这个Bug的原因是因为,mysql-connector-java-5.1.7-bin.jar 不支持 getGeneratedKeys()这个方法,所以我们不能使用5.1.7的连接驱动来获取自动生成的主键,在这里我们可以使用mysql-connector-java-5.0.8-bin.jar,换成这个jar文件之后,错误就没有了。
解决办法:将mysql-connector-java-5.1.7-bin.jar 换成 mysql-connector-java-5.0.8-bin.jar
测试代码如下:
@Test
public void test1(){
Connection connection = null;
PreparedStatement st = null;
ResultSet rs = null;
try {
connection = JDBCUtil.getConnection();
String sql = "insert into test(name) values('aaa')";
st = (PreparedStatement)connection.prepareStatement(sql);
st.executeUpdate();
rs = st.getGeneratedKeys();
if(rs.next()){
System.out.println(rs.getInt(1));
}
} catch (Exception e) {
e.printStackTrace();
}finally {
JDBCUtil.close(rs, st, connection);
}}
运行结果:5
java.sql.SQLException: !Statement.GeneratedKeysNotRequested!
最新推荐文章于 2022-10-11 21:06:33 发布