PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Получаване на автоматично генериран ключ от вмъкване на ред през пролетта 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();

Имайте предвид, че в по-новите версии на Postgres трябва да използвате

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

вместо

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. Разбиране на производителността на заявките на PostgreSQL

  2. Анотация за хибернация за сериен тип PostgreSQL

  3. кодирането UTF8 не съответства на локала en_US; избраната настройка LC_CTYPE изисква кодиране LATIN1

  4. Пазете PostgreSQL понякога да избира лош план за заявка

  5. Разделете колоната на няколко реда в Postgres