JDBC - Ví dụ mệnh đề WHERE
Chương này cung cấp một ví dụ về cách chọn bản ghi từ một bảng bằng ứng dụng JDBC. Điều này sẽ thêm các điều kiện bổ sung bằng cách sử dụng mệnh đề WHERE trong khi chọn bản ghi từ bảng. Trước khi thực hiện ví dụ sau, hãy đảm bảo rằng bạn có sẵn những thứ sau:
Để thực hiện ví dụ sau, bạn có thể thay thế tên người dùng và mật khẩu bằng tên người dùng và mật khẩu thực của bạn.
MySQL của bạn hoặc bất kỳ cơ sở dữ liệu nào bạn đang sử dụng, đang hoạt động.
Các bước bắt buộc
Các bước sau là bắt buộc để tạo Cơ sở dữ liệu mới bằng ứng dụng JDBC:
Import the packages:Yêu cầu bạn bao gồm các gói chứa các lớp JDBC cần thiết cho lập trình cơ sở dữ liệu. Thông thường, sử dụng import java.sql. * Là đủ.
Register the JDBC driver: Yêu cầu bạn khởi tạo trình điều khiển để bạn có thể mở kênh liên lạc với cơ sở dữ liệu.
Open a connection:Yêu cầu sử dụng phương thức DriverManager.getConnection () để tạo đối tượng Kết nối, đại diện cho kết nối vật lý với máy chủ cơ sở dữ liệu.
Execute a query:Yêu cầu sử dụng một đối tượng kiểu Câu lệnh để xây dựng và gửi một câu lệnh SQL để tìm nạp các bản ghi từ một bảng đáp ứng điều kiện đã cho. Truy vấn này sử dụngWHERE mệnh đề chọn bản ghi.
Clean up the environment: Yêu cầu đóng tất cả tài nguyên cơ sở dữ liệu một cách rõ ràng thay vì dựa vào bộ sưu tập rác của JVM.
Mã mẫu
Sao chép và dán ví dụ sau vào JDBCExample.java, biên dịch và chạy như sau:
//STEP 1. Import required packages
import java.sql.*;
public class JDBCExample {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/STUDENTS";
// Database credentials
static final String USER = "username";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
//STEP 3: Open a connection
System.out.println("Connecting to a selected database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Connected database successfully...");
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
// Extract records without any condition.
System.out.println("Fetching records without condition...");
String sql = "SELECT id, first, last, age FROM Registration";
ResultSet rs = stmt.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);
}
// Select all records having ID equal or greater than 101
System.out.println("Fetching records with condition...");
sql = "SELECT id, first, last, age FROM Registration" +
" WHERE id >= 101 ";
rs = stmt.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 se){
//Handle errors for JDBC
se.printStackTrace();
}catch(Exception e){
//Handle errors for Class.forName
e.printStackTrace();
}finally{
//finally block used to close resources
try{
if(stmt!=null)
conn.close();
}catch(SQLException se){
}// do nothing
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}//end finally try
}//end try
System.out.println("Goodbye!");
}//end main
}//end JDBCExample
Bây giờ, chúng ta hãy biên dịch ví dụ trên như sau:
C:\>javac JDBCExample.java
C:\>
Khi bạn chạy JDBCExample, nó tạo ra kết quả sau:
C:\>java JDBCExample
Connecting to a selected database...
Connected database successfully...
Creating statement...
Fetching records without condition...
ID: 100, Age: 30, First: Zara, Last: Ali
ID: 102, Age: 30, First: Zaid, Last: Khan
ID: 103, Age: 28, First: Sumit, Last: Mittal
Fetching records with condition...
ID: 102, Age: 30, First: Zaid, Last: Khan
ID: 103, Age: 28, First: Sumit, Last: Mittal
Goodbye!
C:\>