2012-06-11 5 views
6

Para conectar mi base de datos requerida. Estoy planeando usar ConnectionPoolDataSource clase. Pero ¿Cómo puedo establecer los detalles con respecto al nombre de la base de datos (al que quiero que esté conectado) usando esta instancia? Por favor, ayuda en esta ocasión.Conexión usando ConnectionPoolDataSource

Respuesta

11

tratar de leer this documentación y example

EDITAR

ejemplo que acabamos modificado desde arriba enlaces

pasos preparadas: - Descargar MySQL Server - descarga mySQL java driver - descarga Apache Commons Pool - descarga Commons DBCP - Open Client MySQL como MySQL Workbench y crear base de datos usando comandos siguiente

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'); 
  • Crear un proyecto Java, añadir a la ruta de clase, conector myscl, piscina y DBCP (que acaba de descargar todos estos frascos)

añadir siguientes clases

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(); 
    } 
} 

nombre de usuario y pase debe ser cambiado a su usuario db/contraseña

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")); 
    } 

} 

¡Simplemente ejecute el método principal y verá valores de prueba impresos en la consola!

+0

u r mensajes eran algo útil. Pero cómo implementar la instancia. Jdbc3PoolingDataSource source = new Jdbc3PoolingDataSource(); –

+0

Es una implementación posterior, si está utilizando otra base de datos, debe usar otra implementación, por ejemplo, hay implementaciones de controlador jdbc para cada motor de base de datos, como postgress, mysql, MS Sql, Oracle, etc. –

+0

Intenta leer el código de edición. –

Cuestiones relacionadas