sql >> Databasteknik >  >> RDS >> Mysql

JDBC- kan inte hämta värde och ta bort tabell i mysql-databasen

Jag är medveten om att du gör något annorlunda, men några små tips för inlägg:

Java har ett databasoberoende sätt att hämta de genererade nycklarna för en INSERT. Det är mycket säkrare än att ta MAX efteråt eller innan, i en miljö med flera användare.

Scenario för fel ID:n:

  1. första INSERT
  2. andra INSERT
  3. första SELECT
  4. andra SELECT

Använd också en PreparedStatement för säkerhet (SQL-injektion) och escape (om namnet innehåller ett citattecken eller omvänt snedstreck eller så.

Och försök med resurser stänger alltid saker, även vid retur eller undantag.

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. hur ser man/skript definitioner av systemvyer?

  2. MariaDB:Kan jag hämta dubbletter av kolumnnamn utan att använda 'AS'

  3. SQL:Hur man väljer en post per dag, förutsatt att varje dag innehåller mer än 1 värde MySQL

  4. Hur hämtar man unika rader baserat på kolumnvärdekombinationer?