getGeneratedKeys自动获取主键的方法

  1. 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,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: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();}}}

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...