123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package com.yihu.ehr.util.db;
- import org.apache.commons.dbcp2.DriverManagerConnectionFactory;
- import org.apache.commons.dbcp2.PoolableConnection;
- import org.apache.commons.dbcp2.PoolableConnectionFactory;
- import org.apache.commons.dbcp2.PoolingDataSource;
- import org.apache.commons.pool2.impl.GenericObjectPool;
- import javax.sql.DataSource;
- /**
- * Created by Air on 2015/5/28.
- */
- public class DataSourcePool {
- public static final String JDBC_MYSQL = "jdbc:mysql";
- public static final String JDBC_ORACLE = "jdbc:oracle";
- public static final String JDBC_MICROSOFT_SQLSERVER = "jdbc:microsoft:sqlserver";
- public static final String COM_MYSQL_JDBC_DRIVER = "com.mysql.jdbc.Driver";
- public static final String ORACLE_JDBC_DRIVER_ORACLE_DRIVER = "oracle.jdbc.driver.OracleDriver";
- public static final String COM_MICROSOFT_JDBC_SQLSERVER_DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
- private DriverManagerConnectionFactory connectionFactory;
- private PoolableConnectionFactory poolableConnectionFactory;
- private GenericObjectPool<PoolableConnection> connectionPool;
- private String uri;
- public DataSourcePool(String uri) {
- this.uri = uri;
- registerDriver();
- connectionFactory = new DriverManagerConnectionFactory(this.uri, null);
- poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, null);
- connectionPool = new GenericObjectPool<>(poolableConnectionFactory);
- poolableConnectionFactory.setPool(connectionPool);
- }
- public DataSource getDataSource() {
- return new PoolingDataSource<>(connectionPool);
- }
- public void registerDriver() {
- try {
- Class.forName(getDriver());
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- }
- public String getDriver() {
- if (this.uri.contains(JDBC_MYSQL)) {
- return COM_MYSQL_JDBC_DRIVER;
- } else if (this.uri.contains(JDBC_ORACLE)) {
- return ORACLE_JDBC_DRIVER_ORACLE_DRIVER;
- } else if (this.uri.contains(JDBC_MICROSOFT_SQLSERVER)) {
- return COM_MICROSOFT_JDBC_SQLSERVER_DRIVER;
- }
- return null;
- }
- }
|