Kết nối cơ sở dữ liệu với JDBC bằng nhiều cách

Trong java, một trong những vấn đề để tạo và xây dựng nên một ứng dụng web hoàn chỉnh, dữ liệu có nội dung động thì chúng ta cần kết nối với hệ quản trị cơ sở dữ liệu để lấy những data để hiển thị đúng yêu cầu của người dùng.Trong bài này chúng ta cùng nhau học cách để kết nối với cơ sở dữ liệu với JDBC.

Điều kiện cần để kết nối với hệ quản trị cơ sở dữ liệu:

Để kết nối với một hệ quản trị cơ sở dữ liệu cụ thể, nó đòi hỏi phải thực hiện hai bước sau:

  • Tải lớp trình điều khiển JDBC thích hợp sử dụng câu lệnh Class.forName ().
  • Thiết lập một kết nối bằng cách sử dụng DriverManager.getConnection ().

Từ Java 6 với JDBC 4.0, bước đầu tiên không còn cần thiết nữa vì người quản lý trình điều khiển cố gắng tải trình điều khiển thích hợp từ classpath. Điều đó có nghĩa, nếu bạn đặt tệp JAR của trình điều khiển JDBC cho MySQL như mysql-connector-java-5.1.7-bin.jar trong đường dẫn lớp, trình quản lý trình điều khiển sẽ tự động tải lớp com.mysql.jdbc.Driver mà nó Tìm thấy trong tệp JAR.Các DriverManager lớp có sẵn từ gói java.sql . Có ba phiên bản của phương thức getConnection () cho phép chúng tôi thiết lập kết nối đến cơ sở dữ liệu theo ba cách khác nhau:

Các cách để kết nối đến cơ sở dữ liệu với jdbc:

    • static Connection getConnection(String url) :

Thiết lập kết nối từ URL cơ sở dữ liệu đã cho dưới dạng: jdbc:subprotocol :subname

    • static Connection getConnection(String url, Properties info) :

Thiết lập một kết nối từ URL cơ sở dữ liệu nhất định và một thuộc tính đối tượng trong đó bao gồm thêm các thông tin như username và password.

    • static Connection getConnection(String url, String user, String password)

Thiết lập một kết nối từ URL database, username và password.

Như bạn đã biết, tất cả các phương pháp đều yêu cầu một URL database là một chuỗi trong một định dạng đặc biệt chứa thông tin về các thông số kết nối cơ sở dữ liệu.Chẳng hạn như server name, database name, user, password … URL database cụ thể cho một hệ thống cơ sở dữ liệu cụ thể. Sau đây là ví dụ về một URL database cho MySQL:

jdbc:mysql://localhost:3306/test

Nơi localhost là server name, 3306 là cổng port mặc định, và test là tên database.Tất cả các phương pháp trả về một kết nối đối tượng được sử dụng để làm các truy vấn SQL vào cơ sở dữ liệu được kết nối.Các ví dụ sau đây minh họa việc thiết lập kết nối đến hệ quản trị cơ sở dữ liệu MySQL.

Nó yêu cầu tải trình điều khiển JDBC rõ ràng bằng cách sử dụng phương thức Class.forName() :

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
public class ConnectJDBC3 {
    public static void main(String[] args) {
        String databaseURL = "jdbc:mysql://localhost:3306/test";
        String user = "user";
        String password = "password";
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(databaseURL, user, password);
            if (conn != null) {
                System.out.println("Connected to the database");
            }
        } catch (ClassNotFoundException ex) {
            System.out.println("Could not find database driver class");
            ex.printStackTrace();
        } catch (SQLException ex) {
            System.out.println("An error occurred. Maybe user/password is invalid");
            ex.printStackTrace();
        } finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }

Ví dụ cho JDBC 4.0 trở lên

Từ JDBC 4.0 (Java 6), chúng ta có thể loại bỏ một cách an toàn câu lệnh Class.forName () . Dưới đây là ba ví dụ về kết nối với cùng một cơ sở dữ liệu theo ba cách khác nhau:

Ví dụ 1: getConnection (String url)

Bằng cách này, chúng ta phải truyền các biến vào URL database:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 
public class DBConnect1 {
    public static void main(String[] args) {
        String databaseURL = "jdbc:mysql://localhost:3306/test?user=root&password=root123";
        Connection conn = null;
        try {
            conn = DriverManager.getConnection(databaseURL);
            if (conn != null) {
                System.out.println("Connected to the database");
            }
        } catch (SQLException ex) {
            System.out.println("An error occurred. Maybe user/password is invalid");
            ex.printStackTrace();
        } finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }
}

Ví dụ 2: getConnection (String url,Properties info) :

Bằng cách này, chúng ta đặt user và password  vào trong file Properties :

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
 
public class DBConnect2 {
    public static void main(String[] args) {
        String databaseURL = "jdbc:mysql://localhost:3306/test";
        Connection conn = null;
        try {
            Properties props = new Properties();
            props.put("user", "root");
            props.put("password", "root123");
            conn = DriverManager.getConnection(databaseURL, props);
            if (conn != null) {
                System.out.println("Connected to the database");
            }
        } catch (SQLException ex) {
            System.out.println("An error occurred. Maybe user/password is invalid");
            ex.printStackTrace();
        } finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
            }
        }
    }
}

Ví dụ 3: getConnection (String url, String user, String password)

Bằng cách này, chúng tôi cung cấp cho  userr và pass trực tiếp vào các đối số của phương thức:

Để biết thêm thông tin về  database URL và tải driver JDBC:

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
x