1. TOMCAT Sumber Data Konfigurasi:
Prasyarat: Anda harus memasukkan paket JAR driver database MySQL yang terhubung ke direktori LIB di bawah folder umum di direktori instalasi Tomcat.
1. Metode 1: Buat folder meta-inf di bawah webroot, dan buat file context.xml di dalamnya, sebagai berikut:
<?xml version="1.0" encoding="UTF-8"?><Context><Resource name="jdbc/chaoshi" auth="Container"type="javax.sql.DataSource"maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"username="root" password="root" driverclassname = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/dbname"> </serplource> </context>
Metode 2: Di Context.xml di bawah Tomcat Directory Conf, memodifikasi tag konteks asli dan mengubahnya menjadi:
<context> <!-Set default sumber daya yang dipantau-> <WatchedResource> web-inf/web.xml </watchedResource> <name sumber daya = "jdbc/test" auth = "container" type = "javax.sql.dataSource" maxactive = "50" "maxidle =" 30 "MaxWAID" MAXWAID "MAXABAB" MAXACTIVE = "50" "MAXIDLE =" 30 "MAXDLE" MAXWAID "MAXWAID" MAXWAID "MAXIBAB" MAXACTIVE = "50" 50 "" MAXIDLE = "30" kata sandi = "root" driverclassName = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/testdb"/> </context>
Metode 3: Saat mengkonfigurasi direktori virtual, yaitu, saat mengkonfigurasi server.xml di bawah ini, ubah ke tag konteks:
<Context path="/WebRoot" reloadable="true" docBase="E:/workspace/DataSource/WebRoot" ><Resource name="jdbc/test" auth="Container"type="javax.sql.DataSource"maxActive="50" maxIdle="30" maxWait="10000"logAbandoned="true"username="root" kata sandi = "root" driverclassName = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/testdb"/> </context>
</Arti masing -masing atribut dalam tag sumber daya dalam file konfigurasi:
DriverClassName - Nama lengkap kelas driver database yang digunakan oleh JDBC.
MaxActive - Jumlah maksimum koneksi aktif yang disediakan oleh kumpulan koneksi secara bersamaan.
MAXIDLE - Jumlah maksimum koneksi yang diadakan kumpulan koneksi selama waktu idle.
MaxWait - Jumlah maksimum milidetik database menunggu ketika pengecualian terjadi (ketika tidak ada koneksi yang tersedia).
Nama pengguna - Nama login saat menghubungkan ke database
Kata sandi - Kata sandi untuk terhubung ke database.
URL - URL ke pengemudi. (Drivername juga diizinkan untuk kompatibilitas ke belakang.)
Kode Uji:
Context initContext = new InitialContext (); Context EnvContext = (Context) InitContext.LookUp ("Java:/comp/env"); DataSource ds = (DataSource) EnvContext.LookUp ("JDBC/test"); System.out.println (ds.getConnection ());Jika bukan nol, itu harus berhasil.
Perhatikan bahwa ketika menguji, Anda harus mengujinya di Tomcat, yaitu, harus ada di wadah Tomcat (jangan repot -repot, tulis halaman JSP sederhana untuk mengujinya, dan gunakan <%...%>, yang cukup sederhana). Jika tidak diuji dalam wadah Tomcat, pengecualian akan dilemparkan:
... javax.naming.noinitialContextException: Perlu menentukan nama kelas di lingkungan atau properti sistem, atau sebagai parameter applet, atau dalam file sumber daya aplikasi: java.naming.factory.initial
2. Ada tiga cara untuk mengonfigurasi kumpulan koneksi di Hibernate:
Metode 1 Gunakan kumpulan koneksi Hibernate sendiri.
<Hibernate-Configuration> <sesi-Factory> <!-driver jdbc-> <name properti = "connection.driver_class"> com.mysql.jdbc.driver </proper the connection--><property name="connection.username">root</property><!--Login Password--><property name="connection.password"></property><!--Whether to output the SQL generated during the run to the log for debugging--><property name="show_sql">true</property><!--Specify the language for connection--><property name = "Dialect"> org.hibernate.dialect.mysqldialect </preate> <!-pemetaan sumber daya-> <pemetaan sumber daya = "/xx/xx.hbm.xml"/> </sion-factory> </hibernate-Configuration> Konfigurasi saya sendiri adalah sebagai berikut, bagian yang dikomentari adalah POLIK, DAN POLIK LAINNYA! <Hibernate-Configuration> <sesi-Factory> <nama properti = "show_sql"> true </property> <!-Common conf dbcp/c3p0 Diperlukan <nama properti = "connection.username"> informix </prop Property> <Properti Nama = "Connection.password"> informix </properti <properti> Properties name = "connection.driver_class"> com.informix.jdbc.ifxDriver </property> <properti 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; </property <///gbk name = "Dialect"> com.huatech.sysframe.webapp.common.dao.hibernate.dialet.baseinformixdialect </preate>-> ... ... ... ... </sesi-factory> </hibernate-konfigurasi> ...
Metode 2: Gunakan kumpulan koneksi database yang ditentukan oleh file konfigurasi.
Kumpulan koneksi sekarang memiliki DBCP, C3P0, dan Proxoop. Sebenarnya, saya tahu DBCP
Di antara mereka, konfigurasi DBCP dan C3P0 hanya perlu menambahkan beberapa konfigurasi ke konfigurasi di atas, dan hibernate akan secara otomatis mengidentifikasi kumpulan koneksi database.
Untuk mengonfigurasi DBCP, Anda harus bergabung:
<!- dbcp conf <name properti = "dbcp.maxactive"> 100 </prop Property> <name properti = "dbcp.whenExuetededAction"> 1 </property> <properti name = "dbcp.maxwait"> 60000 </prop Property> <Properti = "DBCP.Maxidle"> 10 <//Properti Properti> </properti = "dbcp.maxidle"> 10 <//Properti </Properti> <properti = "dbcp.maxidle"> 10 <//propert name = "dbcp.ps.maxActive"> 100 </property> <properti name = "dbcp.ps.maxactive"> 100 </property> <properti name = "dbcp.ps.whenexuetededaction"> 1 </prop Property> <Properti Nama = "DBCP.PS.MAXWAIT"> 60000 </Properti> <prop Propert name = "dbcp.ps.maxidle"> 10 </propt>->
Untuk mengonfigurasi C3P0, Anda harus bergabung:
<!-c3p0 conf <name properti = "c3p0.min_size"> 5 </prop Property> <Properti name = "c3p0.max_size"> 30 </property> <name properti = "c3p0.time_out"> 1800 </properti> <properti = "c3p0.max_statement"> 50 </50 </Properti>-Properti = "C3P0.MAX_STATEMENT"> 50 </50 </Property>-Properti = "C3P0.MAX_STATEMENTE"> 50 <//50 </Property>-Properti = "C3P0.MAX_STATEMENTE"> 50 </50 </Propert
Konfigurasi Proxoop sedikit berbeda. Anda tidak bisa begitu saja menambahkannya, tetapi Anda perlu mengubahnya:
Konfigurasi dasar adalah sebagai berikut:
<nama properti = "proxool.pool_alias"> dbpool </prop Property> <name properti = "proxool.xml"> tes/huatech/conf/proxoolconf.xml </preate> <property name = "connection.provider_class"> org.hibernate.connection.proxyconnectionprovider_class "> org.hibernate.connection.proxyconnectionprovider"> org.hibernate.conconection.proxyconnections
Catatan Khusus: Jalur file berikut harus dikonfigurasi dengan benar, jika tidak FileNotFound
File terkait: tes/huatech/conf/proxoolconf.xml dikonfigurasi sebagai berikut:
<? Xml Version = "1.0" encoding = "UTF-8"?> <Something-else-entirely> <droxool> <lias> dbpool </lias> <!-proxool hanya dapat mengelola koneksi yang dihasilkan oleh Sendiri-> <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> <diver-class> com.informix.jdbc.ifxDriver </driver-class> <diver-properties> <properti name = "user" value = "informix" /> <properti name = "password" value = "informix" /> < /driver-properties> <!-Proxool secara otomatis mendeteksi interval waktu (milidetik) dari setiap status koneksi. Jika koneksi idle terdeteksi, itu akan segera didaur ulang. Penghancuran Batas Waktu-> <-sleeping-sleep-time> 90000 </house-feeping-sleep-time> <!-Ini mengacu pada jumlah maksimum permintaan yang menunggu dalam antrian karena tidak ada koneksi idle yang dialokasikan. Koneksi pengguna yang melebihi jumlah permintaan ini tidak akan diterima-> <maksimum-new-connection> 20 </maksimum-new-connection> <!-Jumlah minimum koneksi idle yang dipelihara-> <Prototipe-Count> 5 </bountype-Count> <!-Jumlah maksimum koneksi yang diizinkan dilampaui. Ketika ada permintaan, itu antri untuk menunggu dalam antrian. Jumlah maksimum permintaan tunggu ditentukan oleh Maximum-NEW-Connection-> <Maximum-Connection-count> 100 </maximum-count-count> <!-Jumlah koneksi minimum-> <minimum-connection-count> 10 </minimum-count-count> </proxool> </sesuatu-else-entirely>
Metode 3: Dapatkan kumpulan koneksi dari wadah (seperti tomcat)
Gunakan kumpulan koneksi server sendiri: seperti tomcat, resin, weblogic, dll.
Konfigurasi hibernate adalah sebagai berikut: <!-<nama properti = "hibernate.connection.datasource"> java: comp/env/jdbc/crm </property> <properti name = "show_sql"> true </properti> <properti> Properti name = "Dialect"> com.huatech.sysframe.webapp.common.dao.hibernate.dialet.baseinformixdialect </property> <name properti = "hibernate.generate_statistics"> true </preate>->
Di antara mereka, JDBC/CRM dari Java: COMP/Env/JDBC/CRM adalah nama kumpulan koneksi database di server yang sesuai, dan perlu dikonfigurasi di lingkungan yang sesuai.
Konfigurasi Tomcat dijelaskan dalam metode konfigurasi Tomcat pertama. Perhatikan bahwa nama JNDI harus dimodifikasi sesuai dengan situasi dan harus sesuai dengan nama yang digunakan oleh Hibernate.
=======================================================
Konfigurasi di atas memerlukan paket JAR untuk setiap kumpulan koneksi database, yang termasuk dalam paket hibernate. Jika Anda memerlukan yang terbaru, Anda dapat mengunduhnya dari situs web masing -masing.
3. Metode Kumpulan Koneksi Spring:
<bean id="dataSource" destroy-method="close"><property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property><property name="url"><value>jdbc:mysql://localhost:3306/dbname</value></property><property name="username"><value>root</value></property><property name="password"><value>******</value></property><property name="maxActive"> <value>100</value></property><property name="maxWait"><value>1000</value></property><property name="maxIdle"><value>30</value></property><property name = "DefaultAutOcmit"> <value> true </ value> </pruptent> <properti name = "removeAbandOned"> // secara otomatis mendaur ulang kumpulan koneksi untuk menghindari kebocoran kumpulan koneksi <value> true </ value> </property> </bean>
Keempat, yang juga merupakan yang terakhir yang ingin saya bicarakan hari ini, adalah untuk mengonfigurasi kumpulan koneksi melalui penulisan kode, kodenya adalah sebagai berikut:
import java.sql.*;import java.sql.DataSource;import org.apache.commons.dbcp.BasicDataSource;public class ConnectionPool{private static BasicDataSource dbs = null;public static DataSource setupDataSource(){bds = new BasicDataSource();//Set the driver bds.sestDriverClassName("com.mysql.jdbc.Driver");//Set the connection username bds.setUsername("root");//Set the connection password bds.setPassword("root");//Set the connection address bds.setUrl("jdbc:mysql://localhost:330 6/databasename");//Set the total number koneksi yang diinisialisasi bds.setInitialSize (50); // Atur jumlah total koneksi yang diterapkan secara bersamaan BDS.SetMaxActive (-1); // Atur jumlah maksimum koneksi dalam pool buffer bds.setMaxidle (-1); // Tetapkan jumlah minimum koneksi dalam buffer bds bds. bds.setmaxwait (-1); return (DataSource) bds;} // Metode untuk menampilkan jumlah koneksi di pool koneksi public static void printDataSourCesTats (DataSource ds) melempar sqlexception {bds = (BASICDataSource) ds; System.out.println (); System.out.println ();} METODE/System.out.println (); System.out.println ();} METODO shutdownDataSource (DataSource DS) melempar sqlexception {bds = (basicDataSource) ds; bds.close ();}} Untuk mendapatkan kumpulan koneksi, Anda hanya dapat menggunakan metode statis kelas ini untuk dikonfigurasiArasource ().
Di atas adalah beberapa metode konfigurasi untuk kumpulan koneksi database Java yang diperkenalkan kepada Anda (mengambil database MySQL sebagai contoh). Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!