1. Tomcat Configuração Fonte de dados:
Pré -requisito: você precisa colocar o pacote conectado do MySQL Driver Driver Jar no diretório Lib sob a pasta comum no diretório de instalação do Tomcat.
1. Método 1: Crie uma meta-inf de pasta sob Webroot e crie um arquivo context.xml nele, como segue:
<? xml versão = "1.0" coding = "utf-8"?> <Context> <nome do recurso = "jdbc/chaoshi" auth = "container" type = "javax.sql.dataSource" maxactive = "50" maxidle = "30" max) driverclassName = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/dbname"> </resource> </xexext>
Método 2: No contexto.xml abaixo do diretório Tomcat conf, modifique a tag de contexto original e altere -a para:
<Context> <!-Conjunto padrão de recursos monitorados-> <SuporedResource> web-inf/web.xml </assistirdresource> <nome do recurso = "jdbc/test" auth = "container" type = "javax.sql.datasource" maxactive = "50" maxidle = "30" MAX ", senha = "root" driverclassName = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/testdb"/> </context>
Método 3: Ao configurar o diretório virtual, ou seja, ao configurar o servidor.xml abaixo Conf, altere -o para a tag de contexto:
<Context path = "/webroot" RELOADABLE = "true" docBase = "e:/workspace/datasource/webroot"> <nome do recurso = "jdbc/teste" auth = "container" type = "javax.sql.datasource" maxactive = "50" maxidle = "" 30 ", senha = "root" driverclassName = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/testdb"/> </context>
</O significado de cada atributo na tag de recurso no arquivo de configuração:
DriverClassName - o nome completo da classe Driver de banco de dados usada pelo JDBC.
Maxactive - o número máximo de conexões ativas fornecidas pelo pool de conexões ao mesmo tempo.
Maxidle - o número máximo de conexões que o pool de conexões mantém durante o tempo de marcha lenta.
Maxwait - O número máximo de milissegundos que o banco de dados espera quando ocorre uma exceção (quando não há conexão disponível).
nome de usuário - nome de login ao se conectar ao banco de dados
Senha - a senha para se conectar ao banco de dados.
URL - URL para o motorista. (Drivername também é permitido para compatibilidade com versões anteriores.)
Código de teste:
Context initContext = new InitialContext (); contexto EnvContext = (context) initContext.Lookup ("java:/comp/Env"); DataSource ds = (DataSource) EnvContext.lookup ("jdbc/test"); System.out.println (ds.getConnection ();Se não for nulo, deve ser bem -sucedido.
Observe que, ao testar, você deve testá -lo no Tomcat, ou seja, ele deve estar no contêiner Tomcat (não se preocupe, escreva uma página JSP simples para testá -lo e usar <%...%>, o que é bastante simples). Se não for testado no contêiner Tomcat, será lançada uma exceção:
... javax.naming.noinitialContextexception: precisa especificar o nome da classe em propriedade do ambiente ou do sistema, ou como um parâmetro de applet, ou em um arquivo de recurso de aplicativo: java.naming.factory.initial
2. Existem três maneiras de configurar os pools de conexão em Hibernate:
Método 1 Use o próprio pool de conexão do Hibernate.
<Hibernate-Configuration> <Session-Factory> <!-jdbc driver-> <propriedade name = "Connection.driver_class"> com.mysql.jdbc.driver </propriedade> <!-URL para conectar-se ao banco de dados-> <nome do nome "e! A conexão-> <propriedade name = "Connection.UserName"> root </propriedade> <!-Login senha-> <propriedades name = "Connection.password"> </propriedade> <!-se deve produzir o SQL gerado durante a execução para o log para depifra-> <nome da propriedade-Show_SQL "> True </sistirwer) <!-especificar-> name = "dialect"> org.hibernate.dialect.mysqldialect </propriedade> <!-Mapping Resources-> <Mapping Resource = "/xx/xx.hbm.xml"/> </session-factory> </hibernate-Configuration> A minha própria conferência é como se segue a seguir, a parte do comentário é, a parte do comentário e a parte do poço é o meu próprio pool, o que é o poço, a parte do poço é o que é o poço, o outro povo, o que é o poço, o outro povo é o que é o meu próprio pool, o poço! <Hibernate-Configuration> <Session-Factory> <Propriedade name = "show_sql"> true </propriedade> <!-Common conf dbcp/c3p0 necessário <propriedades name = "Connection.username"> informix </property> <names name = "Connection.password"> name = "Connection.driver_class"> com.informix.jdbc.ifxdriver </erouse> <Propriedade name = "Connection.url"> jdbc: Informix-sqli: //192.168.0.188: 1526/db_crm: informaxserver = ol_sx; newlocale = zh_cn, en_us; newcodeset = gbk, 8859_1,819; name = "dialect"> com.huatech.sysframe.webapp.common.dao.hibernate.dialet.baseinformixdialect </propriedade>-> ... ... ... ... </session-factory> </hibernate-configuration>
Método 2: Use o pool de conexão do banco de dados especificado pelo arquivo de configuração.
O pool de conexões agora possui DBCP, C3P0 e Proxoop. Na verdade, eu conhecia o DBCP
Entre eles, a configuração do DBCP e C3P0 só precisa adicionar algumas configurações à configuração acima, e o Hibernate identificará automaticamente o pool de conexão do banco de dados.
Para configurar o DBCP, você precisa participar:
<!- dbcp conf <propriedade name = "dbcp.maxactive"> 100 </property> <propriedade name = "dbcp.whenexhaustedaction"> 1 </propriedade> <names name = "dbcp.maxwait"> 60000 </propriedade> <Nome da propriedade "" name = "dbcp.ps.maxactive"> 100 </propriedade> <propriedade name = "dbcp.ps.maxactive"> 100 </property> <propriedade name = "dbcp.ps.whexhaustedaction"> 1 </propriedade> <names name = "dbcp.ps.maxit"> 60000 <//
Para configurar o C3P0, você precisa participar:
<!-- c3p0 conf<property name="c3p0.min_size">5</property><property name="c3p0.max_size">30</property><property name="c3p0.time_out">1800</property><property name="c3p0.max_statement">50</property>-->
A configuração do Proxoop é um pouco diferente. Você não pode simplesmente adicioná -lo, mas precisa alterá -lo:
A configuração básica é a seguinte:
<propriedade name = "proxool.pool_alias"> dbpool </property> <propriedade name = "proxool.xml"> test/huatech/conf/proxoolconf.xml </property> <propriedades name = "Connection.Provider_class"> org.hibernate.connection.proxonConnection.Provador
NOTA ESPECIAL: O caminho do seguinte arquivo deve ser configurado corretamente, caso contrário, fileNotfound
O arquivo associado: test/huatech/conf/proxoolconf.xml está configurado da seguinte forma:
<? xml versão = "1.0" coding = "utf-8"?> <Something-Else-Entrely> <roxool> <leias> dbpool </leias> <!-Proxool só pode gerenciar conexões geradas por em si-> <rivera-url> jdbc: informix-sqli: //192.168.0.188: 1526/db_crm: informaxserver = ol_sx; newlocale = zh_cn, en_us; newcod ESET = GBK, 8859_1.819; </river-url> <river-class> com.informix.jdbc.ifxdriver </river-class> <river -properties> <Propriedade name = "user" value = "informix" /> <propriedade name = "senha" value = "informax" /> < /driver-properties> <!-Proxool detecta automaticamente o intervalo de tempo (milissegundos) de cada estado de conexão. Se a conexão ociosa for detectada, ela será reciclada imediatamente. Destruição de tempo limite-> <House-Keeping-Sleep-time> 90000 </house-skeeping-sone-time> <!-Refere-se ao número máximo de solicitações que aguardam na fila, porque não há conexão ociosa a ser alocada. As conexões do usuário que excedem esse número de solicitações não serão aceitas-> <Maximum-New-Connections> 20 </xodentum-New-Connections> <!-O número mínimo de conexões ociosas mantidas-> <rototype-count> 5 </rototype-count> <!-O número máximo de conexões permitidas é excedido. Quando há uma solicitação, ele está na fila para esperar na fila. O número máximo de solicitações de espera é determinado por conexões máximas-> <contagem máxima de conexão> 100 </-conexão com conexão máxima> <!-o número mínimo de conexões-> <minimum-conexão> 10 </minimum-connection-count> </roxool> </algo-ele.
Método 3: Obtenha o pool de conexões do contêiner (como Tomcat)
Use o próprio pool de conexão do servidor: como tomcat, resina, weblogic, etc.
A configuração do hibernato é a seguinte: <!-<propriedade name = "hibernate.connection.datasource"> java: comp/Env/jdbc/crm </propriedade> <propriedades name = "show_sql"> true </propriedade> <propriedade <propriedade < name = "dialect"> com.huatech.sysframe.webapp.common.dao.hibernate.dialet.baseInformixDialect </Property> <Nome da propriedade = "hibernate.generate_statistics"> true </propriedade>->
Entre eles, JDBC/CRM de Java: Comp/Env/JDBC/CRM é o nome do pool de conexão do banco de dados no servidor correspondente e precisa ser configurado no ambiente correspondente.
A configuração do tomcat é descrita no primeiro método de configuração do TomCat. Observe que o nome do JNDI deve ser modificado de acordo com a situação e deve corresponder ao nome usado pelo Hibernate.
======================================================
A configuração acima requer o pacote JAR para cada pool de conexão de banco de dados, incluído no pacote Hibernate. Se você precisar do mais recente, pode baixá -lo em seus respectivos sites.
3. Método de Spring de configurar o pool de conexões:
<bean id = "DataSource" Destroy-Method = "Close"> <Propriedade name = "DriverClassName"> <Value> com.mysql.jdbc.driver </value> </oiltery> <Property Name = "Url"> <Value> jdbc: mySql: // LocalHost: 3306/dbname <//dbname Nome = "Nome de usuário"> <Value> root </value> </propriedade> <propriedade name = "senha"> <value> ****** </value> </property> <propriedade name = "maxactive"> <value> 100 </value </propriedade> (propriedade> <nome da propriedade = "maxwait"> </value> </value </propriedade> <weead> name = "MAXWAIT"> </Value> </souper> </propriedade> <weead> <names> name = "DefaultAutocomit"> <Value> true </value> </property> <propriedade name = "removeabandon"> // Recicle automaticamente o pool de conexão para evitar vazamentos do pool de conexão <Value> true </value> </propriedade> </bean>
Quarto, que também é o último sobre o qual quero falar hoje, é configurar o pool de conexões através da redação do código, o código é o seguinte:
importar java.sql.*; importar java.sql.dataSource; importar org.apache.commons.dbcp.basicdataSource; classe pública ConnectionPool {private static BasicDataSource DBS = NULL; bds.sestdriverclassName ("com.mysql.jdbc.driver"); // Defina o nome de usuário da conexão bds.setUserName ("root"); // defina a senha da conexão bds.setPassword ("root"); // define o endereço de conexão BDS.Seturl (" conexões inicializadas bds.setInitialSize (50); // Defina o número total de conexões aplicadas simultaneamente bds.setMaxactive (-1); // Defina o número máximo de conexões no pool buffer bds.setmaxidle (-1); // define o número mínimo de conexões no pool buffer bds.setMinidle (0); 0); bds.setMaxWait (-1); Return (DataSource) BDS;} // Método para exibir o número de conexões no pool de conexão PULP PRIBTTÁTICO PrintDataSourcestats (DataSource DS) lança SqLexception {bds = (BasicDataSource) ds; System.out.println (); ds) lança sqLexception {bds = (BasicDataSource) ds; bds.close ();}} Para obter um pool de conexões, você pode usar apenas o método estático desta classe para configurar oSource ().
Os acima são vários métodos de configuração para os pools de conexão de banco de dados Java introduzidos em você (levando o banco de dados MySQL como exemplo). Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!