Hướng dẫn kết nối SQL Server trong JAVA Sử dụng Native protocol – All Java (Type IV)


Kiểu kết nối này được sử dụng tương đối rộng rãi do khả năng thực thi nhanh, thuận tiện cho việc phát triển ứng dụng trên client. Tuy nhiên để sử dụng kiểu kết nối thứ 4 này, bạn cần phải download driver và cài đặt cho thư viện trong NetBean trước, bạn có thể vào trang Download của Microsoft để tìm hoặc tìm bằng Google thông qua cụm từ khóa “sqljdbc4.jar and download” là có thể thấy rất nhiều link download cho driver này. Sau khi down được driver dưới dạng file *.jar về máy của mình, hãy khởi động NetBean và tiến hành cài đặt driver cho việc kết nối với SQL Server như hướng dẫn sau :
Tại khung cửa “Project” ở phía bên trái của màn hình soạn thảo code trong netBean, bạn hãy nhấn phải chuột vào mục “Libraries” và chọn lệnh “add Jar/folder 

Lúc này, trên màn hình sẽ xuất hiện cửa sổ “Add Jar/Folder” và nhiệm vụ của bạn phải chọn nơi chứa tập tin “sqljdbc4.jar” mà mình đã download về, sau đó chọn nó để Add vào thư viện của Project để có thể sử dụng trong chương trình của mình cho kết nối loại 4



Nếu Add thành công, trong vùng cửa sổ Project bạn sẽ thấy tên của thư viện chứa Driver mà mình vừa chọn như hình sau

 

Đến đây bạn đã có thể sẵn sàng viết 1 chương trình bằng ngôn ngữ Java kết nối đến databse trong SQL Server theo kiểu “Native protocol – All Java (Type-IV)” rồi.

Trước khi thực hiện ví dụ này, bạn nhớ 1 số điểm sau đây. Chúng ta vẫ sử dụng database qlCuocHen trong SQL Server đã tạo ra trước đó, cổng kết nối mặc nhiên SQL Server quy định (Nếu bạn không thay đổi lại) là 1433, chúng ta có thể sử dụng cổng mặc định này cho chương trình của mình, tuy nhiên. Để các bạn có thể chủ động hơn trong việc quy định cấu hình cổng kết nối khi viết chương trình có khai thác cơ sở dữ liệu bằng SQL Server, tôi quyết định chọn cổng kết nối cho database qlCuocHen ở ví dụ dưới đây là 2010. Chính vì thế bước tiếp theo, tôi sẽ hướng dẫn các bạn cấu hình cổng truyền thông cho SQL Server trong máy của bạn để có thể kết nối được với chương trình minh họa ở dưới đây thông qua cổng 2010.

Hãy nhấn nút “Start” sau đó chọn “All programs” rồi chọn mục “Microsoft SQL Server 2005”, tiếp theo, trong Folder “Configuration Tools” bạn hãy chọn tools : “SQL Server Configuration Manager”. Trên màn hình sẽ xuất hiện cửa sổ 

Bạn hảy nhấn vào dấu “+” ở bên trái của mục “SQL Server 2005 NetWork Configuration”, cấu trúc của cửa sổ sẽ thể hiện như sau 

Lúc này nhìn vào phần cửa sổ bên phải, bạn thấy SQL Server trong máy của tôi có tới 3 giao thức được sử dụng cho việc giao tiếp với các ứng dụng bên ngoài. Vấn đề quan trọng nhất là giao thức TCP/IP phải Enable do kiểu kết nối thứ 4 của JDBC dựa trên việc truyền thông qua Internet bởi Java Socket. Chính vì thế giao thức này của SQL Server bắt buộc phải được Enable. Và để quy định cổng truyền thông, bạn chỉ việc nhấn nút phải chuột vào giao thức này và chọn mục Properties để quy định cấu hình cho nó. Cửa sổ “TCP/IP Properties” sẽ xuất hiện, chọn [tab] IP Address

 

