1. Fuente de datos de configuración de TomCat:
Prerrequisito: debe colocar el paquete de controlador de controlador de base de datos MySQL conectado en el directorio lib en la carpeta común en el directorio de instalación de Tomcat.
1. Método 1: Cree una carpeta Meta-Inf en Webroot y cree un archivo context.xml, de la siguiente manera:
<? xml versión = "1.0" encoding = "utf-8"?> <context> <resource name = "jdbc/chaoshi" auth = "Container" type = "javax.sql.dataSource" maxactive = "50" maxidle = "30" maxwait = "10000" logabonononon = "verdadero" verdadero = "PASTA ROOT" ROOT "Root" Root " DriverClassName = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/dbname"> </recursos> </context>
Método 2: en el context.xml debajo del directorio Tomcat Conf, modifique la etiqueta de contexto original y cámbiela a:
<textition> <!-Conjunto predeterminado de recursos monitoreados-> <watchedResource> webinf/web.xml </watchedResource> <resource name = "jdbc/test" auth = "contenedor" type = "javax.sql.dataSource" maxactive = "50" maxidle = "30" maxwait = "10000" logabandoned = "true" verdadero "verdadero" verdadero "verdadero" verdad " contraseña = "root" DriverClassName = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/testdb"/> </context>
Método 3: Al configurar el directorio virtual, es decir, al configurar el server.xml a continuación, cámbielo a la etiqueta de contexto:
<Context path = "/webroot" reloadable = "true" docbase = "e:/workspace/dataSource/ contraseña = "root" DriverClassName = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/testdb"/> </context>
</El significado de cada atributo en la etiqueta de recursos en el archivo de configuración:
DriverClassName: el nombre completo de la clase de controlador de la base de datos utilizada por JDBC.
Maxactive: el número máximo de conexiones activas proporcionadas por el grupo de conexión al mismo tiempo.
Maxidle: el número máximo de conexiones que el grupo de conexión contiene durante el tiempo de inactividad.
MaxWait: el número máximo de milisegundos, la base de datos espera cuando ocurre una excepción (cuando no hay conexión disponible).
Nombre de usuario: nombre de inicio de sesión al conectarse a la base de datos
Contraseña: la contraseña para conectarse a la base de datos.
URL - URL al conductor. (El nombre de DriverN también está permitido para la compatibilidad hacia atrás).
Código de prueba:
Context initContext = new InitialContext (); context envcontext = (context) initContext.lookup ("java:/comp/env"); dataSource ds = (dataSource) envcontext.lookup ("jdbc/test"); system.out.println (ds.getConnection ());Si no es nulo, debe tener éxito.
Tenga en cuenta que al probarlo, debe probarlo en Tomcat, es decir, debe estar en el contenedor Tomcat (no se moleste, escriba una página JSP simple para probarlo y usar <%...%>, que es bastante simple). Si no se prueba en el contenedor Tomcat, se lanzará una excepción:
... javax.naming.NoinitialContextException: necesita especificar el nombre de clase en el entorno o la propiedad del sistema, o como un parámetro de applet, o en un archivo de recursos de aplicación: java.naming.factory.initial.initial
2. Hay tres formas de configurar grupos de conexión en Hibernate:
Método 1 Use el grupo de conexión de Hibernate.
<Hibernate-Configuration> <session-factory> <!-JDBC Driver-> <Property Name = "Connection.Driver_Class"> com.mysql.jdbc.driver </Property> <!-Url para conectarse a la base de datos-> <propiedad de propiedad = "Connect.Url"> JDBC: MySql: // localhost: 3306/Fehife/Fehife <! Conexión-> <Property Name = "Connect.Username"> root </property> <!-Sogin Password-> <Property Name = "Connection.Password"> </property> <!-si produce el SQL generado durante la ejecución en el registro para la depuración-> <Property Name = "show_sql"> true </sperties> <!-Especifique el lenguaje para la conexión-> <propiedad de propiedad name = "dialect"> org.hibernate.dialect.mysqldialect </property> <!-Mapeing Resources-> <Mapping Resource = "/xx/xx.hbm.xml"/> </session-factory> </ hibernate-configuation> ¡mi propia configuración es la siguiente, la parte comentada es pública y se debe utilizar otros grupos de conexión! <Hibernate-Configuration> <session-factory> <Property name = "show_sql"> true </property> <!-Common conf dbcp/c3p0 necesarios <propiedad name = "Connection.username"> informix </sperty> <propiedad name = "Connection.password"> informix </propiedad> <spertue name = "Connect.driver_class"> com.informix.jdbber name = "Connect.Url"> jdbc: informix-sqli: //192.168.0.188: 1526/db_crm: informixserver = ol_sx; newlocale = zh_cn, en_us; newcodeset = gbk, 8859_1,819; </propiedad> name = "dialect"> com.huatech.sysframe.webapp.common.dao.hibernate.dialet.baseInFormixdialect </property>-> ... ... ... </session-factory> </hibernate-configuration>
Método 2: Use el grupo de conexión de la base de datos especificado por el archivo de configuración.
El grupo de conexión ahora tiene DBCP, C3P0 y Proxoop. En realidad, sabía DBCP
Entre ellos, la configuración de DBCP y C3P0 solo necesita agregar algunas configuraciones a la configuración anterior, y Hibernate identificará automáticamente el grupo de conexión de la base de datos.
Para configurar DBCP, debe unirse:
< name = "dbcp.ps.maxactive"> 100 </propiety> <propiedad name = "dbcp.ps.maxactive"> 100 </propers> <propiedad name = "dbcp.ps.whenexhaustedaction"> 1 </Property> <Property Name = "dbcp.ps.maxwait"> 60000 </propiedad> <propiedad name = "dbcp.ps.maxidle"> 10 </propiedad>->
Para configurar C3P0, debe unirse:
<
La configuración de Proxoop es un poco diferente. No puede simplemente agregarlo, pero debe cambiarlo:
La configuración básica es la siguiente:
<Property name = "proxool.pool_alias"> dbpool </propiety> <Property name = "proxool.xml"> test/huatech/conf/proxoolconf.xml </propine> <Property name = "Connection.Provider_Class"> org.hibernate.connection.ProxOolconnectionProvider </property>
Nota especial: La ruta del siguiente archivo debe configurarse correctamente, de lo contrario FileNotFound
El archivo asociado: Test/Huatech/conf/proxoolconf.xml se configura de la siguiente manera:
<? xml versión = "1.0" encoding = "utf-8"?> <something-else-entirely> <praxool> <sias> dbpool </siias> <!-Proxool solo puede administrar las conexiones generadas por en sí mismo-> <driver-url> JDBC: informix-sqli: //192.168.0.188: 1526/db_crm: informixserver = ol_sx; newlocale = zh_cn, en_us; newcod Eset = gbk, 8859_1,819; </driver-url> <driver-class> com.informix.jdbc.ifxdriver </driver-class> <driver-properties> <propiedad name = "user" value = "informix" /> <propiedad name = "contraseña" value = "informix" /> </driver-properties> <!-Proxool detecta automáticamente el intervalo de tiempo (milisegundos) de cada estado de conexión. Si se detecta la conexión inactiva, se reciclará inmediatamente. Destrucción del tiempo de espera-> <House-mantenimiento-sueño> 90000 </House-Keeping-sleep-time> <!-se refiere al número máximo de solicitudes que esperan en la cola porque no hay una conexión inactiva para asignarse. Las conexiones de usuario que exceden este número de solicitudes no se aceptarán-> <Maximum-New-Connections> 20 </Maximum-New-Connections> <!-El número mínimo de conexiones inactivas mantenidas-> <Prototype-Count> 5 </prototype-Count> <!-Se supera el número máximo de conexiones permitidas. Cuando hay una solicitud, está en cola para esperar en la cola. El número máximo de solicitudes de espera se determina mediante un máximo de las redes-nuevas-> <Maximum-Connection-Count> 100 </Maximum-Connection-Count> <!-El número mínimo de conexiones-> <Minimum-Connection-Count> 10 </mínimo-confuntection-count> </proxool> </algo-else-entirely>
Método 3: Obtenga el grupo de conexión del contenedor (como Tomcat)
Use el grupo de conexión propio del servidor: como Tomcat, Resina, WebLogic, etc.
La configuración de Hibernate es la siguiente: <!-<Property name = "hibernate.connection.dataSource"> java: comp/env/jdbc/crm </propiedad> <propiedad name = "show_sql"> true </propiedad> <propiedad name = "dialect"> com.huatech.sysframe.webapp.common.dao.hibernate.dialet.baseInFormxdialect </propine> <propiedad name = "hibernate.generate_statistics"> verdadero </propiedad>->>>>
Entre ellos, JDBC/CRM de Java: Comp/Env/JDBC/CRM es el nombre del grupo de conexión de la base de datos en el servidor correspondiente, y debe configurarse en el entorno correspondiente.
La configuración de TomCat se describe en el primer método de configuración de Tomcat. Tenga en cuenta que el nombre de JNDI debe modificarse de acuerdo con la situación y debe corresponder al nombre utilizado por Hibernate.
=======================================================
La configuración anterior requiere el paquete JAR para cada grupo de conexión de base de datos, que se incluye en el paquete Hibernate. Si necesita el último, puede descargarlo desde sus respectivos sitios web.
3. Método de primavera para configurar el grupo de conexión:
<bean id = "dataSource" destruye-method = "cerrar"> <propiedad name = "conductorClassName"> <value> com.mysql.jdbc.driver </valor> </propiedad> <propiedad name = "url"> <valor> jdbc: mysql: // localhost: 3306/dbname </valon> </propiedad> <propers name = "UserName"> <value> root </value> </propiety> <Property Name = "Password"> <value> ****** </value> </Property> <Property Name = "Maxactive"> <value> 100 </value> </property> <Property Name = "MaxWait"> <Value> 1000 </value> </propiéTer> <MOPERME NAME = "MAXIDLE"> <Valor> 30 </Value </value " name = "DefaultAutOcommit"> <value> true </alue> </propine> <propiedad name = "removeAbaBaLedoned"> // Recicla automáticamente el grupo de conexión para evitar la fuga del grupo de conexión <valor> true </value> </propers> </rena>
Cuarto, que también es el último del que quiero hablar hoy, es configurar el grupo de conexión a través de la redacción de código, el código es el siguiente:
import java.sql.*; import java.sql.dataSource; import org.apache.commons.dbcp.basicdataSource; public class Connectionpool {private static estaticDataSource dbs = null; public static dataSource setupDataSource () {bds = new BasicAsource (); bds.sestdriverClassName ("com.mysql.jdbc.driver"); // Establezca el nombre de usuario de conexión bds bds.setUsername ("root"); // Establezca la contraseña de conexión bds.setpassword ("root"); // establece la dirección de conexión bds.setUrl ("jdbc: mysql: // localhost: 330 6/dataBaseNeame"); conexiones inicializadas bds.SetInitialSize (50); // Establezca el número total de conexiones aplicadas simultáneamente bds.setMaxactive (-1); // Establezca el número máximo de conexiones en el grupo de búfer bds.setMaxidle (-1); // Establezca el número mínimo de conexiones en las conexiones en el grupo de búfer Bds.setMinidle (0); // Establecer el tiempo de espera más largo el tiempo de espera más largo El tiempo de espera más largo. bds.setMaxWait (-1); return (dataSource) bds;} // método para mostrar el número de conexiones en el grupo de conexión pública estática void void printDataSourCestats (DataSource ds) lanza SQLException {bds = (BasicDataSource) ds; System.out.println (); System.out.println ();} // Método para cerrar el grupo de conexión vecial voidshatDataData ds) arroja sqlexception {bds = (básicoDataSource) ds; bds.close ();}} Para obtener un grupo de conexión, solo puede usar el método estático de esta clase a ConfiguredAsource ().
Los anteriores son varios métodos de configuración para los grupos de conexión de base de datos Java que se le presentan (tomando la base de datos MySQL como ejemplo). Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!