第一种方法:
可以用select @@IDENTITY sql语句,不过他只对本连接刚刚递交的insert语句返回结果,否则返回0,具体写法如下:
Statement st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
st.executeUpdate("insert into yourtable(col1) values('hello')");
ResultSet rs=st.executeQuery("select @@IDENTITY as id");
int id=0;
if(rs.next()){
id=rs.getInt("id");
}
这样就可以得到刚刚插入记录的自增id,不过如果用PreparedStatement或者ResultSet的insertRow()返回的是0
第二种方法:
还可以用Statement.RETURN_GENERATED_KEYS(小黑猪和小白猪用的是这一种)
public static PreparedStatement getPstmt(Connection conn,String sql,Object[] params) {
PreparedStatement pstmt = null;
if(sql != null && !sql.equals("")) {
if(params == null) {
params = new Object[0];
}
try {
pstmt = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
for(int i=0;i<params.length;i++) {
pstmt.setobject((i+1),params[i]);
}
pstmt.execute();
} catch (sqlException e) {
e.printstacktrace();
}
}
return pstmt;
}
public static ResultSet getRsId(PreparedStatement pstmt) throws sqlException {
return pstmt.getGeneratedKeys(); } 就是这样……嘿嘿……
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。