JDBC - Ví dụ mệnh đề giống như
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 đề LIKE 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 điều 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 mình.
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 một đối tượng Connection, đại diện cho một kết nối vật lý với một máy chủ cơ sở dữ liệu.
Execute a query:Yêu cầu sử dụng đối tượng kiểu Câu lệnh để xây dựng và gửi 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 nhất định. Truy vấn này sử dụngLIKE mệnh đề chọn bản ghi để chọn tất cả các sinh viên có tên bắt đầu bằng "za".
Clean up the environment: Yêu cầu đóng tất cả cá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 first LIKE '%za%' ";
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: 100, Age: 30, First: Zara, Last: Ali
ID: 102, Age: 30, First: Zaid, Last: Khan
Goodbye!
C:\>