Select MySQL bằng Java JDBC Driver
Trong bài này bạn sẽ được học cách thực hiện truy vấn Select trong MySQL bằng cách sử dụng Java JDBC Driver. Đây là cách lấy danh sách dữ liệu table trong Java khá phổ biến.
1. Kết nối vào Database
Để thực hiện được truy vấn này thì hãy chắc chắn rằng bạn đã kết nối vào MySQL nhé. Nếu chưa thì hãy đọc bài kết nối MySQL bằng Java JDBC Driver.
Connection conn = DriverManager.getConnection(url,username,password);
Ở bài đó mình đã tạo một lớp kết nối tên là MySQLJDBCUtil
nên ta chỉ cần gọi phương thức kết nối từ lớp này là được. Thông số kết nối nằm trong file db.properties.
Bài viết này được đăng tại [free tuts .net]
Connection conn = MySQLJDBCUtil.getConnection()
2. Tạo Statement
Sau khi kết nối xong thì hãy tạo một đối tượng Statement
bằng cách sử dụng phương thức createStatement
trong đối tượng conn
đó.
Statement stmt = conn.createStatement();
* Lưu ý: Khi đã tạo xong Statement
thì bạn có thể thực hiện bất kì truy vấn SQL nào, không chỉ riêng gì Select.
Dưới đây là một ví dụ với lệnh Select.
String sql = "SELECT first_name, last_name, email " + "FROM candidates"; ResultSet rs = stmt.executeQuery(sql)
Chúng ta đã gọi phương thức executeQuery()
trong đối tượng Statement (stmt)
. Phương thức này có công dụng thực thi một câu truy vấn bất kì và trả kết quả về thuộc kiểu ResultSet.
ResultSet cung cấp cho bạn một số phương thức để duyệt qua từng record. Phương thức next()
sẽ trả về record hiện tại và chuyển con trỏ sang record tiếp theo nếu danh sách có dữ liệu, ngược lại nó return false
.
3. Lấy dữ liệu các field
Để lấy dữ liệu của các field thì tùy thuộc vào kiểu dữ liệu của field, công thức cơ bản đó là:
getDataType()
Ví dụ:
getString("column_name")
dùng để lấy giá trị theo tên cộtgetInt(1)
dùng để lấy theo thứ tự của cột
Hãy xem ví dụ dưới đây để hiểu rõ hơn.
while (rs.next()) { System.out.println(rs.getString("first_name") + "\t" + rs.getString("last_name") + "\t" + rs.getString("email")); }
4. Đóng kết nối
Bạn nên thực hiện thao tác ngắt kết nối sau khi thực hiện xong truy vấn để đảm bảo an toàn nhé.
try{ rs.close(); stmt.close(); } catch(SQLException e) { System.out.println(e.getMessage()); }
Nếu bạn sử dụng khối lệnh try-with-resource
thì nó sẽ tự động ngắt kết nối, bạn sẽ không phải lam gì cả.
Dưới đây là file tổng kết những gì mà mình đã giải thích ở trên, bằng cách sử dụng database mẫu.
package org.mysqltutorial; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * * @author mysqltutorial.org */ public class Main { public static void main(String[] args) { // String sql = "SELECT first_name, last_name, email " + "FROM candidates"; try (Connection conn = MySQLJDBCUtil.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql)) { // loop through the result set while (rs.next()) { System.out.println(rs.getString("first_name") + "\t" + rs.getString("last_name") + "\t" + rs.getString("email")); } } catch (SQLException ex) { System.out.println(ex.getMessage()); } } }
Kết quả như sau:
Như vậy là mình đã hướng dẫn xong cách truy vấn Select MySQL bằng cách sử dụng Java JDBC Driver. Đây là kiến thức khá cơ bản và là tiền đề để bạn tự viết ra những thư viện tốt hơn.