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

Spring 3 /PostgreSQL8.4.9の行挿入から自動生成されたキーを取得する

    KeyHolder holder = new GeneratedKeyHolder();
    
    getJdbcTemplate().update(new PreparedStatementCreator() {           
    
                    @Override
                    public PreparedStatement createPreparedStatement(Connection connection)
                            throws SQLException {
                        PreparedStatement ps = connection.prepareStatement(sql.toString(),
                            Statement.RETURN_GENERATED_KEYS); 
                        ps.setString(1, person.getUsername());
                        ps.setString(2, person.getPassword());
                        ps.setString(3, person.getEmail());
                        ps.setLong(4, person.getRole().getId());
                        return ps;
                    }
                }, holder);
    
    Long newPersonId = holder.getKey().longValue();
    

    Postgresの新しいバージョンでは、

    を使用する必要があることに注意してください。
    connection.prepareStatement(sql.toString(), 
        new String[] { "idcompte" /* name of your id column */ })
    

    の代わりに
    connection.prepareStatement(sql.toString(), 
        Statement.RETURN_GENERATED_KEYS);
    


    1. SQLiteの文字列に改行を挿入する2つの方法

    2. OracleSQLPIVOTテーブル

    3. スキーマパターン検索

    4. SQLServerでのトランザクションログの重要性