1. احصل على مثيل لهذا الكائن
Connection con ؛ con = drivermanager.getConnection (url ، اسم المستخدم ، كلمة المرور) ؛ databasemetadata dbmd = con.getMetAdata () ؛
2. استخدام GetTables Method
النموذج الأولي:
resultset databasemetadata.gettables (كتالوج السلسلة ، مخطط السلسلة ، سلسلة Tablename ، سلسلة [])
يمكن لهذه الطريقة إرجاع مجموعة نتائج مجموعة النتائج ، مع 5 أعمدة في مجموعة النتائج. إذا تجاوزت الحدود ، فسيتم الإبلاغ عن استثناء خارج الحدود.
وصف الوظيفة: احصل على معلومات الجدول للمعلمات المحددة
وصف المعلمة:
المعلمات: الكتالوج: اسم الدليل ، عادة فارغة.
المعلمات: المخطط: اسم قاعدة البيانات ، لـ Oracle اسم المستخدم المعلمة: TableName: اسم الجدول المعلمة: النوع: نوع الجدول (الجدول | عرض)
ملاحظة: أثناء الاستخدام ، يجب أن يكون اسم المعلمة في رأس المال. وإلا فإنك تحصل على شيء.
3. استخدام طريقة getColumns
وصف الوظيفة: احصل على معلومات العمود للجدول المحدد.
النموذج الأولي:
resultset databasemetadata getColumns (كتالوج السلسلة ، مخطط السلسلة ، سلسلة tablename ، اسم عمود السلسلة)
وصف المعلمة:
المعلمة كتالوج: اسم الفئة مخطط المعلمة: مخطط المستخدم المعلمة TableName: قاعدة بيانات اسم المعلمة المعلمة
4. طرق استخدام getPrimarykeys
وصف الوظيفة: احصل على معلومات المفتاح الأساسي للجدول المحدد.
النموذج الأولي:
resultset databasemetadata getPrimaryKeys (كتالوج السلسلة ، مخطط السلسلة ، سلسلة tablename)
وصف المعلمة:
المعلمة الكتالوج: اسم الفئة مخطط المعلمة: مخطط المستخدم المعلمة TableName: اسم قاعدة البيانات اسم
ملاحظة: تأكد من تحديد اسم الجدول ، وإلا فإن قيمة الإرجاع لن تحتوي على شيء.
5. Method.use of gettypeinfo ()
وصف الوظيفة: احصل على معلومات نوع البيانات في قاعدة البيانات الحالية.
6. طرق استخدام getExportedKeys
وصف الوظيفة: احصل على معلومات مفتاح خارجي للجدول المحدد.
وصف المعلمة:
المعلمة الكتالوج: اسم الفئة مخطط المعلمة: مخطط المستخدم المعلمة TableName: اسم قاعدة البيانات اسم
دعنا نوضح هاتين المعلمتين باستخدام MySQL و Oracle كأمثلة.
يختلف الهيكل التنظيمي لبيانات Oracle و MySQL تمامًا. من حيث المظهر البديهي ، تختلف طرق إرفاق الجداول ووجهات النظر. في أوراكل ، يتم اعتماد آلية إدارة المستخدم. عندما يتم إرفاق الجداول ووجهات النظر بمستخدم معين ، سيصبح المستخدم "مخططًا" لأوراكل ؛ في MySQL ، يتم إرفاق الجداول ووجهات النظر مباشرة بقاعدة البيانات. وبهذه الطريقة ، يصبح الحصول على كتالوج في Oralce لاغية ، والحصول على رأس المخطط هو قائمة بأسماء المستخدمين. الكتالوج الذي تم الحصول عليه في MySQL هو قائمة أسماء قاعدة البيانات ، والمخطط لاغية. يمكن للقراء الاختبار من خلال الطريقتين التاليتين المقدمة من DatabAsemetAdata ، ويقومون بإرجاع نوع بيانات ResultSet.
// احصل على تعريف الفئة
rs = dbmd.getCatalogs () ؛
// احصل على تعريف النمط
rs = dbmd.getschemas () ؛
بناءً على التحليل أعلاه:
إذا كانت قاعدة البيانات هي MySQL: فيمكن أن يكون كتالوج المعلمة الأول هو اسم قاعدة البيانات. عندما يكون هذا العنصر فارغًا ، يكون اسم قاعدة البيانات المحدد في سلسلة عنوان URL ، ومخطط المعلمة الثاني ، يملأ فارغًا ؛
إذا كانت قاعدة البيانات هي oralce: فإن كتالوج المعلمة الأول فارغ ، يتم ملء مخطط المعلمة الثاني في اسم المستخدم الكبير مثل "Scott". إذا كان العنصر فارغًا ، فإن نطاق الاستعلام هو كل مستخدمي المخطط.
تحليل قيمة الإرجاع
قيمة الإرجاع للطريقة getTables هي مجموعة نتائج (ResultSet). للحصول على المعلومات الواردة في مجموعة النتائج ، يتم حجز أكثر من 20 عنصرًا لـ JDK1.5 للحصول على المعلومات ذات الصلة للجدول. ومع ذلك ، لن تُرجع كل بيانات أكثر من 20 عنصرًا. يمكننا في كثير من الأحيان استخدام أربعة عناصر:
Table_schem: بالنسبة إلى Oracle ، إنه اسم مستخدم ذو رسملة و NULL لـ MySQL.
table_name: اسم الجدول.
Table_cat = null for Oracle و Database Name لـ MySQL.
table_type = نوع الجدول ، يستخدم للجدول وعرضه استنادًا إلى عنصر في صفيف نوع المعلمة الرابع.
استيراد java.sql.connection ؛ استيراد java.sql.databasemetadata ؛ استيراد java.sql.drivermanager ؛ استيراد java.sql.resultset url url = "jdbc: Oracle: Thin: localhost: 1521: Zhyl" ؛ // عنوان الخادم: ، رقم المنفذ: 1521 ، اسم قاعدة البيانات: Zhyl. username username = "Andatabase" ؛ سلسلة خاصة pw = "oracl" ؛ اتصال خاص conn = null ؛ // يتم إنشاء اسم المستخدم وكلمة المرور من قبل نفسك. الاتصال العام openconn () {try {class.forname ("oracle.jdbc.driver.oracledriver") ؛ حاول {conn = drivermanager.getConnection (url ، username ، pw) ؛ {// todo catch blocke.printstacktrace () حاول {statle sm = con.createstatement () ؛ rs = sm.executequery (sql) ؛ } catch (sqlexception e) {// todo catch catch e.printstacktrace () ؛ } return rs ؛} public void close () {try {conn.close () ؛ } catch (sqlexception e) {// todo catch catch e.printstacktrace () ؛ }} // احصل على أسماء الجدول لجميع الجداول في قاعدة البيانات وأضفها إلى بنية القائمة. القائمة العامة getTablenAmelist (اتصال Conn) يلقي sqlexception {databasemetadata dbmd = conn.getMetAdata () ؛ // الوصول إلى جميع الجداول تحت المستخدم الحالي أندياباس rs = dbmd.gettables ("null" ، "، andatabase" ، "٪" ، ". }) ؛ // system.out.println ("kkkkkkkkk"+dbmd.getTables ("null" ، "٪" ، "٪" ، new string [] {"table"}) Tablenamelist ؛} // احصل على أسماء الأعمدة لجميع الأعمدة في جدول البيانات وأضفها إلى بنية القائمة. القائمة العامة getColumnnameList (اتصال Conn ، سلسلة Tablename) يلقي sqlexception {databasemetadata dbmd = conn.getMetAdata () ؛ resultset rs = dbmd.getColumns (null ، "٪" ، tablename ، "٪") بينما (rs.next ()) {columnnamelist.add (rs.getString ("column_name") ؛} الإرجاع columnnamelist ؛} الفراغ الثابت العام الرئيسي (سلسلة S []) يلقي sqlexception {dababase dbconn = new dababase () ؛ connection connect فشل ") ؛ elsesystem.out.println (" Conn Success ") ؛ حاول {list tablelist = dbconn.gettablenamelist (conn) ؛ system.out.println (tablelist.size ()) ؛ لـ (كائن كائن: tablelist) {string ss = (string) object ؛ system.out.println (ss) ؛}} catch (sqlexception e) {ما سبق هو المحتوى الكامل للاستعلام عن Java جميع الجداول لقاعدة بيانات Oracle ، Databasemetadata (شرح مفصل) الذي قدمه لك المحرر. آمل أن يدعم الجميع wulin.com أكثر ~