sql >> Database teknologi >  >> RDS >> Mysql

JDBC- kan ikke hente værdi og slette tabel i mysql-database

Jeg er klar over, at du gør noget anderledes, men nogle små tips til indsættelser:

Java har en databaseuafhængig måde at hente de genererede nøgler til en INSERT. Det er meget sikrere end at tage MAX bagefter eller før, i et flerbrugermiljø.

Scenarie for forkerte id'er:

  1. første INDSÆT
  2. anden INDSÆT
  3. først SELECT
  4. sekund SELECT

Brug også en PreparedStatement til sikkerhed (SQL-injektion) og escape (hvis navnet indeholder et enkelt citat eller omvendt skråstreg eller deromkring.

Og prøv med ressourcer lukker altid tingene, selv ved tilbagevenden eller undtagelse.

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. Java Mysql-forespørgselsdatabase med forbindelse

  2. Mysql:Hvordan forespørger man en kolonne, hvis type er bit?

  3. Hvordan sammenligner jeg overlappende værdier inden for en række?

  4. Fremmednøgle med INGEN primærnøgle at henvise til