3.2 Example 2: SQL INSERT và DELETE
Để thêm sửa xoá dữ liệu, bạn cần dùng lệnh executeUpdate()
để thực thi câu lệnh SQL. Phương thức trả về một int
chỉ số lượng bản ghi bị ảnh hưởng.
Bạn có thể đặt tên file là " JdbcInsertTest.java
" , và sau đây là code ;)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
| import java.sql.*;
public class JdbcInsertTest {
public static void main(String[] args) {
try (
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/ebookshop?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC",
"myuser", "xxxx");
Statement stmt = conn.createStatement();
) {
String sqlDelete = "delete from books where id >= 3000 and id < 4000";
System.out.println("The SQL statement is: " + sqlDelete + "\n");
int countDeleted = stmt.executeUpdate(sqlDelete);
System.out.println(countDeleted + " records deleted.\n");
String sqlInsert = "insert into books values (3001, 'Gone Fishing', 'Kumar', 11.11, 11)";
System.out.println("The SQL statement is: " + sqlInsert + "\n");
int countInserted = stmt.executeUpdate(sqlInsert);
System.out.println(countInserted + " records inserted.\n");
sqlInsert = "insert into books values "
+ "(3002, 'Gone Fishing 2', 'Kumar', 22.22, 22),"
+ "(3003, 'Gone Fishing 3', 'Kumar', 33.33, 33)";
System.out.println("The SQL statement is: " + sqlInsert + "\n");
countInserted = stmt.executeUpdate(sqlInsert);
System.out.println(countInserted + " records inserted.\n");
sqlInsert = "insert into books (id, title, author) values (3004, 'Fishing 101', 'Kumar')";
System.out.println("The SQL statement is: " + sqlInsert + "\n");
countInserted = stmt.executeUpdate(sqlInsert);
System.out.println(countInserted + " records inserted.\n");
String strSelect = "select * from books";
System.out.println("The SQL statement is: " + strSelect + "\n");
ResultSet rset = stmt.executeQuery(strSelect);
while(rset.next()) {
System.out.println(rset.getInt("id") + ", "
+ rset.getString("author") + ", "
+ rset.getString("title") + ", "
+ rset.getDouble("price") + ", "
+ rset.getInt("qty"));
}
} catch(SQLException ex) {
ex.printStackTrace();
}
}
}
|
Ghi chú:
- Bạn không thể chèn hai bản ghi có cùng
id
vì nó là giá trị của khóa chính. Do đó, chúng ta sẽ thực hiện DELETE
trước khi INSERT
mới. Bằng cách này, bạn có thể chạy lại chương trình thỏa thích mà không bị lỗi trùng lặp bản ghi.
- Nếu bạn thêm mới dữ liệu nhưng không insert vào toàn bộ các cột trong bảng, thì các cột không được INSERT sẽ nhận giá trị mặc định.
Bài tập 1:
Sửa đổi chương trình Java của bạn để thực hiện các câu lệnh SQL sau:
- Xóa tất cả sách có id> 8000;
- Thêm cùng lúc 2 bản ghi (8001, 'Java Core', 'Dang Kim Thi', 15.55, 55) và (8002, 'Java Advanced', 'James Gosling', 25.55, 55);
- Thêm 1 cuốn sách có thông tin là (2001, 'Java JDBC MySQL', 'ThiDK');
- Xoá một cuối sách có id là do người dùng nhập vào, ví dụ id = 2001
- Thêm mới một cuốn sách có đầy đủ thông tin do người dùng nhập vào từ bàn phím
Bài tập 2:
GiftShop là một cửa hàng bán quà tặng, có chức năng siêu tinh giản là như sau: xem, thêm và xoá quà tặng.
Đây là một bài toán tổng hợp, triển khai theo mẫu thiết kế MVC. MVC là viết tắt của từ Model, View và Controller. Trong đó, Model là phần chứa dữ liệu, View là giao diện người dùng, còn Controller là điều khiển. Ngoài ra, bài tập này cũng giúp các em củng cố kiến thức về OOP kết hợp với JDBC.
Đây là hướng dẫn mang tính chất gợi ý để các bạn giải quyết bài toán.
1. Tạo project tới là giftshop
2. Tạo packages giftmodel, trong package giftmodel thì có class tên là Gift.java
Class Gift.java có đủ thuộc tính id, name, price, qty
3. Tạo package giftcontroller, trong package giftcontroler thì có class tên là GiftController.java
Class GiftController.java sẽ chứa các phương thức để xử lý thêm xoá và truy vấn các đối tượng Book vào trong cơ sở dữ liệu. SELECT, INSERT, DELETE.
4. Tạo package giftview, trong package bookview thì có class để hiển thị dữ liệu đó là GiftShop.java
Class GiftShop.java người dùng có tính năng 1. chọn xem quà tặng, 2 thêm quà tặng, 3 xoá quà tặng.
Khi chọn 1 thì hiển thị toàn bộ sách có trong thư viện.
Khi chọn 2 thì cho người dùng nhập thông tin sách, nhập xong thì insert vào database
Khi chọn 3 thì cho người dùng nhập id sách muốn xoá, nhập xong thì delete trong databasae
Đăng nhận xét