sql >> Databáze >  >> RDS >> Mysql

JDBC- nelze načíst hodnotu a odstranit tabulku v databázi mysql

Uvědomuji si, že děláte něco jiného, ​​ale několik malých tipů pro vložky:

Java má na databázi nezávislý způsob, jak získat vygenerované klíče INSERTu. To je mnohem bezpečnější než vzít MAX poté nebo předtím v prostředí pro více uživatelů.

Scénář pro nesprávná ID:

  1. první INSERT
  2. druhé INSERT
  3. nejprve SELECT
  4. druhý SELECT

Pro zabezpečení (vložení SQL) a escapování použijte také PreparedStatement (pokud název obsahuje jednoduché uvozovky nebo zpětné lomítko).

A try-withresources vždy věci uzavírá, dokonce i při návratu nebo výjimce.

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. Nelze se připojit k databázovému serveru (pracovní plocha mysql)

  2. Počítá se zpětné lomítko \ jako znak v MySQL?

  3. Spusťte dotaz v uložené proceduře MySQL, pokud je podmínka pravdivá

  4. jednoduché uvozovky v SQL Query