Tạo đối tượng ConnectionFactory dùng cho kỹ thuật kết nối dùng chung (connection-pool)
Kỹ thuật connection-pool được sử dụng nhiều trong cách tạo 1 ứng dụng chuyên nghiệp. bài viết này chỉ là khởi đầu của kỹ thuật này.
Ở đây tôi tạo 1 lớp và có thể kết nối đến các database khác nhau. Ở đây ta có thể nối đến 1 CSDl bất kỳ thông qua ODBC, MS Access, MS SQL server và MySQL.
Để có thể nối được đến MSSSQL Server và MySQL ta cần phải có driver của nó.
Sau đây là lớp ConnectionFactory
package db.com;
import java.sql.Connection;
import java.sql.DriverManager;
/**
* @author VoVanHai
*/
public class ConnectionFactory {
private static Connection con;
private ConnectionFactory()throws Exception{
String url="";//tùy vào cơ sở dữ liệu
Class.forName(url);
String dburl="";//tùy vào cơ sở dữ liệu
String username="";//tên người dùng của bạn trên cơ sở dữ liệu
String password="";//mật khẩu người dùng
con=DriverManager.getConnection(dburl,username,password);
}
public static ConnectionFactory getInstance()throws Exception{
return new ConnectionFactory();
}
public Connection getConnection(){
return con;
}
public void closeConnection()throws Exception{
if(con!=null)
con.close();
}
}
Chuỗi kết nối url cho 1 số cơ sở dữ liệu:
JDBC-ODBC: sun.jdbc.odbc.JdbcOdbcDriver Ms Access: sun.jdbc.odbc.JdbcOdbcDriver (dùng chung với JDBC-ODBC) Ms SQL server: com.microsoft.sqlserver.jdbc.SQLServerDriver My SQL: com.mysql.jdbc.Driver
Đối với db url:
JDBC-ODBC: "jdbc:odbc:"+dsn (với dsn là data source name cấu hình trong Administrative tools)
Ms Access: "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+filepath;
Ms SQL server: "jdbc:sqlserver://localhost:1433;databaseName="+databaseName
My SQL: "jdbc:mysql://localhost:3306/" +databaseName;
Chúc thành công!
truong anh tuan said
em chào thầy
thầy ơi cho em hỏi làm cách nào để mình kết nối hibernate tới 1 dataSource
em mới chỉ kết nói dc với dử liệu của sample thày ạ
em cảm ơn thầy
vovanhai said
xem phần EJB!