Võ Văn Hải's blog

Chỉ có một điều tuyệt đối đó là mọi thứ đều tương đối…

Kết nối java với SQL server

1. Kết nối thông qua ODBC

a. Dùng Data Source Name

Thiết lập DataSource như sau :

Trên windows Vào menu Start->Settings->Control Panel->Administrative Tools->Data Sources (ODBC), kết quả như hình
jdbc_sqlserver_01.png

Nhấn Nút Add, Tìm đến SQL Server, Nhấn Finish.

Nhập vào tên của Data Source, ví dụ là MyDSN, chọn server: nếu server ở localhost thì có thể gõ vào dấu ., nếu có nhiều instances của sqlserver thì phải gõ vào tên_máy_tính/tên_instance. Nhấn Next 2 lần

Chọn Database cần nối:
jdbc_sqlserver_02.png
Nhấn Next, Nhấn Finish.

Nhấn nút “Test Data Source” để kiểm tra kết nối, nếu thành công sẽ hiển thị dòng “TEST COMPLETED SUCCESSFULLY!” Nhấn OK để kết thúc. Ta cần ghi nhớ tên của DSN.

Code để kết nối đến SQL server sử dụng data source như sau:

package vovanhai.wordpress.com;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class ConnectODBC_DSN {

private Connection con=null;

public ConnectODBC_DSN() throws Exception{

String url=”sun.jdbc.odbc.JdbcOdbcDriver”;

Class.forName(url);

String dbUrl=”jdbc:odbc:myDSN”;

con=DriverManager.getConnection(dbUrl);

}

/**

* Lấy danh sách các mẫu tin của bảng CSDL

* @param tableName: tên bảng cần lấy các dòng

* @return danh sách các dòng được lưu trong 1 ResultSet

* @throws SQLException

*/

public ResultSet GetResultSet(String tableName)throws SQLException {

ResultSet rs=null;

Statement stmt=con.createStatement();

String sql=”select * from “+tableName;

rs=stmt.executeQuery(sql);

return rs;

}

public void Close()throws Exception{

con.close();

}

//Thử chương trình

public static void main(String[] args) {

try {

ConnectODBC_DSN conDSN=new ConnectODBC_DSN();

ResultSet rs=conDSN.GetResultSet(“EmployeeInfo”);

while(rs.next()) {

System.out.println(rs.getString(“EmpName”));

}

conDSN.Close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

b. Dùng chuỗi kết nối

Ở đây việc kết nối đến SQL Server cũng thông qua ODBC nhưng chúng ta không cần phải khai báo DSN, ta có thể dùng chuỗi kết nối trực tiếp thông qua ODBC để nối đến SQL Server.  Chuỗi kết nối có dạng

String dbUrl=”jdbc:odbc:Driver={SQL Server};Server=.;DatabaseName=Employee;UserName=sa;Password=”;

Lưu ý với thuộc tính Server: nếu chỉ có 1 server trên máy local thì dùng dấu chấm hoặc chỉ rõ tên máy hoặc IP address. Nếu trên máy có nhiều instance của sql server thì phải chỉ định rõ dùng instance nào. Ví dụ trên máy cài instance có tên SQLEXPRESS thì Server phải là: Server=ComputerName/InstanceName

Code kết nối như sau :

package vovanhai.wordpress.com;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class ConnectODBC_ConString {

private Connection con=null;

public ConnectODBC_ConString() throws Exception{

String url=”sun.jdbc.odbc.JdbcOdbcDriver”;

Class.forName(url);

String dbUrl=”jdbc:odbc:Driver={SQL Server};Server=.;Database=Employee;UserName=sa;Password=”;

con=DriverManager.getConnection(dbUrl);

}

}

2. Kết nối trực tiếp dùng driver

Ở đây việc kết nối thông qua 1 driver do nhà cung cấp hệ quản trị csdl hoặc 1 hãng trung gian thứ 3 cung cấp. Có rất nhiều driver khác nhau có thể làm việc với SQL server nhưng ở đây tôi muốn đề cập đến driver của microsoft. Bạn có thể download nó tại đây.

Sau khi download về, bạn giải nén ra 1 thư mục bất kỳ, giả sử là C:\javaSoft\mssqlJDBCDriver. Bạn chú ý đến tập tin sqljdbc.jar. Copy tập tin này vào project của bạn để có thể sử dụng cho project đó hoặc bạn copy nó vào thư mục %JAVA_HOME%\jre\lib để có thể sử dụng cho tất cả các project có trong máy của bạn.

Bây giờ bạn có thể viết code kết nối như sau

package vovanhai.wordpress.com;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

public class ConnectWithDriver {

private Connection con=null;

public ConnectWithDriver()throws Exception {

Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);

String url=”jdbc:sqlserver://localhost:1433;databaseName=Employee”;

con=DriverManager.getConnection(url,”sa”,””);

}

}

3. Kết nối dùng driver thông qua Application Server

Ví dụ ở đây tôi dùng Jboss 4.2.3GA

Bạn phải tạo 1 file có tên mssql-ds.xml trong thư mục %JBOSS-HOME%\ server\default\deploy\  có nội dung như sau

<?xml version=”1.0″ encoding=”UTF-8″?>

<datasources>

<local-tx-datasource>

<jndi-name>MyDSJNDI_Name</jndi-name>

<connection-url>

jdbc:sqlserver://localhost:1433;databaseName=Tên_CSDL_của_bạn

</connection-url>

<driver-class>

com.microsoft.sqlserver.jdbc.SQLServerDriver

</driver-class>

<user-name>sa</user-name>

<password></password>

<metadata>

<type-mapping>MS SQLSERVER2000</type-mapping>

</metadata>

</local-tx-datasource>

<datasources>

Copy sqljdbc.jar vào thư mục mục %JBOSS-HOME%\ server\default\lib.

Start server và bạn có thể dùng JNDI để lookup như sau:

package vovanhai.wordpress.com;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.sql.DataSource;

public class Connect_JNDI {

private Connection con=null;

public Connect_JNDI() throws Exception{

DataSource ds=null;

Context ctx=new InitialContext();

ds=(DataSource)ctx.lookup(“java://MyDSJNDI_Name”);

con=ds.getConnection();

}

}

Download chương trình demo trên môi trường Eclipse Ganymede tại đây.

 
Follow

Get every new post delivered to your Inbox.

Join 2,213 other followers

%d bloggers like this: