Kết nối SQL Server với JDBC trong Java

Bài viết này sẽ hướng dẫn làm thế nào để có thể kết nối SQL Server với JDBC trong Java và viết mã để kết nối cơ sở dữ liệu với Microsoft SQL Server từ một máy khách Java. Giả sử bạn có một phiên bản SQL Server được cài đặt , chẳng hạn như Microsoft SQL Server 2012 Express .

Kết nối SQL Server với JDBC trong Java

1. Tải về trình điều khiển Microsoft JDBC

Nhấn vào đây để tải về Microsoft JDBC Driver 4.0 cho SQL Server hỗ trợ:

  • Các phiên bản SQL Server: 2005, 2008, 2008 R2 và 2012.
  • Phiên bản JDK: 5.0 và 6.0.

Chạy chương trình đã tải xuống  sqljdbc_<version>_<language>.exe . Nó sẽ trích xuất các tập tin vào một thư mục được chỉ định (mặc định là Microsoft JDBC Driver 4.0 cho SQL Server ). Bạn sẽ tìm thấy hai tệp jar sqljdbc.jar (cho JDBC 3.0) và sqljdbc4.jar (cho JDBC 4.0) , cộng với một số tệp .dll và tệp trợ giúp HTML.Đặt tệp sqljdbc.jar trong lib ứng dụng của bạn nếu bạn đang sử dụng tệp JDK 5.0 hoặc sqljdbc4.jar nếu bạn đang sử dụng JDK 6.0 hoặc mới hơn.

2.JDBC database URL for SQL Server

Cú pháp của URL database cho SQL Server như sau:

jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

Giải thích:

  • ServerName : tên máy chủ hoặc địa chỉ IP của máy chủ mà máy chủ SQL đang chạy.
  • InstanceName :server của bạn là gì. Trường hợp mặc định được sử dụng nếu tham số này không được chỉ định.
  • PortNumber : cổng của máy chủ SQL, mặc định là 1433. Nếu tham số này bị thiếu, cổng mặc định sẽ được sử dụng.
  • Property = value : chỉ định một hoặc nhiều thuộc tính kết nối bổ sung. Để xem các thuộc tính cụ thể cho máy chủ SQL, hãy truy cập Thiết đặt các thuộc tính kết nối .

Chú ý: SQL Server có hai chế độ xác thực:

  • Windows authentication: sử dụng tài khoản người dùng Windows hiện tại để đăng nhập vào SQL Server. Chế độ này là dành cho trường hợp cả máy khách và máy chủ SQL đang chạy trên cùng một máy. Chúng tôi chỉ định chế độ này bằng cách thêm thuộc tính integratedSecurity = true vào URL.
  • SQL Server authentication: sử dụng tài khoản SQL Server để xác thực. Chúng ta phải xác định cụ thể tên người dùng và mật khẩu cho chế độ này.

Sau đây là một số ví dụ:

– Kết nối với trường hợp mặc định của máy chủ SQL đang chạy trên cùng một máy với máy khách JDBC, sử dụng chứng thực Windows:

jdbc:sqlserver://localhost;integratedSecurity=true;

Kết nối tới một cá thể có tên sqlexpress trên máy chủ lưu trữ dbServer , sử dụng xác thực SQL Server:

jdbc:sqlserver://dbHost\sqlexpress;user=sa;password=secret

Kết nối với một cơ sở dữ liệu có tên testdb trên localhost bằng xác thực Windows:

Jdbc: sqlserver: // localhost: 1433; databaseName = testdb; integratedSecurity = true;

3. Đăng ký trình điều khiển JDBC cho SQL Server và thiết lập kết nối

Trình điều khiển JDBC của SQL Server là com.microsoft.sqlserver.jdbc.SQLServerDriver , vì vậy để đăng ký trình điều khiển này, sử dụng câu lệnh sau:

DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());

Hoặc là:

	
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

Tuy nhiên, điều đó không bắt buộc vì JDBC 4.0 (JDK 6.0) vì trình quản lý trình điều khiển có thể tự động phát hiện và nạp lớp điều khiển miễn là tệp sqljdbc4.jar có trong đường dẫn classpath.Để kết nối, hãy gọi method getConnection () của lớp DriverManager . Dưới đây là một đoạn mã kết nối người dùng savới bí mật mật mã tới sqlexpress ví dụ trên localhost :

String dbURL = "jdbc:sqlserver://localhost\\sqlexpress;user=sa;password=secret";
Connection conn = DriverManager.getConnection(dbURL);
if (conn != null) {
    System.out.println("Connected");
}

Đoạn mã sau chuyển tên người dùng và mật khẩu làm đối số cho phương thức getConnection () :

String dbURL = "jdbc:sqlserver://localhost\\sqlexpress";
String user = "sa";
String pass = "secret";
conn = DriverManager.getConnection(dbURL, user, pass);

Chúng ta cũng có thể sử dụng một đối tượng java.util.Properties để lưu trữ các thuộc tính kết nối, như trong ví dụ sau:

String dbURL = "jdbc:sqlserver://localhost\\sqlexpress";
Properties properties = new Properties();
properties.put("user", "sa");
properties.put("password", "secret");
conn = DriverManager.getConnection(dbURL, properties);

LƯU Ý: nếu bạn muốn sử dụng chế độ authentication Windows ( integratedSecurity = true ), bạn phải có sqljdbc_auth.dll trong đường dẫn classpath.

4. Chương trình ví dụ

Để chứng minh, chúng tôi tạo ra một chương trình nhỏ kết nối tới một cá thể SQL Server trên localhost và in ra một số thông tin cơ sở dữ liệu như sau:

package com.itphutran.jdbc;
 
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
 
/**
 * This program demonstrates how to establish database connection to Microsoft
 * SQL Server.
 * @author www.itphutran.com
 *
 */
public class JdbcSQLServerConnection {
 
    public static void main(String[] args) {
 
        Connection conn = null;
 
        try {
 
            String dbURL = "jdbc:sqlserver://localhost\\sqlexpress";
            String user = "sa";
            String pass = "secret";
            conn = DriverManager.getConnection(dbURL, user, pass);
            if (conn != null) {
                DatabaseMetaData dm = (DatabaseMetaData) conn.getMetaData();
                System.out.println("Driver name: " + dm.getDriverName());
                System.out.println("Driver version: " + dm.getDriverVersion());
                System.out.println("Product name: " + dm.getDatabaseProductName());
                System.out.println("Product version: " + dm.getDatabaseProductVersion());
            }
 
        } catch (SQLException ex) {
            ex.printStackTrace();
        } finally {
            try {
                if (conn != null && !conn.isClosed()) {
                    conn.close();
                }
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
    }
}

Chương trình sẽ tạo ra kết quả sau:

Driver name: Microsoft JDBC Driver 4.0 for SQL Server

Driver version: 4.0.2206.100

Product name: Microsoft SQL Server

Product version: 11.00.2100

TỔNG KẾT

Qua bài này, các bạn đã tìm hiểu cách để kết nối với sql server– hệ quản trị cơ sở dữ liệu với jdbc bằng nhiều cách cụ thể. Hy vọng rằng sẽ giúp các bạn trong quá trình học tập và tìm hiểu!

 

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