应该从5.1.17版本之后的mysql-connector增加了返回GeneratedKeys的条件,如果需要返回GeneratedKeys,则PreparedStatement需要显示添加一个参数PreparedStatement.RETURN_GENERATED_KEYS。
解决方法1:将mysql-connector包降级到5.1.17之前的版本(人总要适应新的东西,所以不建议)
方法2:
因为我用的是mysql-connector-java-5.1.47-bin.jar版本,所以选择修改代码
修改前:
PreparedStatement ps = null;
ps = conn.prepareStatement(sql);
修改后:
PreparedStatement ps = null;
ps = conn.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS);