C3P0 é um conjunto de conexões JDBC de código aberto, que implementa a fonte de dados e a ligação JNDI, suporta a especificação JDBC3 e a extensão padrão do JDBC2. O c3p0 opera de forma assíncrona e as operações lentas do JDBC são concluídas através do processo de ajuda. Estender essas operações pode melhorar efetivamente o desempenho. Atualmente, os projetos de código aberto que o utilizam incluem hibernação, primavera, etc. É uma biblioteca de conjunto de conexões JDBC madura e altamente simultânea, usada para armazenamento em cache e reutilização do suporte PreparedStatements. O c3p0 tem a função de recuperar automaticamente conexões inativas. hibernate3 começou a recomendá-lo
Método 1: Obter informações do banco de dados diretamente no código Java e estabelecer o pool de conexões com o banco de dados
@Test public void test () lança Exception { ComboPooledDataSource cpds = new ComboPooledDataSource (); // Crie um pool de conexões cpds.setDriverClass ("com.mysql.jdbc.Driver"); // Driver do banco de dados cpds.setJdbcUrl ("jdbc: mysql : // localhost: 3306 / test "); // Endereço do banco de dados cpds.setUser (" root "); // Nome do usuário cpds.setPassword (" 123456 "); // Conexão por senha conn = cpds.getConnection (); / / Obter conexão System.out.println (conn); // Print connection }
Método 2: Obter informações do banco de dados através da configuração e estabelecer o conjunto de conexões com o banco de dados
@Test Conexão pública estática getConnection2 () lança SQLException { DataSource cpds = new ComboPooledDataSource ("myc3p0"); // myc3p0 é igual ao atributo name na tag named-config na configuração Connection conn = cpds.getConnection (); // Get Conecte System.out.println (conn); // Imprimir conexão }
O nome do arquivo de configuração colocado no diretório src: c3p0-config.xml
<? xml version = "1.0" encoding = "UTF-8" >? < c3p0-config > < nomeou-config nome = "myc3p0" > <! - 获取连接的4个基本信息-> < propriedade Nome = "jdbcUrl " > jdbc: mysql: // localhost: 3306 / test </ property > < nome da propriedade =" driverClass " > com.mysql.jdbc.Driver </ property > < nome da propriedade =" user " > root < = "senha" > 123456 </ property > ' <! - Configuração de propriedades relacionadas ao gerenciamento do conjunto de conexões do banco de dados- > <! - Se não houver conexões suficientes no banco de dados, quantas conexões serão aplicadas ao servidor de banco de dados ao mesmo tempo -> < nome da propriedade = "quireIncrement " > 5 </ property > <! - Número de conexões ao inicializar o conjunto de conexões com o banco de dados- > < nome da propriedade =" initialPoolSize " > 5 </ property > <! - conexão com o banco de dados O número mínimo de conexões com o banco de dados no conjunto- > < nome da propriedade = "minPoolSize"> 5 </ property > <! - O número máximo de conexões com o banco de dados no pool de conexões com o banco de dados- > < nome da propriedade = "maxPoolSize" > 10 </ property > <! - O número de Instruções que o pool de conexões com o banco de dados C3P0 pode manter- > < property name = "maxStatements" > 20 </ property > <! - O número de objetos Statement que podem ser usados simultaneamente para cada conexão- > < property name = "maxStatementsPerConnection" > 5 </ property > </ named-config > </ c3p0-config >