public void getIdentityValue(Connection conn){
ResultSet rs = null ;
PreparedStatement pstm = null;
try{
String sql = "insert into book(bookname,bookclassno,author,publish,price) values('test',5,'author','dian zi ',88.5)";
pstm = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);
pstm.executeUpdate();
ResultSet res = pstm.getGeneratedKeys();
res.next();
int Rtn=res.getInt(1);
System.out.println("select identity:"+Rtn);
}catch(Exception e){
e.printStackTrace();
}finally{
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
2。SQLSERVER2000版本
/**
* 在sql 2000中这样获取,驱动程序,jar包也不同了
*/
public static void main(String[] args)
{
//在sql 语句后面加上一个select scope_identity()
String sql ="insert into person values(?,?) select scope_identity()";
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databaseName=pubs","sa","");
java.sql .PreparedStatement p=conn.prepareStatement(sql );
p.setObject(1, "zengguofeef");
p.setTimestamp(2, new java.sql .Timestamp(System.currentTimeMillis()));
//这里使用的是executeQuery()方法,而不是executeUpdate()
ResultSet rs=p.executeQuery();
rs.next();
int num=rs.getInt(1);
System.out.println("自动增长列为:"+num);
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}