Tại mục IPAll, bạn chọn cổng kết nối là 2010 thông qua khung chọn TCP Port

Tiếp theo, bạn hãy chọn mục Aliases và chọn Properties của Alias đang có trong vùng làm việc bên phải để quy định cổng kết nối cho Alias này là 2010 thông qua mục “Port no 

(Lưu ý: Chắc bạn còn nhớ khi học Networking, số cổng có thể nhận biết nằm trong giới hạn từ 0 … 65535 và 1024 port đầu tiên còn được gọi là wellknown port, ta không nên sử dụng để tránh tranh chấp với những dịch vụ thông dụng khác đang hoạt động trong máy tính của ta)

Như vậy tôi đã hướng dẫn cho bạn 2 vấn đề :

-          Khai báo Driver cho thư viện của NetBean để có thể lập trình kết nối cơ sở dữ liệu trong Java thông quan JDBC với kiểu kết nối thứ 4 “Native protocol – All Java

-          Cấu hình cổng truyền thông cho giao thức “TCP/IP” của SQL Server

Bây giờ ta sẽ viết 1 chương trình ví dụ minh họa cho kiểu kết nối này bằng cách đọc thông tin người quen trong có trong table “dsNguoiQuen” thuộc database qlCuocHen

 

package test_jdbc_type4;

 

import java.sql.*;

import java.util.logging.Level;

import java.util.logging.Logger;

/**

 *

 * @author Nguyen Mai Huy

 */

public class Main {

    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        try {

            ketNoi dt = new ketNoi();

            ResultSet dl = dt.exec("Select * from dsNguoiQuen;");

            while (dl.next()) {

                System.out.println(dl.getString("hoNQ") + " " + dl.getString("tenNQ") + " - WebSite : "+ dl.getString("noiCT"));

            }

           

        } catch (SQLException ex) {

            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);

        }

    }

}

/*______________________________________________________________________________*/

class ketNoi

{

    String servername = null;

    String port = null;

    String database = null;

    String username = null;

    String password = null;

    public Connection dtKetNoi = null;

    /**

     * Default constructor

     */

    public ketNoi(){ //-- thay vì dùng IP cho servername, bạn có thể sử dụng localhost

        servername="192.168.1.2";   port="2010";      database="qlCuocHen";

        username="sa";            password="123456";

        try{                                  //-Nạp Driver điều khiển

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

            this.dtKetNoi = DriverManager.getConnection(getConnectionString());

        } catch (Exception ex){

            ex.printStackTrace();

        }

    }

    /**

     * Ghép các thông số để tạo thành 1 connection String đúng cú pháp có dạng

     * "jdbc:sqlserver://<server_name>:<port>;databaseName=<YourDB>;user=<userName>;password=<pass>"

     * @return - Trả về chuỗi kết nối đầy đủ theo cú pháp đã được tạo thành

     * @throws Exception

     */

    public String getConnectionString() throws Exception

    {

        String kq = "jdbc:sqlserver://";

        kq += servername;

        kq += ":";

        kq += port;

        kq += ";databaseName=";

        kq += database;

        kq += ";user=";

        kq += username;

        kq += ";password=";

        kq += password;

        return kq;

    }

    /**

     * Đọc thông tin từ Database thông qua kết nối đã thiết lập

     * và trả về kết quả ở dạng ResultSet

     * @param sql

     * @return

     */

    public ResultSet exec(String sql)

    {

        ResultSet rs = null;

        try{

            Statement query = this.dtKetNoi.createStatement();

            rs = query.executeQuery(sql);

        } catch (SQLException ex){

            ex.printStackTrace();

        }

        return rs;

    }

    /**

     * Phương thức đóng kết nối

     * @throws SQLException

     */

    public void close() throws SQLException{

        if (this.dtKetNoi!=null) this.dtKetNoi.close();

    }

}

 

Post a Comment

Mới hơn Cũ hơn