2012-06-11 30 views
6

Để kết nối Cơ sở dữ liệu yêu cầu của tôi. Tôi định sử dụng Kết nốiPoolDataSource lớp học. Nhưng Làm cách nào tôi có thể đặt chi tiết về tên cơ sở dữ liệu (mà tôi muốn nó được kết nối) bằng cách sử dụng trường hợp này. Vui lòng Trợ giúp về sự kiện này.Kết nối bằng ConnectionPoolDataSource

Trả lời

11

Cố gắng đọc this tài liệu và example

EDIT

chỉ sửa đổi ví dụ từ trên liên kết

bước chuẩn bị: - tải MySQL Server - tải mySQL java driver - tải Apache Commons Pool - tải Commons DBCP - mở MySQL Client như MySQL Workbench và tạo DB sử dụng kịch bản tiếp theo

delimiter $$ 

CREATE DATABASE `test_stackoverflow` /*!40100 DEFAULT CHARACTER SET utf8 */$$ 

delimiter $$ 

CREATE TABLE `test_table` (
    `idtest_table` int(11) NOT NULL, 
    `test_field` varchar(45) DEFAULT NULL, 
    PRIMARY KEY (`idtest_table`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8$$ 

INSERT INTO `test_stackoverflow`.`test_table` (`idtest_table`, `test_field`) VALUES (1, 'test1'); 
INSERT INTO `test_stackoverflow`.`test_table` (`idtest_table`, `test_field`) VALUES (2, 'test2'); 
  • tạo dự án java, thêm vào đường dẫn lớp, nối myscl, hồ bơi và DBCP (bạn chỉ cần tải về tất cả những lọ)

thêm các lớp tiếp theo

import org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS; 
import org.apache.commons.dbcp.datasources.SharedPoolDataSource; 

import javax.sql.DataSource; 
import java.sql.Connection; 
import java.sql.SQLException; 

/** 
* @author Sergii.Zagriichuk 
*/ 
public class Pool { 
    private static DataSource ds; 

    static { 
     DriverAdapterCPDS cpds = new DriverAdapterCPDS(); 
     try { 
      cpds.setDriver("com.mysql.jdbc.Driver"); 
     } catch (ClassNotFoundException e) { 
      e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. 
     } 
     cpds.setUrl("jdbc:mysql://localhost:3306/test_stackoverflow"); 
     cpds.setUser("root"); 
     cpds.setPassword("root"); 

     SharedPoolDataSource tds = new SharedPoolDataSource(); 
     tds.setConnectionPoolDataSource(cpds); 
     tds.setMaxActive(10); 
     tds.setMaxWait(50); 

     ds = tds; 
    } 

    public static Connection getConnection() throws SQLException { 
     return ds.getConnection(); 
    } 
} 

tên người dùng và vượt qua nên được thay đổi để sử dụng db của bạn/mật khẩu

import java.sql.Connection; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class MainClass { 
    public static void main(String[] args) { 
     Connection connection = null; 
     Statement statement = null; 
     ResultSet resultSet = null; 

     try { 
      connection = Pool.getConnection(); 
      // Do work with connection 
      statement = connection.createStatement(); 
      String selectEmployeesSQL = "select * from test_table"; 
      resultSet = statement.executeQuery(selectEmployeesSQL); 

      while (resultSet.next()) { 
       printTestTable(resultSet); 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } finally { 
      if (resultSet != null) { 
       try { 
        resultSet.close(); 
       } catch (SQLException e) { 
       } // nothing we can do 
      } 
      if (statement != null) { 
       try { 
        statement.close(); 
       } catch (SQLException e) { 
       } // nothing we can do 
      } 
      if (connection != null) { 
       try { 
        connection.close(); 
       } catch (SQLException e) { 
       } // nothing we can do 
      } 
     } 
    } 

    private static void printTestTable(ResultSet resultSet) throws SQLException { 
     System.out.print(resultSet.getInt("idtest_table")+", "); 
     System.out.print(resultSet.getString("test_field")); 
    } 

} 

Chỉ cần chạy phương thức chính và bạn sẽ thấy giá trị thử nghiệm được in cho bảng điều khiển !!!

+0

bài đăng u r khá hữu ích. Nhưng làm thế nào để thực hiện dụ. Jdbc3PoolingDataSource source = new Jdbc3PoolingDataSource(); –

+0

Đó là triển khai sau, nếu bạn đang sử dụng DB khác, bạn phải sử dụng triển khai khác, ví dụ có cài đặt trình điều khiển jdbc cho mỗi công cụ DB, như cho postgress, mysql, MS Sql, Oracle và vv. –

+0

Cố gắng đọc mã chỉnh sửa. –

Các vấn đề liên quan