【问题标题】:How to get the auto-generated value from database when inserting new record?插入新记录时如何从数据库中获取自动生成的值?
【发布时间】:2013-12-06 16:46:24
【问题描述】:

我的表格包含 id、name、address、city、state、zip 列。这里的 id 是在插入新记录时自动生成的:insert into table1(name,address,city,state,zip) values(?,?,?,?,?)

这是我的代码:

preparedstatement.setString(1,name);
preparedstatement.setString(2,address);
preparedstatement.setString(3,city);
preparedstatement.setString(4,state);
preparedstatement.setString(5,zip);

preparedstatement.executeUpdate();

现在我想知道自动生成的id 值是什么。我该怎么做?

【问题讨论】:

    标签: java jdbc


    【解决方案1】:

    使用附加标志Statement.RETURN_GENERATED_KEYS 创建准备好的语句并使用PreparedStatement.getGeneratedKeys()

    String sql = "insert into table1(name,address,city,state,zip) values(?,?,?,?,?)";
    PreparedStatement preparedstatement
    = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
    
    //....
    
    preparedstatement.setString(1,name);
    preparedstatement.setString(2,address);
    preparedstatement.setString(3,city);
    preparedstatement.setString(4,state);
    preparedstatement.setString(5,zip);
    
    preparedstatement.executeUpdate();
    
    ResultSet generatedKeys = preparedstatement.getGeneratedKeys();
    //....
    

    相关:PreparedStatement with Statement.RETURN_GENERATED_KEYS

    【讨论】:

      【解决方案2】:
      String query = <your query>;
      
      PreparedStatement preparedstatement= 
             con.prepareStatement(query ,Statement.RETURN_GENERATED_KEYS)
      
      preparedstatement.setString(1,name);
      preparedstatement.setString(2,address);
      preparedstatement.setString(3,city);
      preparedstatement.setString(4,state);
      preparedstatement.setString(5,zip);
      

      并且在执行更新之后,

      ResultSet rs = preparedstatement.getGeneratedKeys();
      

      试试这个。

      【讨论】:

      • 这是获取 id 值的唯一方法吗?插入记录时有什么函数可以响应吗?
      猜你喜欢
      • 2012-12-06
      • 1970-01-01
      • 2013-01-10
      • 2018-04-16
      • 2015-11-17
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多