sql >> データベース >  >> RDS >> Mysql

PreparedStatementを使用して挿入します。 IDを自動インクリメントするにはどうすればよいですか?

    列をINSERTから除外します ステートメント完全に 。これは、データベースエンジンによって生成されます。クエリは次のようになります:

    INSERT INTO employee (time, name)
    VALUES (?, ?)
    

    次に、最初に挿入を実行してから、結果からキーを取得する必要があります。

    あなたのコードは次のようにすべきだと思います:

    PreparedStatement preparedStatement = 
        connect.prepareStatement("INSERT into employee (time, name) VALUES (?,?)", 
        Statement.RETURN_GENERATED_KEYS);
    
    preparedStatement.setTimestamp(1, 
        new java.sql.Timestamp(new java.util.Date().getTime()));                           
    preparedStatement.setString(2, "Test");
    
    preparedStatement.executeUpdate();
    
    ResultSet tableKeys = preparedStatement.getGeneratedKeys();
    tableKeys.next();
    int autoGeneratedID = tableKeys.getInt(1);
    

    この例では、実行されたステートメントの成功や返されたキーの存在はチェックされないことに注意してください。



    1. シェルスクリプトでデータベースを作成する-PHPから変換する

    2. mysql結果セットをループする方法

    3. ソケットファイル/var/pgsql_socket/.s.PGSQL.5432MountainLion(OS X Server)にありません

    4. Charlotte SQL Serverユーザーグループ:遅いクエリを修正しました。速い。