Mysql
 sql >> Baza danych >  >> RDS >> Mysql

JDBC- nie można pobrać wartości i usunąć tabeli z bazy danych mysql

Zdaję sobie sprawę, że robisz coś innego, ale kilka małych wskazówek dotyczących wstawek:

Java ma niezależny od bazy danych sposób pobierania wygenerowanych kluczy INSERT. Jest to o wiele bezpieczniejsze niż przyjmowanie MAX później lub wcześniej, w środowisku wielu użytkowników.

Scenariusz dla błędnych identyfikatorów:

  1. pierwsza WSTAWKA
  2. druga WSTAWKA
  3. pierwszy WYBÓR
  4. drugi WYBÓR

Użyj także PreparedStatement, dla bezpieczeństwa (wstrzyknięcie SQL) i ucieczki (jeśli nazwa zawiera pojedynczy cudzysłów lub ukośnik odwrotny).

A try-withresources zawsze zamyka rzeczy, nawet w przypadku zwrotu lub wyjątku.

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. Używasz słów kluczowych MySQL w zapytaniu?

  2. Jak uruchomić polecenie MySQL na bash?

  3. Konfigurowanie zdalnego połączenia z bazą danych MySQL

  4. MYSQL Left Join COUNTS z wielu tabel

  5. „Nie można przekonwertować wartości daty/godziny MySQL na System.DateTime”, GDY nie używa się daty — C#.Net