تصف هذه المقالة طريقة Java باستخدام واجهة reparedstatement ومجموعة نتائج ResultSet. شاركه للرجوع إليه ، على النحو التالي:
يوضح:
1. واجهة reparedstatement وراثة البيان ، وتحتوي مثيلاتها على عبارات SQL المترجمة ، وسرعة التنفيذ أسرع من البيان.
2. الجهة المعدلة ترث جميع وظائف البيان. لا تتطلب الطرق الثلاث executeUpdate و executeQuery ، execute معلمات.
3. في تطبيقات JDBC ، يتم استخدام reparedstatement بشكل عام بدلاً من البيان.
لسهولة التشغيل ، اجعل بعض العبوات أولاً:
بالنسبة لقاعدة بيانات الاتصال ، وتغليف الاتصال الوثيق ، تم ذكر dbutil.java في المدونات السابقة ؛
تغليف جدول قاعدة البيانات ، إليك تشغيل جدول COMP في قاعدة البيانات الخاصة بي ، وبالتالي فإن التغليف هو كما يلي:
package com.mysqltest.jdbc.modelcomp ؛ compmember {private int id ؛ اسم السلسلة الخاصة ؛ عصر INT الخاص ؛ راتب مزدوج خاص ؛ / ** * Constructor 1 * param name * param age * param salary */ public compmember (اسم السلسلة ، int ، الراتب المزدوج) {super () ؛ this.name = name ؛ this.age = العمر ؛ هذا. } / ** * مُنشئ الحمل الزائد * param id * param name * param age * param salary * / public compmember (int id ، string age ، int age ، double salary) {super () ؛ this.id = id ؛ this.name = name ؛ this.age = العمر ؛ هذا. } / *** get ، set method* / public int getId () {return id ؛ } public void setId (int id) {this.id = id ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } public int getage () {return Age ؛ } public void setage (int age) {this.age = age ؛ } public double getSalary () {return salary ؛ } setSalary public void (راتب مزدوج) {this.salary = الراتب ؛ } Override / *** إعادة كتابة toString لجعل العرض أفضل* / سلسلة عامة toString () {return "["+this.id+"]"+this.name+"،"+this.age+"،"+this.salary ؛ }}ثم استخدم واجهة الجهة المعدلة لتحقيق العملية الإضافية:
package com.mysqltest.jdbc.xiao1 ؛ استيراد java.sql.connection ؛ استيراد java.sql.prepedstatement ؛ استيراد com.mysqltest.jdbc.modelcomp.compmmember dbutil () ؛ / ** * أضف عضوًا مع ReparedStatement * param mem * return * @throws استثناء */ خاص int addmember (compmember mem) يلقي استثناء {connection con = dbutil.getCon () ؛ String sql = "insert في قيم comp (null ،؟ ،؟ ،؟)" ؛ preparedStatement PSTMT = con.preparestatement (SQL) ؛ pStMt.SetString (1 ، mem.getName ()) ؛ PSTMT.SetInt (2 ، mem.getage ()) ؛ pStmt.SetDouble (3 ، mem.getSalary ()) ؛ int result = pstmt.executeupdate () ؛ // لا حاجة إلى المرور في SQL في Dbutil.close الأوسط (pstmt ، con) ؛ // ReparedStatement هي فئة فرعية ، ولا بأس في إغلاقها مع الفئة الأصل. نتيجة العودة } static void main (string [] args) يلقي الاستثناء {compmember mem = new compmember ("liu xiang" ، 24 ، 8000.00) ؛ int النتيجة = addMember (MEM) ؛ if (result == 1) {system.out.println ("إضافة بنجاح") ؛ } آخر {system.out.println ("add favor") ؛ }}}ثم استخدم واجهة الجهة المعدلة لتنفيذ الاستعلام واستخدام مجموعة نتائج Results:
package com.mysqltest.jdbc.xiao2 ؛ استيراد java.sql.connection ؛ استيراد java.sql.prepedstatement ؛ استيراد java.sql.resultset com.mysqltest.jdbc.util.dbutil ؛ public reversionesest {private static dbutil dbutil = new dbutil () ؛ / ** * اجتياز نتائج الاستعلام * Throws استثناء */ suppressWarnings ("غير مستخدم") private static void listmem1 () يلقي الاستثناء {connection con = dbutil.getCon () ؛ // الحصول على سلسلة الاتصال sql = "select * from comp" ؛ preparedStatement PSTMT = con.preparestatement (SQL) ؛ resultset rs = pstmt.executequery () ؛ // إرجاع مجموعة النتائج // التالي () قم بتحويل المؤشر إلى الصف التالي بينما (rs.next ()) {int id = rs.getint (1) ؛ // احصل على قيمة اسم سلسلة معرف العمود الأول = rs.getString (2) ؛ راتب مزدوج = rs.getDouble (4) ؛ System.out.println ("no.:" + id + "الاسم:" + name + "العمر:" + Age + "Salary:" + Salary) ؛ System.out.println ("+======================================================================================================================== ============================================================================================================================================================================= ============================================================================================================================================================================= ============================================================================================================================================================================= ListMem2 () يلقي الاستثناء {connection con = dbutil.getCon () ؛ // الحصول على سلسلة التوصيل sql = "SELECT * Rs.GetInt ("id") System.out.println ("+============================================================================================================================================================== ========================================================== ========================================================== ======================================================== ========================================================== ========================================================== ========================================================== dbutil.getCon () ؛ // احصل على سلسلة الاتصال sql = "SELECT * اسم معرف العمود الأول = Rs.getString ("الاسم") ؛ ListMem1 () ؛ // listmem2 () ؛لمزيد من المعلومات حول المحتوى المتعلق بـ JAVA ، يرجى مراجعة موضوعات هذا الموقع: "ملخص برمجة قاعدة بيانات Java+MySQL" ، "Java Bruck
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.