Võ Văn Hải's blog

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

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!

3 Responses to “Tạo đối tượng ConnectionFactory dùng cho kỹ thuật kết nối dùng chung (connection-pool)”

  1. 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

  2. vovanhai said

    xem phần EJB!

  3. […] Để chuẩn bị tốt cho bửa thực hành kế tiếp dể dàng hơn nên hôm nay mình sẻ làm một bài kết nối theo kết nối dùng chung. Mình dựa trên ý tưởng của thầy Võ Văn Hải làm các bạn có thể tham khảo ở đây : https://vovanhai.wordpress.com/java/l%E1%BA%ADp-trinh-java-nang-cao/jdbc-java-database-connectivity/t… […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: