JDBC là một API dùng để kết nối và thực thi các câu lệnh SQL xuống database. Trong bài viết này mình sẽ hướng dẫn các bạn sử dụng JDBC trong ứng dụng Java để update dữ liệu.
Điều kiện tiên quyết
Hầu hết các ứng dụng Java hiện đây đều sử dụng Maven hoặc Gradle cho phép chúng ta dễ dàng quản lý các dependency, build source code etc. Vì vậy trong bài viết này mình sẽ sử dụng project maven để hướng dẫn.
Sau khi tạo project maven thành công, chúng ta cần thêm JDBC dependency tương ứng với cơ sở dữ liệu bạn muốn, ở đây mình sử dụng mysql.
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.44</version> </dependency>
Truy vấn dữ liệu trong JDBC
Để truy vấn dữ liệu trong JDBC, chúng ta có các bước thực hiện sau:
Bước 1: Chuẩn bị các thông tin kết nối: Url, User, Password. Lưu ý rằng user/password là do bạn đặt trong lúc cài đặt mysql, hãy sửa lại cho đúng với dữ liệu của bạn nha.
Note:
- localhost: Trỏ đến máy đang chạy ứng dụng.
- 3306: Port chạy mysql.
- students: database muốn sử dụng
Nếu muốn kết nối đến database của một máy khác thì bạn có thể chuyển đổi locahost -> IP máy muốn kết nối và 3306 -> Port chạy mysql của máy muốn kết nối.
Bước 2: Tiếp theo chúng ta cần gọi Class.forName để đăng ký driver cho JDBC. Tuy nhiên kể từ JDBC4.0, tất cả các driver sẽ được tìm kiếm tự động nên chúng ta không cần dùng đến Class.forName nữa.
Class.forName("com.mysql.jdbc.Driver");
Bước 3: Kết nối đến cơ sở dữ liệu và thực thi câu lệnh update database.
Trong ví dụ mình sẽ truy vấn dữ liệu trong bảng Registration của Student database.
Bảng Registration có cấu trúc như sau:
Trong ví dụ này mình sẽ update age = 30 cho các dòng có ID là 100 và 101.
import java.sql.*; public class Main { // JDBC driver name and database URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost:3306/students?serverTimezone=UTC&useSSL=false"; // Database credentials static final String USER = "root"; static final String PASS = "123456"; public static void main(String[] agrs) throws ClassNotFoundException { Class.forName(JDBC_DRIVER); try (Connection connection = DriverManager.getConnection(DB_URL, USER, PASS)) { System.out.println("Connecting to database..."); Statement statement = connection.createStatement(); String update = "UPDATE Registration " + "SET age = 30 WHERE id in (100, 101)"; statement.executeUpdate(update); // Sau khi update, query lai de kiem tra ket qua String sql = "SELECT id, first, last, age FROM Registration"; ResultSet rs = statement.executeQuery(sql); while(rs.next()){ //Retrieve by column name int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //Display values System.out.print("ID: " + id); System.out.print(", Age: " + age); System.out.print(", First: " + first); System.out.println(", Last: " + last); } rs.close(); } catch (SQLException e) { e.printStackTrace(); } } }
Nguồn tham khảo