Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

JDBC- tidak dapat mengambil nilai dan menghapus tabel di database mysql

Saya tahu Anda melakukan sesuatu yang berbeda, tetapi beberapa tips kecil untuk sisipan:

Java memiliki cara independen database untuk mengambil kunci yang dihasilkan dari INSERT. Itu jauh lebih aman daripada mengambil MAX sesudahnya atau sebelumnya, dalam lingkungan multi-pengguna.

Skenario untuk ID yang salah:

  1. MASUKKAN pertama
  2. MASUKKAN kedua
  3. PILIH pertama
  4. PILIH kedua

Juga gunakan PreparedStatement, untuk keamanan (injeksi SQL) dan meloloskan diri (jika nama berisi tanda kutip tunggal atau garis miring terbalik atau lebih.

Dan try-withresources selalu menutup segala sesuatunya, bahkan saat pengembalian atau pengecualian.

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. MySQL - Hapus nilai di baris, alih-alih menghapus baris

  2. MySQL mengonversi nilai stempel waktu saya menjadi 0000-00-00

  3. MySQL/PDO memotong data

  4. Bagaimana cara menambahkan batasan CHECK khusus pada tabel MySQL?

  5. Perbarui kolom berdasarkan nilai yang cocok di tabel lain di mysql