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

JDBC- не може да извлече стойност и да изтрие таблица в базата данни mysql

Наясно съм, че правите нещо различно, но някои малки съвети за вмъквания:

Java има независим от базата данни начин за извличане на генерираните ключове на INSERT. Това е много по-безопасно от вземането на MAX след или преди това в среда с много потребители.

Сценарий за грешни идентификатори:

  1. първи INSERT
  2. второ INSERT
  3. първо ИЗБЕРЕТЕ
  4. втори ИЗБОР

Използвайте също PreparedStatement за сигурност (SQL инжектиране) и екраниране (ако името съдържа единични кавички или обратна наклонена черта или т.н.

А try-withresources винаги затваря нещата, дори при връщане или изключение.

String sql = "INSERT INTO account (name, balance) VALUES (?, 0)";
try (PreparedStatement stmt = conn.prepareStatement(sql,
        Statement.RETURN_GENERATED_KEYS)) {
    stmt.setString(1, name);
    int updateCount = stmt.executeUpdate(); // 1
    try (ResultSet id = stmt.getGeneratedKeys()) {
        id_user = 0;
        if (id.next()) { // 'if' as just 1 row inserted.
            id_user = id.getInt(1); // 1 key per row.
        }
    }
    System.out.println(id_user);
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Joomla:Извикване на помощна функция от модела?

  2. Как да каскадно персистирате с помощта на JPA/EclipseLink

  3. Magento:SQLSTATE[23000]:Нарушение на ограничението за целостта:1062 Дублиран запис „100000001“ за ключ „UNQ_SALES_FLAT_ORDER_IN

  4. Можете ли да разделите един псевдоним на друг в MySQL?

  5. Показване на празнини между датите в MySQL