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

Chèn dữ liệu biểu mẫu vào hai bảng khác nhau trên cơ sở dữ liệu thông qua trang jsp

Giải pháp 1

Tạo hai phiên bản Statement khác nhau cho hai hoạt động chèn của bạn.

Giải pháp 2

Nếu bạn muốn sử dụng lại một phiên bản Tuyên bố duy nhất, hãy đóng tài nguyên trong Cuối cùng khối. Trên thực tế, luôn luôn là một ý kiến ​​hay khi đặt câu lệnh gần nhất vào cuối cùng chặn hoặc đơn giản là sử dụng try-catch-resource mà jdk7 + phải cung cấp.

Không liên quan đến các câu hỏi cụ thể của bạn

  • Bạn nên tránh sử dụng mã java trong tệp jsp. Tìm kiếm các cụm từ "jsp servlet mvc".
  • Sử dụng PreparedStatement thay vì Statement để tránh bị tấn công sql.

CHỈNH SỬA cho giải pháp 1:

Trong khối thử đầu tiên của bạn:
Trong Statement myStatement = myConnection.createStatement();
thêm Statement myStatementTwo = myConnection.createStatement();

Trong khối thử thứ hai của bạn:
thay đổi myStatement.executeUpdate(sqlString);
thành myStatementTwo.executeUpdate(sqlString);

Thêm một khối cuối cùng cho khối thử đầu tiên của bạn và đóng tất cả tài nguyên của bạn ở đó. Việc chỉnh sửa mã của bạn cũng giống như việc viết lại mọi thứ từ đầu, sẽ có lợi nhất cho bạn nếu bạn có thể tự mình làm điều đó.

CHỈNH SỬA sau khi OP cung cấp mã HTML và cơ sở dữ liệu

Dest_has_Categories của bạn Dest_idDest của bảng là auto_increment nhưng nó cũng là một khóa ngoại tham chiếu đến URL khóa chính của idDest . Các khóa ngoại của Bảng tham chiếu (bảng chung) không nên được auto_increment. Sẽ có vấn đề nếu giá trị gia tăng tự động do DBMS tạo ra không tồn tại trong bảng tham chiếu.

Vui lòng đặt các khóa ngoại không phải auto_increment và khi bạn chèn vào bảng tham chiếu Dest_has_Categories , vui lòng chèn Danh mục hiện có Id của và URL id của.

Ngoài ra, khi bạn thay đổi mã của mình, hãy đảm bảo sử dụng Giải pháp 2 của tôi để có phương pháp tốt nhất.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Định dạng ngày cụ thể trong mysql

  2. MySQL - Giá trị cột tăng hoặc Chèn dữ liệu nếu không tồn tại

  3. cập nhật hai bảng cùng một lúc

  4. Mysql Chỉ mục không gian không được sử dụng

  5. Tại sao bạn không nên sử dụng CONCAT () cho các ký tự chuỗi tĩnh?