Bài 44: Kết nối cơ sở dữ liệu với thư viện JDBC trong Java - Lập trình Java cơ bản

Đăng bởi: Admin | Lượt xem: 6526 | Chuyên mục: Java


1. Java JDBC là gì?

Java JDBC là một java API được sử dụng để kết nối và thực hiện truy vấn với cơ sở dữ liệu. JDBC API sử dụng trình điều khiển jdbc để kết nối với cơ sở dữ liệu.
Trước JDBC, ODBC API là một database API được sử dụng để kết nối và thực hiện truy vấn với cơ sở dữ liệu. Nhưng, ODBC API sử dụng trình điều khiển ODBC được viết bằng ngôn ngữ C (tức là nền tảng phụ thuộc và không an toàn). Đó là lý do tại sao Java đã định nghĩa API của chính nó (JDBC API) sử dụng trình điều khiển JDBC (viết bằng ngôn ngữ Java).

API (Application programming interface - Giao diện lập trình ứng dụng) là một tài liệu có chứa mô tả về tất cả các tính năng của một sản phẩm hoặc phần mềm. Nó đại diện cho các lớp và các giao diện (interface) mà các chương trình phần mềm có thể làm theo để giao tiếp với nhau. Một API có thể được tạo cho các ứng dụng, thư viện, hệ điều hành, ...

2. Kết nối Java với SQL Server

Để kết nối Java với SQL Server bằng JDBC, giả sử bạn đã tạo bảng trong SQL Server, bạn cần làm theo 4 bước sau:
  1. Download Microsoft JDBC Driver tại đây, giải nén ra ta được:
    - file sqljdbc41.jar trong thư mục Microsoft JDBC Driver 6.0 for SQL Server\sqljdbc_6.0\enu\jre7, file driver này được sử dụng với jdk/jre 7
    - file sqljdbc42.jar trong thư mục Microsoft JDBC Driver 6.0 for SQL Server\sqljdbc_6.0\enu\jre8, file driver này được sử dụng với jdk/jre 8.
    Một bước quan trọng không kém đó là copy file sqljdbc_auth.dll của thư mục Microsoft JDBC Driver 6.0 for SQL Server\sqljdbc_6.0\enu\auth\xx (với xx là version của window của bạn, 32 hoặc 64) vào thư mục C:\Windows\System32.
  2. Add thư viện sqljdbc4x.jar vào project tương ứng với phiên bản JDK bạn đang sử dụng.
  3. Định nghĩa URL của database và username + password để truy cập vào database đó.
  4. Đăng ký JDBC driver cho SQL Server và thiết lập kết nối.
Ví dụ:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
 
public class ConnectSQLServerExample {
    private static String DB_URL = "jdbc:sqlserver://localhost:1433;"
            + "databaseName=testdb;"
            + "integratedSecurity=true";
    private static String USER_NAME = "sa";
    private static String PASSWORD = "1234567890";
 
    /**
     * main
     * 
     * @author viettuts.vn
     * @param args
     */
    public static void main(String args[]) {
        try {
            // connnect to database 'testdb'
            Connection conn = getConnection(DB_URL, USER_NAME, PASSWORD);
            // crate statement
            Statement stmt = conn.createStatement();
            // get data from table 'student'
            ResultSet rs = stmt.executeQuery("select * from student");
            // show data
            while (rs.next()) {
                System.out.println(rs.getInt(1) + "  " + rs.getString(2) 
                        + "  " + rs.getString(3));
            }
            // close connection
            conn.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
 
 
    /**
     * create connection 
     * 
     * @author viettuts.vn
     * @param dbURL: database's url
     * @param userName: username is used to login
     * @param password: password is used to login
     * @return connection
     */
    public static Connection getConnection(String dbURL, String userName, 
            String password) {
        Connection conn = null;
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            conn = DriverManager.getConnection(dbURL, userName, password);
            System.out.println("connect successfully!");
        } catch (Exception ex) {
            System.out.println("connect failure!");
            ex.printStackTrace();
        }
        return conn;
    }
}
Trong ví dụ này, ta tạo bảng Student trong SQL Server như sau:
Kết quả thu được:
connect successfully!
1  Công  Hanoi
2  Dung  Vinhphuc
3  Ngôn  Danang
4  Hạnh  Hanoi

3. Kết nối Java với MySQL

Để kết nối Java với MySQL bằng JDBC, giả sử bạn đã tạo bảng trong MySQL, bạn cần làm theo 4 bước sau:
  1. Tải file mysql-connector-java-x.y.zz.zip về máy tại https://dev.mysql.com/downloads/connector/j/, giải nén ra được file mysql-connector-java-x.y.zz-bin.jar.
  2. Add thư viện JDBC Driver mysql-connector-java-x.y.zz-bin.jar vào project.
  3. Gọi phương thức Class.forName("com.mysql.jdbc.Driver").
  4. Gọi phương thức DriverManager.getConnection() để kết nối đến cơ sở dữ liệu MySQL.
Ví dụ:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
 
public class ConnectMysqlExample {
    private static String DB_URL = "jdbc:mysql://localhost:3306/testdb";
    private static String USER_NAME = "root";
    private static String PASSWORD = "1234567890";
 
    /**
     * main
     * 
     * @author viettuts.vn
     * @param args
     */
    public static void main(String args[]) {
        try {
            // connnect to database 'testdb'
            Connection conn = getConnection(DB_URL, USER_NAME, PASSWORD);
            // crate statement
            Statement stmt = conn.createStatement();
            // get data from table 'student'
            ResultSet rs = stmt.executeQuery("select * from student");
            // show data
            while (rs.next()) {
                System.out.println(rs.getInt(1) + "  " + rs.getString(2) 
                        + "  " + rs.getString(3));
            }
            // close connection
            conn.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
 
 
    /**
     * create connection 
     * 
     * @author viettuts.vn
     * @param dbURL: database's url
     * @param userName: username is used to login
     * @param password: password is used to login
     * @return connection
     */
    public static Connection getConnection(String dbURL, String userName, 
            String password) {
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(dbURL, userName, password);
            System.out.println("connect successfully!");
        } catch (Exception ex) {
            System.out.println("connect failure!");
            ex.printStackTrace();
        }
        return conn;
    }
}
Trong ví dụ này, ta tạo bảng Student trong MySql như sau:
Kết quả thu được:
connect successfully!
1  Công  Hanoi
2  Dung  Vinhphuc
3  Ngôn  Danang
4  Hạnh  Hanoi
Như vậy, thông qua bài học này, mình đã giới thiệu đến các bạn cơ bản cách kết nối Java với SQL Server và MySQL. Cảm ơn các bạn đã đọc.
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!