PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Nhận khóa được tạo tự động từ việc chèn hàng trong Spring 3 / PostgreSQL 8.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();

Lưu ý rằng trong các phiên bản Postgres mới hơn, bạn cần sử dụng

connection.prepareStatement(sql.toString(), 
    new String[] { "idcompte" /* name of your id column */ })

thay vì

connection.prepareStatement(sql.toString(), 
    Statement.RETURN_GENERATED_KEYS);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. bộ chuyển đổi postgres rails có hỗ trợ ssl không?

  2. Cách tránh cuộc gọi kích hoạt vòng lặp trong PostgreSQL 9.2.1

  3. PostgreSQL có hỗ trợ nén bảng (phân đoạn) trong suốt không?

  4. Thực thi nhiều câu lệnh với Postgresql thông qua SQLAlchemy không tiếp tục thay đổi

  5. PostgreSQL:Chọn dữ liệu có tương tự trên trường dấu thời gian