1. مصدر بيانات تكوين TOMCAT:
المتطلب السابق: تحتاج إلى وضع حزمة جرة برنامج تشغيل قاعدة بيانات MySQL المتصلة في دليل LIB ضمن المجلد المشترك في دليل تثبيت Tomcat.
1. الطريقة 1: إنشاء مجلد meta-inf ضمن Webroot ، وإنشاء ملف context.xml فيه ، على النحو التالي:
<؟ driverClassName = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/dbname"> </sroses> </suctext>
الطريقة 2: في السياق.
<Context> <!-مجموعة افتراضية من الموارد المراقبة-> <athedResource> web-inf/web.xml </atchedResource> <resource name = "jdbc/test" auth = "container" type = "javax.sql.dataSource" maxactive = "50" maxidle = "30" maxwait = "10000" logaband "logaband password = "root" driverClassName = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/testDB"/> </suctext>
الطريقة 3: عند تكوين الدليل الظاهري ، أي عند تكوين server.xml أدناه conf ، قم بتغييره إلى علامة السياق:
<context path = "/webroot" reloadable = "true" docBase = "e:/workspace/dataSource/Webroot"> <resource name = "jdbc/test" auth = "container" type = "javax.sql.datasource" maxacive = "50" maxidle = "30" maxwait = maxwait = password = "root" driverClassName = "com.mysql.jdbc.driver" url = "jdbc: mysql: // localhost: 3306/testDB"/> </suctext>
</معنى كل سمة في علامة المورد في ملف التكوين:
DRIVERCLASTNAME - الاسم الكامل لفئة برنامج قاعدة البيانات المستخدمة من قبل JDBC.
MaxActive - الحد الأقصى لعدد الاتصالات النشطة التي يوفرها تجمع الاتصال في نفس الوقت.
MaxIdle - الحد الأقصى لعدد الاتصالات التي يحتفظ بها تجمع الاتصال خلال وقت الخمول.
MAXWAIT - الحد الأقصى لعدد ميلي ثانية ينتظر قاعدة البيانات عند حدوث استثناء (عندما لا يكون هناك اتصال متاح).
اسم المستخدم - اسم تسجيل الدخول عند الاتصال بقاعدة البيانات
كلمة المرور - كلمة المرور للاتصال بقاعدة البيانات.
عنوان URL - URL للسائق. (الاسم الحواري مسموح أيضًا بالتوافق المتخلف.)
رمز الاختبار:
context initContext = جديد initialContext () ؛ context envContext = (context) initContext.lookup ("java:/comp/env") ؛ datasource ds = (dataSource) envcontext.lookup ("jdbc/test") ؛ system.out.println (ds.getConnection ()) ؛إذا لم يكن فارغًا ، فيجب أن يكون ناجحًا.
لاحظ أنه عند الاختبار ، يجب عليك اختباره في Tomcat ، أي ، يجب أن يكون في حاوية Tomcat (لا تهتم ، اكتب صفحة JSP بسيطة لاختبارها ، واستخدام <٪ ... ٪> ، وهو أمر بسيط للغاية). إذا لم يتم اختباره في حاوية Tomcat ، فسيتم طرح استثناء:
... javax.naming.noinitialcontextexception: بحاجة إلى تحديد اسم الفئة في بيئة أو خاصية النظام ، أو كمعلمة applet ، أو في ملف مورد التطبيق: java.naming.factory.initial
2. هناك ثلاث طرق لتكوين تجمعات الاتصال في السبات:
الطريقة 1 استخدم تجمع الاتصال الخاص بـ Hibernate.
<Hibernate-Configuration> <session-factory> <!-jdbc driver-> <property name = "connection.driver_class"> com.mysql.jdbc.driver </property> <!-url للاتصال بـ database-> <property name = "connection.url"> jdbc: mysql: الاتصال-> <property name = "connection.username"> الجذر </property> <!-تسجيل الدخول إلى كلمة مرور-> <property name = "connection.password"> </propect name = "Dialect"> org.hibernate.dialect.mysqldialect </property> <!-موارد رسم الخرائط-> <mapping resource = "/xx/xx.hbm.xml"/> </session-factory> </hibernate-configuration> تكوين خاص بي على النحو التالي ، فإن الجزء المُعلّم هو الحضور ، والآخر. <Hibernate-Configuration> <session-factory> <property name = "show_sql"> true </property> <!-CONTER CONF DBCP/C3P0 مطلوب <property name = "connection.username"> informix </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 ؛ </property <property name = "Dialect"> com.huatech.sysframe.webapp.common.dao.hibernate.dialet.baseinformixDialect </sperty>-> ... ... ... ... ... </session-factory> </hibernate-configuration>
الطريقة 2: استخدم تجمع اتصال قاعدة البيانات المحدد بواسطة ملف التكوين.
يحتوي تجمع الاتصال الآن على DBCP و C3P0 و Proxoop. في الواقع ، كنت أعرف DBCP
من بينها ، يحتاج تكوين DBCP و C3P0 فقط إلى إضافة بعض التكوينات إلى التكوين أعلاه ، وسيقوم Hibernate تلقائيًا بتحديد تجمع اتصال قاعدة البيانات.
لتكوين DBCP ، تحتاج إلى الانضمام:
<!- dbcp conf <property name = "dbcp.maxactive"> 100 </premart> <property name = "dbcp.whenexhaughedAction"> 1 </propert name = "dbcp.ps.maxactive"> 100 </property> <name name = "dbcp.ps.maxactive"> 100 </propect
لتكوين C3P0 ، تحتاج إلى الانضمام:
<!-c3p0 conf <property name = "c3p0.min_size"> 5 </property> <property name = "c3p0.max_size"> 30 </propect
تكوين proxoop مختلف بعض الشيء. لا يمكنك إضافته فقط ، ولكن عليك تغييره:
التكوين الأساسي هو كما يلي:
<property name = "proxool.pool_alias"> dbpool </fortplart> <property name = "proxool.xml"> test/huatech/conf/proxoolconf.xml </prereent
ملاحظة خاصة: يجب تكوين مسار الملف التالي بشكل صحيح ، وإلا
تم تكوين الملف المرتبط: اختبار/huatech/conf/proxoolconf.xml على النحو التالي:
<؟ نفسه-> <narv-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> <properties> <property name = "user" value = "Informix" /> <property name = "password" value = "Informix" /> < /driver-properties> <!-يكتشف Proxool تلقائيًا الفاصل الزمني (مللي ثانية) لكل حالة اتصال. إذا تم اكتشاف اتصال الخمول ، فسيتم إعادة تدويره على الفور. تدمير المهلة-> <وقت حفظ المنزل> 90000 </منزل حفظ المنزل> <!-يشير إلى الحد الأقصى لعدد الطلبات في الانتظار في قائمة الانتظار لأنه لا يوجد اتصال خمول. لن يتم قبول اتصالات المستخدم التي تتجاوز هذا العدد من الطلبات-> <-connections-new-connections> 20 </maximum-new-connections> <!-الحد الأدنى لعدد اتصالات الخمول المحفوظة-> <sototype-count> 5 </optotype-count> <! عندما يكون هناك طلب ، يتم الانتظار في قائمة الانتظار في قائمة الانتظار. يتم تحديد الحد الأقصى لعدد طلبات الانتظار من خلال الاتصالات القصوى الجديدة-> <الحد الأقصى-count-count> 100 </maint-connection-counts> <!-الحد الأدنى لعدد الاتصالات-> <الحد الأدنى من التوصيل> 10 </cintor-connection-count> </proxool> </else-else-alently>
الطريقة 3: احصل على تجمع الاتصال من الحاوية (مثل Tomcat)
استخدم تجمع الاتصال الخاص بالخادم: مثل Tomcat ، الراتنج ، Weblogic ، إلخ.
تكوين السبات هو كما يلي: <!-<property name = "hibernate.connection.dataSource"> java: comp/env/jdbc/crm </sprement> <property name = "show_sql"> true </property> name = "Dialect"> com.huatech.sysframe.webapp.common.dao.hibernate.dialet.baseInformixDialect </property> <property name = "hibernate.generate_statistics"> true </prereent>->
من بينها ، JDBC/CRM من Java: Comp/Env/JDBC/CRM هو اسم تجمع اتصال قاعدة البيانات في الخادم المقابل ، ويجب تكوينه في البيئة المقابلة.
تم وصف تكوين Tomcat في طريقة تكوين Tomcat الأولى. لاحظ أنه يجب تعديل اسم JNDI وفقًا للموقف ويجب أن يتوافق مع الاسم المستخدم من قبل السبات.
=====================================================
يتطلب التكوين أعلاه حزمة JAR لكل مجموعة اتصال قاعدة بيانات ، والتي يتم تضمينها في حزمة السبات. إذا كنت بحاجة إلى أحدث واحدة ، فيمكنك تنزيله من مواقع الويب الخاصة بك.
3. طريقة الربيع لتكوين تجمع الاتصال:
<bean id = "dataSource" تدمير method = "close"> <property name = "driverClassName"> <value> com.mysql.jdbc.driver </value> </property> <swerperation = "url"> <value> jdbc: mysql: // localhost: 3306/dbname> name = "username"> <value> الجذر </value> </property> <property name = "password"> <value> ****** </value> </sopperation> <property name = "maxavey"> <sualte> 100 </sualive> </property> <property name = "maxwait"> name = "defaultaUtocommit"> <value> true </value> </sopperation> <property name = "removaBandoned"> // إعادة تدوير تجمع الاتصال تلقائيًا لتجنب تسرب تجمع الاتصال <SALET> TRUE </value> </propert
رابعًا ، وهو أيضًا آخر ما أريد التحدث عنه اليوم ، هو تكوين تجمع الاتصال من خلال كتابة التعليمات البرمجية ، والرمز هو كما يلي:
استيراد java.sql.*؛ استيراد java.sql.datasource ؛ استيراد org.apache.commons.dbcp.basicdatasource ؛ connection public connectionpool {private static basicdataSource dbs = null ؛ public static source bds.sestdriverClassName ("com.mysql.jdbc.driver") ؛ // قم بتعيين اسم المستخدم username bds.setUserName ("root") ؛ // قم بتعيين كلمة مرور الاتصال bds.setPassword ("root") الاتصالات المهيئة bds.setInitialSize (50) ؛ // اضبط العدد الإجمالي للاتصالات المطبقة في وقت واحد bds.setMaxActive (-1) ؛ // قم بتعيين الحد الأقصى لعدد الاتصالات في bdds. bds.setMaxWait (-1) ؛ return (dataSource) bds ؛} // طريقة لعرض عدد الاتصالات في مجموعة الاتصالات العامة الثابتة الفراغ الثابتة printdatasourcestats (datasource ds) يلقي sqlexception {bds = (basicdatasource) ds ؛ system.out.println () ؛ system.println () ؛ DS) يلقي sqlexception {bds = (basicdatasource) ds ؛ bds.close () ؛}} للحصول على تجمع اتصال ، يمكنك فقط استخدام الطريقة الثابتة لهذه الفئة إلى ConfigureDataSource ().
ما سبق هو العديد من طرق التكوين لمجمعات اتصال قاعدة بيانات Java المقدمة لك (أخذ قاعدة بيانات MySQL كمثال). آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!