public class Demo { public static void main(String[] args) { try { String sql="insert into person values(?,?)"; Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=pubs","sa",""); //需要增加一个Statement.RETURN_GENERATED_KEYS这样的参数 java.sql.PreparedStatement p=conn.PreparedStatement(sql,Statement.RETURN_GENERATED_KEYS); p.setObject(1, "zengguofeef"); //p.setObject(2, new java.sql.Date(System.currentTimeMillis())); //必须这样设置,System.currentTimeMillis()表示当前系统时间的毫秒数,Timestamp()方法会根据这个毫秒数设置成当前时间 p.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis())); p.executeUpdate(); //通过这个方法获取getGeneratedKeys(); ResultSet rs=p.getGeneratedKeys(); rs.next(); int num=rs.getInt(1); System.out.println("自动增长列为:"+num); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } 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(); } } }