Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

JDBC- không thể truy xuất giá trị và xóa bảng trong cơ sở dữ liệu mysql

Tôi biết rằng bạn đang làm điều gì đó khác biệt, nhưng một số mẹo nhỏ để chèn:

Java có một cách độc lập với cơ sở dữ liệu để tìm nạp các khóa đã tạo của một INSERT. Điều đó an toàn hơn rất nhiều so với việc lấy MAX sau đó hoặc trước đó, trong môi trường nhiều người dùng.

Tình huống cho ID sai:

  1. CHÈN đầu tiên
  2. CHÈN thứ hai
  3. CHỌN đầu tiên
  4. CHỌN thứ hai

Cũng sử dụng một PreparedStatement, để bảo mật (SQL injection) và thoát (nếu tên chứa một dấu ngoặc kép hoặc dấu gạch chéo ngược hoặc tương tự.

Và try-withresources luôn đóng mọi thứ, ngay cả khi trả lại hoặc ngoại lệ.

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. Toán tử:=có nghĩa là gì trong mysql?

  2. Thay dấu phẩy bằng dòng mới và ghi vào tệp văn bản

  3. Làm cách nào tôi có thể truyền một int thành bit trong MySQL 5.1?

  4. Sử dụng Cơ sở dữ liệu quan hệ MySQL trên Ubuntu 10.10 (Maverick)

  5. Cảnh báo:mysql_fetch_array ():đối số được cung cấp không phải là kết quả MySQL hợp lệ