agrupación de conexiones de base de datos
¿Cuál es la agrupación de conexiones de base de datos?
En JDBC, y apaga cada vez que se crea un objeto Connection va a consumir una cierta cantidad de tiempo y recursos IO. Esto se debe a que el programa Java para establecer un vínculo entre la base de datos, el lado de la base de datos para verificar el nombre de usuario y contraseña, y para asignar recursos para este enlace, el programa Java debe ser cargado en la memoria, en nombre de enlaces de objetos java.sql.Connection, etc. Por lo tanto, el establecimiento de un enlace de base de datos es costoso, especialmente cuando un gran número de acceso concurrente, si visitas un día es un sitio de 100.000, entonces el servidor del sitio que necesita para crear, desvincular 100.000 veces, con frecuencia crean y fuera abierta enlace de base de datos que sin duda afectará la eficiencia de acceso a la base de datos, e incluso se puede bloquear la base de datos.
Para evitar la creación de un enlace de base de datos con frecuencia, los programadores han propuesto la tecnología de agrupación de conexiones de base de datos. agrupación de conexiones de base de datos es responsable de la distribución, la gestión y la liberación de los enlaces de bases de datos, lo que permite que una aplicación existente reutilización enlace de base de datos, en lugar de restablecer
Leyenda:
gráfico:
Como puede verse en la figura, la agrupación de conexiones de base de datos creará un enlace de base de datos de inicialización de un cierto número de conexiones en el estanque cuando el programa de aplicación para acceder a la base de datos no se crea directamente a partir de la conexión, pero la agrupación de conexiones de "aplicar" una conexión, Si la conexión de la agrupación de conexiones ha gratuita, entonces se devuelve, de lo contrario crear una nueva conexión. Después de su uso, el conjunto de conexiones de recuperación voluntad conexión. Y entregado a otros temas, con el fin de reducir el número de encendido y apagado para crear enlaces de bases de datos, mejorar la eficiencia de acceso a la base de datos.
DBCP fuente de datos
DBCP agrupación de conexiones de base de datos (base de datos Connection Pool) corto, en el código abierto Apache agrupación de conexiones para alcanzar el tejido, la agrupación de conexiones Tomcat es utilizado por el componente de servidor, cuando se utiliza la fuente de datos DBCP solo, necesidad de importar dos paquetes frasco en la solicitud
- Commons-dbcp.jar
- Commons-pool.jar
Código de ejemplo:
código:
public class {testDemo
/ *
* Clase BasicDataSource BasicDataSource utilizando la clase para crear un objeto de origen de datos, el valor de la propiedad objeto de origen de datos de ajuste manual, y luego obtener un objeto de conexión.
* /
public static origen de datos ds = null;
estática {
// obtener el DBCP fuente de datos de objetos clase de implementación
bds BasicDataSource = nuevo BasicDataSource ();
// establecer la información de configuración necesaria para conectar con la base de datos
bds.setDriverClassName ( "com.mysql.jdbc.Driver");
bds.setUrl ( "jdbc: mysql: // localhost: 3306 / demo");
bds.setUsername ( "raíz");
bds.setPassword ( "123456");
// número determinado de parámetros del conjunto de conexiones eslabones de la conexión a la base de la piscina de inicialización
bds.setınitialsiz a (5);
// número determinado de enlaces más grande agrupación de conexiones de base de datos activa
bds.setMaxActive (5);
ds = DDL;
}
public static void Main (args String []) throws SQLException {
// Obtener el objeto de vínculo de base de datos
conn Conexión = ds.getConnection ();
// Obtener el enlace de base de datos de información
DatabaseMetaData metaData = conn.getMetaData ();
// impresión de enlace de base de datos de información
System.out.println (metaData.getURL ());
}
}
C3P0 fuentes de datos
C3P0 es una de la agrupación de conexiones de base de datos de código abierto populares más, que implementa la interfaz DataSource para una fuente de datos, y el apoyo JDBC2 JDBC3 de normas, fácil expansión y un rendimiento superior, conocido framework de código abierto de hibernación y la primavera se utilizan en la fuente de datos. En el desarrollo de la fuente de datos utilizando C3P0, C3P0 necesidad de entender la clase de implementación de interfaz ComboPooledDataSource origen de datos, que es el de las clases esenciales C3P0, se proporciona un método de fuente de datos de objetos relevantes
Código de ejemplo:
testDemo3 public class {
public static origen de datos ds = null;
estática {
CPDS ComboPooledDataSource = nuevo ComboPooledDataSource ();
tratar {
cpds.setDriverClass ( "com.mysql.jdbc.Driver");
cpds.setJdbcUrl ( "jdbc: mysql: // localhost: 3306 / demo");
cpds.setUser ( "raíz");
cpds.setPassword ( "123456");
cpds.setInitialPoolSize (5);
cpds.setMaxPoolSize (5);
ds = CPDS;
} Catch (Exception e) {
// TODO: excepción mango
arrojar nueva ExceptionInInitializerError (e);
}
}
/ **
* @param args
* @Throws SQLException
* /
public static void Main (args String []) throws SQLException {
// generada-Auto TODO Stub
System.out.println (ds.getConnection ());
}
}