1.tomcat構成データソース:
前提条件:接続されたMySQLデータベースドライバーJARパッケージを、Tomcatインストールディレクトリの共通フォルダーの下のLIBディレクトリに配置する必要があります。
1。メソッド1:WebRootの下にフォルダーメタ-INFを作成し、次のようにファイルコンテキストを作成します。
<?xml version = "1.0" encoding = "utf-8"?> <context> <リソース名= "jdbc/chaoshi" auth = "container" type = "javax.sql.datasource" maxactive = "50" maxidle = "30" maxwait = "10000 DriverClassName = "com.mysql.jdbc.driver" url = "jdbc:mysql:// localhost:3306/dbname"> </resource> </context>
方法2:Tomcat Directory confの下のContext.xmlで、元のコンテキストタグを変更して、次のように変更します。
<context> <! - 監視対象リソースのデフォルトセット - > <watchedResource> web-inf/web.xml </watchedResource> <リソース名> <リソース名= "jdbc/test" auth = "container" type = "javax.sql.datasource" maxactive = "50" maxidle = "30" rogabanded "パスワード= "root" driverClassName = "com.mysql.jdbc.driver" url = "jdbc:mysql:// localhost:3306/testdb"/> </context>
方法3:仮想ディレクトリを構成するとき、つまりserver.xmlを下に構成するときは、コンテキストタグに変更します。
<コンテキストパス= "/webroot" reloadable = "true" docbase = "e:/datasource/webroot"> <resource name = "jdbc/test" auth = "container" type = "javax.sql.datasource" maxactive = "50" maxidle = "30パスワード= "root" driverClassName = "com.mysql.jdbc.driver" url = "jdbc:mysql:// localhost:3306/testdb"/> </context>
</構成ファイルのリソースタグ内の各属性の意味:
DriverClassName -JDBCが使用するデータベースドライバークラスのフルネーム。
Maxactive-接続プールが同時に提供するアクティブ接続の最大数。
MAXIDLE -IDLE時間中に接続プールが保持する接続の最大数。
MaxWait-例外が発生したときにデータベースが待機するミリ秒の最大数(利用可能な接続がない場合)。
ユーザー名 - データベースに接続するときのログイン名
パスワード - データベースに接続するパスワード。
URL -URLドライバーへ。 (DriverNameも後方互換性を伴うために許可されています。)
テストコード:
Context initcontext = new initialContext(); Context Envcontext =(context)initcontext.lookup( "java:/comp/env"); dataSource ds =(dataSource)envcontext.lookup( "jdbc/test"); system.out.println(ds.getConnection());
それがnullでない場合、成功する必要があります。
テストするときは、Tomcatでテストする必要があることに注意してください。つまり、Tomcatコンテナにある必要があります(気にしないで、簡単なJSPページを書いてテストし、<%...%>を使用して、これは非常に簡単です)。 Tomcatコンテナでテストされていない場合、例外がスローされます。
... javax.naming.noinitialcontextexception:環境またはシステムプロパティ、またはアプリケーションパラメーターとして、またはアプリケーションリソースファイルでクラス名を指定する必要があります:java.naming.factory.initial
2。冬眠で接続プールを構成する3つの方法があります。
方法1 Hibernate独自の接続プールを使用します。
<hibernate-configuration> <session-factory> <! - jdbc driver-> <property name = "connection.driver_class"> com.mysql.jdbc.driver </property> <! - url fone database-> <property name = "connection.url"> jdbc接続 - > <プロパティ名= "connection.username"> root </property> <! - login password-> <property name = "connection.password"> </property> <! - デバッグのログに生成されたsqlを出力するかどうか - > <プロパティ名= "show_sql"> true </property for connection-> <> <> <> <> <> < name = "dierect"> org.hibernate.dialect.mysqldialect </property> <! - マッピングリソース - > <マッピングリソース= "/xx/>> </session-factory> </hibernate-configuration>私自身の構成は、コメントが必要です。 <hibernate-configuration> <session-factory> <プロパティ名= "show_sql"> true </property> <! - common conf dbcp/c3p0 exhing <property name = "connection.username"> informix </property> <property name = "connection.password"> informix </property> <property name = "connection.driver_class"> com.informix.jdbc.ifxdriver </property> <プロパティ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; </propert> <propert name = "dialect"> com.huatech.sysframe.webapp.common.dao.hibernate.dialet.baseinformixdialect </property> - > ... ... ... ... ... </session-factory> </hibernate-configuration>
方法2:構成ファイルで指定されたデータベース接続プールを使用します。
接続プールには、DBCP、C3P0、およびProxoopがあります。実際、私はDBCPを知っていました
その中で、DBCPとC3P0の構成は、上記の構成にいくつかの構成を追加するだけで、Hibernateはデータベース接続プールを自動的に識別します。
DBCPを構成するには、参加する必要があります。
<! - dbcp conf <Property name = "dbcp.maxactive"> 100 </property> <Property name = "dbcp.whenexaxtededaction"> 1 </property name> <property name = "dbcp.maxwait"> 60000 </property> <property name = "dbcp.maxidle" name = "dbcp.ps.maxactive"> 100 </property> <Property name = "dbcp.ps.maxactive"> 100 </property> <Property name = "dbcp.ps.whenexaxtedededaction"> 1 </property name = "dbcp.ps.ps.maxwait"> 60000 </property> <propert name = "dbcp.ps.maxidle"> 10 </property> - >
C3P0を構成するには、参加する必要があります。
<! - c3p0 conf <プロパティ名= "c3p0.min_size"> 5 </property> <Property name = "c3p0.max_size"> 30 </property name> <property name = "c3p0.time_out"> 1800 </property> <property name = "c3p0.max_statement"> 50 </propert> - >
Proxoopの構成は少し異なります。追加することはできませんが、変更する必要があります。
基本的な構成は次のとおりです。
<property name="proxool.pool_alias">dbpool</property><property name="proxool.xml">test/huatech/conf/ProxoolConf.xml</property><property name="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
特別な注意:次のファイルのパスを正しく構成する必要があります。
関連するファイル:test/huatech/conf/proxoolconf.xmlは次のように構成されています。
<?xml version = "1.0" encoding = "utf-8"?> <何か-Else-Entirely> <Proxool> <Alias> dbpool </alias> <! - プロキュールは生成された接続のみを管理できますそれ自体 - > <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> <プロパティname = "user" value = "Informix" /> <プロパティname = "password" value = "informix" /> < /driver-properties> <!-proxoolは、各接続状態の時間間隔(ミリ秒)を自動的に検出します。アイドル接続が検出された場合、すぐにリサイクルされます。タイムアウトの破壊 - > <ハウスキーピングスリープタイム> 90000 </house-keeping-sleep-time> <! - 割り当てられるアイドル接続がないため、キューで待機しているリクエストの最大数を指します。このリクエストの数を超えるユーザー接続は受け入れられません - > <最大値と接続> 20 </最大値と接続> <! - 維持されるアイドル接続の最小数 - > <プロトタイプ - カウント> 5 </プロトタイプ - カウント> <!リクエストがある場合、キューで待機することがキューになります。待機要求の最大数は、最大値と新しい接続によって決定されます - > <最大コネクションカント> 100 </最大接続 - コント> <! - 接続の最小数 - > <最小コネクションコント> 10 </最小コネクションカウント>
方法3:コンテナ(Tomcatなど)から接続プールを取得します
サーバー独自の接続プールを使用してください。Tomcat、樹脂、Weblogicなど。
Hibernateの構成は次のとおりですname = "dierect"> com.huatech.sysframe.webapp.common.dao.hibernate.dialet.baseinformixdialect </property> <Property name = "hibernate.generate_statistics"> true </property> - >
その中で、JavaのJDBC/CRM:COMP/ENV/JDBC/CRMは、対応するサーバーのデータベース接続プールの名前であり、対応する環境で構成する必要があります。
Tomcat構成は、最初のTomcat構成法で説明されています。 JNDIの名前は状況に応じて変更する必要があり、Hibernateが使用する名前に対応する必要があることに注意してください。
===============================================================
上記の構成には、Hibernateパッケージに含まれるデータベース接続プールごとにJARパッケージが必要です。最新のものが必要な場合は、それぞれのWebサイトからダウンロードできます。
3。接続プールを構成するスプリングの方法:
<bean id = "dataSource" Destroy-method = "close"> <Property name = "driverclassname"> <balue> com.mysql.jdbc.driver </value> </property name> <property name = "URL"> <値name = "username"> <value> root> root> rule </value> </property name> <property name = "password"> <balue> ****** </value> </property> <property> <property> <property> <property> 100 </value> </property> <property name = "maxwait"> <balue> 1000 </value> </propertion name = "defaultautocommit"> <value> true </value> </property> <property name = "removeabandoned"> //接続プールを自動的にリサイクルして、接続プールの漏れを避けます<値> true </value> </property> </bean> </bean>
4番目は、今日私が今日話したい最後のものでもありますが、コードライティングを介して接続プールを構成することです。コードは次のとおりです。
java.sql。*;インポートJava.sql.datasource; Import org.apache.commons.dbcp.basicdatasource; public connectionpool {private static basicdatasource dbs = null; bds.sestdriverclassname( "com.mysql.jdbc.driver"); //接続ユーザー名bds.setusername( "root"); //接続パスワードを設定するbds.setpassword( "root");初期化された接続のbds.setinitialsize(50); //同時に適用された接続の総数を同時に設定するbds.setmaxactive(-1); //バッファープールの接続の最大数を設定しますbds.setmaxidle(-1); //バッファープールの最小接続数を設定します。 bds.setmaxwait(-1); return(dataSource)bds;} //接続プールに接続の数を表示するメソッドpublic void void void printdatasourcestats(datasource ds)throws sqlexception {bds =(basicdatasource)ds; system.out.println(); system.out.printLn();} shutdowndatasource(datasource ds)throws sqlexception {bds =(basicdatasource)ds; bds.close();}}接続プールを取得するには、このクラスの静的方法を使用してconfiguredAtaSource()のみを使用できます。
上記は、紹介されたJavaデータベース接続プールのいくつかの構成方法です(MySQLデータベースを例として使用)。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!