1. Tomcat -Konfigurationsdatenquelle:
Voraussetzung: Sie müssen das angeschlossene MySQL -Datenbank -Treiber -JAR -Paket in das LIB -Verzeichnis unter den gemeinsamen Ordner im Tomcat -Installationsverzeichnis einfügen.
1. Methode 1: Erstellen Sie unter Webroot einen Ordner-Meta-Inf und erstellen Sie einen Dateikontext.xml wie folgt:
<xml version = "1.0" coding = "utf-8"?> <context> <ressourcenname = "jdbc/chaoshi" auth = "container" type = "javax.sql.datasource" maxactive = "50" maxidle = "30" maxwait = "10000" logaboned = "username" username DriverClassName = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/dbname"> </ressourcen> </context>
Methode 2: Im Context.xml unter dem Tomcat -Verzeichnis Conf ändern Sie das ursprüngliche Kontext -Tag und ändern Sie es in:
<Context> <!-Standardset von überwachten Ressourcen-> <WatchedResource> web-inf/web.xml < password = "root" triverClassname = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/testdb"/> </context>
Methode 3: Wenn Sie das virtuelle Verzeichnis konfigurieren, ändern Sie es bei der Konfiguration des server.xml unter Conf Conf in das Kontext -Tag:
<Context path = "/webroot" reloadable = "true" docbase = "e:/Workspace/dataSource/webroot"> <Ressourcenname = "jdbc/test" auth = "container" type password = "root" triverClassname = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/testdb"/> </context>
</Die Bedeutung jedes Attributs im Ressourcen -Tag in der Konfigurationsdatei:
TRAVERCLASSNAME - Der vollständige Name der von JDBC verwendeten Datenbank -Treiberklasse.
MaxActive - Die maximale Anzahl aktiver Verbindungen, die gleichzeitig vom Verbindungspool bereitgestellt werden.
Maxidle - Die maximale Anzahl von Verbindungen, die der Verbindungspool während der Leerlaufzeit hält.
Maxwait - Die maximale Anzahl von Millisekunden Die Datenbank wartet, wenn eine Ausnahme auftritt (wenn keine verfügbare Verbindung verfügbar ist).
Benutzername - Login -Name, wenn Sie eine Verbindung zur Datenbank herstellen
Passwort - Das Passwort zur Verbindung zur Datenbank.
URL - URL zum Fahrer. (DriverName ist auch für die Rückwärtskompatibilität zulässig.)
Testcode:
Context initcontext = new initialContext (); context envContext = (context) initcontext.lookup ("java:/comp/env"); dataSource ds = (DataSource) envContext.lookup ("jdbc/test");Wenn es nicht null ist, sollte es erfolgreich sein.
Beachten Sie, dass Sie beim Testen es in Tomcat testen müssen, das heißt, es muss sich im Tomcat -Container befinden (stören Sie sich nicht, schreiben Sie eine einfache JSP -Seite, um sie zu testen und <%...%> zu verwenden, was recht einfach ist). Wenn es nicht im Tomcat -Behälter getestet wird, wird eine Ausnahme ausgelöst:
... Javax.Naming.NoInitialContextexception: Muss den Klassennamen in Umgebungs- oder Systemeigenschaft oder als Applet -Parameter oder in einer Anwendungsressourcendatei angeben: java.naming.factory.initial
2. Es gibt drei Möglichkeiten, Verbindungspools in Hibernate zu konfigurieren:
Methode 1 Verwenden Sie den Hibernate -eigenen Verbindungspool.
<Hibernate-Configuration> <Session-Factory> <!-JDBC-Treiber-> <Eigenschaft name = "connection.driver_class"> com.mysql.jdbc.driver </Property> <!-URL, um sich mit der Datenbank zu verbinden-- Die Verbindung-> <Eigenschaft name = "connection.username"> root </property> <!-Anmeldungskennwort-> <Eigenschaft name = "connection name = "dialect"> org.hibernate.dialect <Hibernate-Configuration> <Session-Factory> <Eigenschaft name = "show_sql"> true </property> <!-Common Conf DBCP/C3P0 benötigt <Eigentum name = "connection.username"> Informix </Property Name> < name = "connection.driver_class"> com.informix.jdbc.ifxdriver </property> <Eigenschaft name = "connection.url"> jdbc: informix-sqli: //192.168.0.188: 1526/db_crm: InformixServer = ol_sx; newlocale = zh_cn, en_us; newcodeset = gbk, 8859_1,819; name = "dialect"> com.huatech.sysframe.webapp.common.dao.hibernate.dialet.baseinformixdialect </property>-> ... ... ... </session-factory> </hibernate-configuration>
Methode 2: Verwenden Sie den durch die Konfigurationsdatei angegebenen Datenbankverbindungspool.
Der Verbindungspool verfügt jetzt über DBCP, C3P0 und Proxoop. Eigentlich kannte ich DBCP
Unter diesen muss die Konfiguration von DBCP und C3P0 nur einige Konfigurationen zur obigen Konfiguration hinzufügen, und Hibernate identifiziert automatisch den Datenbankverbindungspool.
Um DBCP zu konfigurieren, müssen Sie sich anschließen:
<!- dbcp conf <Eigenschaft name = "dbcp.maxActive"> 100 </property> <Eigenschaft name = "dbcp.WenexhaustedAction"> 1 </Property> <Eigentum name = "dbcp.maxwait"> 60000 </Property> <Eigentum name = "dbcp.maxidle"> 10 </probienbedingt "> 10 </probienbedingt" name="dbcp.ps.maxActive">100</property><property name="dbcp.ps.maxActive">100</property><property name="dbcp.ps.whenExhaustedAction">1</property><property name="dbcp.ps.maxWait">60000</property><property name="dbcp.ps.maxIdle">10</property>-->
Um C3P0 zu konfigurieren, müssen Sie sich anschließen:
<!-c3p0 conf <Eigenschaft name = "c3p0.min_size"> 5 </Property> <Eigenschaft name = "c3p0.max_size"> 30 </property> <Eigenschaft name = "c3p0.time_out"> 1800 </Property> <Property name = "
Die Konfiguration von Proxoop ist etwas anders. Sie können es nicht einfach hinzufügen, aber Sie müssen es ändern:
Die grundlegende Konfiguration lautet wie folgt:
<Eigenschaft name = "proxool.pool_alias"> dbpool </property> <property name = "proxool.xml"> test/huatech/conf/proxoolconf.xml </property> <Eigentum name = "connection.provider_class"> org.hibernate.connection.proxoolconnection
Besonderer Hinweis: Der Pfad der folgenden Datei muss korrekt konfiguriert werden, ansonsten fileNotfound
Die zugehörige Datei: test/huatech/conf/proxoolconf.xml ist wie folgt konfiguriert:
<? selbst-> <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> <Treiberklasse> com.informix.jdbc.ifxDriver </Driver-Class> <Treiber-Properties> <Eigenschaft name = "user" value = "Informix" /> <Eigenschaft name = "password" value = "Informix" /> < /treiber-properties> <!-Proxool erkennt automatisch das Zeitintervall (Millisekunden) jedes Verbindungszustands. Wenn die Leerlaufverbindung erkannt wird, wird sie sofort recycelt. Timeout-Zerstörung-> <Haushaltsschlafzeit> 90000 </House-Keeping-Sleep-Time> <!-Es bezieht sich auf die maximale Anzahl von Anfragen, die in der Warteschlange warten, da keine Leerlaufverbindung zugewiesen werden muss. Benutzerverbindungen, die diese Anzahl von Anforderungen überschreiten, werden nicht akzeptiert-> <Maximum-New-Connections> 20 </Maximum-New-Connections> <! Wenn es eine Anfrage gibt, ist es in der Warteschlange in der Warteschlange in der Warteschlange. Die maximale Anzahl von Warteanfragen wird durch maximale neue Verbindungen bestimmt-> <Maximum-Connection-Count> 100 </Maximal-Connection-Count> <!-Die minimale Anzahl von Verbindungen-> <Minimum-Connection-Count> 10 </minimal-connection-count> </proxool> </thowes-eleentirey> entirey>
Methode 3: Holen Sie sich den Verbindungspool aus dem Container (z. B. Tomcat)
Verwenden Sie den eigenen Verbindungspool des Servers: wie Tomcat, Harz, Weblogic usw.
Hibernate-Konfiguration lautet wie folgt: <!-<Eigenschaft name = "hibernate.connection.dataSource"> java: comp/env/jdbc/crm </property> <Eigenschaft name = "show_sql"> true </property> <Property name = "dialect"> com.huatech.sysframe.webapp.common.dao.hibernate.dialet.baseInformixDialect </Property> <Property name = "hibernate.generate_statistics"> true </property>->
Unter ihnen ist JDBC/CRM von Java: Comp/Env/JDBC/CRM der Name des Datenbankverbindungspools im entsprechenden Server und muss in der entsprechenden Umgebung konfiguriert werden.
Die Tomcat -Konfiguration wird in der ersten Tomcat -Konfigurationsmethode beschrieben. Beachten Sie, dass der Name von JNDI gemäß der Situation geändert werden sollte und dem von Hibernate verwendeten Namen entsprechen sollte.
==========================================================
Für die obige Konfiguration ist das JAR -Paket für jeden Datenbankverbindungspool erforderlich, der im Hibernate -Paket enthalten ist. Wenn Sie die neueste benötigen, können Sie ihn von Ihren jeweiligen Websites herunterladen.
3. Spring -Methode zur Konfiguration des Verbindungspools:
<bean id = "dataSource" Destroy-method = "close"> <Eigenschaft name = "triverClassName"> <wert> com.mysql.jdbc.driver </value> </property> <Eigenschaft name = "url"> <value> jdbc: mysql: // localhost: 3306/dbname </value> </value> </</</</</</</</</1: 3306/dbname </value> </valient name = "userername"> <wert> root </value> </Eigenschaft> <Eigenschaft name = "password"> <wert> ****** </value> </Eigenschaft> <Eigenschaft name = "maxActive"> <wert> 100 </value> </value> </Eigenschaft name = "defaultAutocommit"> <wert> true </value> </property> <Eigenschaft name = "renoveAsBandoned"> // recycelt den Verbindungspool automatisch, um die Leckage des Verbindungspools <werts <value> true </value> </property> </bean> zu vermeiden
Viertens, das auch die letzte ist, über die ich heute sprechen möchte, besteht darin, den Verbindungspool durch das Schreiben von Code zu konfigurieren. Der Code lautet wie folgt:
Java.sql. BDS.SestDriverClassName ("com.mysql.jdbc.driver"); // Setzen Sie den Verbindungs -Benutzername BDS.SetUserName ("root"); // Setzen Sie das Verbindungskennwort bds.setPassword ("root"); // Die Verbindungsadresse bds.seturl ("jdbc: mysql: mysql:/// localhost: 330 6/databas"). Initialisierte Verbindungen bds.setInitialSize (50); // Stellen Sie die Gesamtzahl der gleichzeitig angewendeten Verbindungen ein. bds.setMaxwait (-1); return (dataSource) bds;} // Methode zur Anzeige der Anzahl der Verbindungen im Verbindungspool. ds) löscht sqlexception {bds = (BasicDataSource) ds; bds.close ();}} aus Um einen Verbindungspool zu erhalten, können Sie nur die statische Methode dieser Klasse für konfiguriertemataSource () verwenden.
Die oben genannten sind mehrere Konfigurationsmethoden für Java -Datenbankverbindungspools, die Ihnen vorgelegt wurden (als Beispiel nehmen Sie die MySQL -Datenbank). Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!