Để 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:
-
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. - 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.
- Định nghĩa URL của database và username + password để truy cập vào database đó.
- Đăng ký JDBC driver cho SQL Server và thiết lập kết nối.
Chi tiết về việc kết nối ứng dụng Java với cơ sở dữ liệu SQL Server bằng JDBC được thể hiển trong ví dụ dưới đây.
Nội dung chính
Ví dụ về kết nối Java với SQL Server
Tạo bảng 'student' trong cơ sở dữ liệu có tên 'testdb' trong SQL Server với câu lệnh như sau:
CREATE TABLE student ( id INT NOT NULL, name NVARCHAR (32) NOT NULL, address NVARCHAR (32) NOT NULL, PRIMARY KEY (id) );
Insert vài dòng dữ liệu cho bảng 'student'
INSERT INTO student(id, name, address) VALUES (1, N'Công', 'Hanoi'); INSERT INTO student(id, name, address) VALUES (2, N'Dung', 'Vinhphuc'); INSERT INTO student(id, name, address) VALUES (3, N'Ngôn', 'Danang'); INSERT INTO student(id, name, address) VALUES (4, N'Hạnh', 'Hanoi')
Sau khi thực thi các câu lệnh trên chúng ta có được dữ liệu như sau:
Tạo chương trình để kết nối và hiển thị dữ liệu của bảng 'student' ra màn hình như sau:
File: ConnectSQLServerExample.java
package vn.kienthuclaptrinh.jdbc; 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 kienthuclaptrinh.net * @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 kienthuclaptrinh.net * @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; } }
Kết quả:
connect successfully! 1 Công Hanoi 2 Dung Vinhphuc 3 Ngôn Danang 4 Hạnh Hanoi