أعتقد أن الجميع على دراية بـ JDBC. طالما أنك شخص Java ، عليك أن تتعلم مثل هذا الشيء عندما تتلامس مع J2EE لأول مرة. من يقول أن البرامج يجب أن تتعامل مع قواعد البيانات؟ JDBC هي معرفة أساسية للغاية للتعامل مع قواعد البيانات ، كما أنها قريبة نسبيًا من المستوى الأساسي. في العمل الفعلي ، يستخدم الأشخاص أطر عمل أكثر نضجًا ، مثل السبات و MyBatis.
ومع ذلك ، نظرًا لأن JDBC الأساسي لهذه الأطر الناضجة ، يجب علينا أيضًا إتقانها. فقط من خلال فهم الإضافة والحذف والتعديل والاستعلام عن JDBC ، هل يمكننا أن نفهم بشكل أفضل كيف تنفذ هذه الأطر الناضجة إضافة ، حذف ، تعديل والاستعلام عندما يهتمون بدراسة رمز المصدر لإسبات أو MyBatis في المستقبل.
بالعودة إلى الموضوع ، دعونا نلقي نظرة على بيئة التطوير لدينا:
لغة Java ، أدوات تطوير Eclipse ، قاعدة بيانات MySQL ، أدوات تصور قاعدة بيانات Navicat.
يرجى التحقق من المعلومات بنفسك للتثبيت والبناء واستخدام بيئة التطوير (بسيطة للغاية) ، ولن يتم شرحها بالتفصيل هنا.
تتمثل الخطوة الأولى في إنشاء قاعدة بيانات ، واستخدام أداة تصور قاعدة بيانات Navicat لإنشاء قاعدة بيانات ، وإنشاء جدول في قاعدة البيانات ، وإعطاء عدة حقول في الجدول (تذكر أن تعطي حقل معرف ، ومفتاح أساسي فريد ، وتسلسل ذاتي ذاتي) ، ثم إعطاء قطعتين من البيانات حسب الإرادة ، كما هو موضح في الشكل:
والخطوة الثانية هي فتح قاعدة البيانات (آمل أن يتمكن الجميع من النقر على هذا المثال بنفسك ، والتي لن تستغرق الكثير من الوقت. كن على دراية بكيفية تعامل JDBC مع قاعدة البيانات ، لذلك سأريها في الشكل). كما هو مبين في الشكل:
الخطوة الثالثة هي تحويل فئة DBUTIL لتسهيل الحصول على اتصالات قاعدة البيانات في طبقة DAO. الرمز كما يلي:
package com.czgo.db ؛ import java.sql.connection ؛ import java.sql.drivermanager ؛ import java.sql.sqlexception ؛ public class dbutil {private static string url = "jdbc: mysql: //127.0.0.0.1: 3306/imooc" ؛ Static Final Final String uname = "Root" ؛ السلسلة النهائية الثابتة الخاصة pwd = "root" ؛ اتصال ثابت خاص conn = null ؛ ثابت {try {// 1. // 2. الحصول على الاتصال بقاعدة البيانات conn = drivermanager.getConnection (url ، uname ، pwd) ؛ } catch (classNotFoundException e) {E.PrintStackTrace () ؛ } catch (sqlexception e) {E.PrintStackTrace () ؛ }} اتصال ثابت getConnection () {return conn ؛ }} الخطوة 4: إنشاء فصول كيان (كما هو موضح في الصورة أعلاه ، يلاحظ الجميع تخصيص الحزم. سنستخدم فكرة MVC لتصميم هذا المثال. هناك أفكار تصميم حول MVC ، يرجى تعلم ذلك بنفسك ، لن أقول الكثير هنا) كما يلي الرمز:
حزمة com.czgo.model ؛ استيراد java.io.serializable ؛/** * الطبقة الكيان: فئة الإلهة * * Author alanlee * */goddess الطبقة العامة تنفذ {private static static final serialversionuid = 1l ؛ / *** المفتاح الأساسي الفريد*/ معرف عدد صحيح خاص ؛ / *** الاسم*/ اسم السلسلة الخاصة ؛ / *** رقم الهاتف المحمول*/ سلسلة خاصة Mobie ؛ / *** البريد الإلكتروني*/ البريد الإلكتروني الخاص بالسلسلة الخاصة ؛ / *** عنوان الصفحة الرئيسية*/ عنوان السلسلة الخاصة ؛ عدد صحيح عام getId () {معرف الإرجاع ؛ } public void setId (integer id) {this.id = id ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } السلسلة العامة getMobie () {return mobie ؛ } public void setMobie (String mobie) {this.mobie = mobie ؛ } السلسلة العامة getEmail () {return email ؛ } public void setemail (string email) {this.email = email ؛ } السلسلة العامة getAddress () {return address ؛ } public void setAddress (عنوان السلسلة) {this.address = العنوان ؛ }} الخطوة 5 ، تنفيذ طبقة DAO (هنا ، لأنها مثال صغير ، لا توجد واجهة كتابة للمشاريع الكبيرة في العمل الفعلي ، وهو مناسب لصيانة البرنامج والتوسع). الرمز كما يلي:
package com.czgo.dao ؛ استيراد java.sql.connection ؛ استيراد java.sql.preparedstatement ؛ استيراد java.sql.resultset ؛ import java.sql.sqlexception ؛ import java.util.arraylist ؛ import java.util.list ؛ import com.czgo.db.db.db.dbutil ؛ com.czgo.model.goddess ؛/** * فئة معالجة طبقة البيانات * * author alanlee * */الطبقة العامة goddessdao {/** * Query all goDdesses * * * reghrows sqlexception */public list <goddess> query () throws sqlexpection {list> // احصل على اتصال Connection Connect Connate Connate = dbutil.getConnection () ؛ StringBuilder sb = new StringBuilder () ؛ sb.append ("حدد المعرف ، الاسم ، mobie ، البريد الإلكتروني ، العنوان من آلهة") ؛ // قم بتشغيل قاعدة البيانات من خلال اتصال قاعدة البيانات لإدراك الإضافة والحذف والتعديل والبحث PreparedStatement Ptmt = conn.preparestatement (SB.ToString ()) ؛ resultset rs = ptmt.executequery () ؛ إلهة الإلهة = فارغة ؛ بينما (rs.next ()) {goddess = new goddess () ؛ Goddess.setId (rs.getint ("id")) ؛ goddess.setName (rs.getString ("name")) ؛ goddess.setmobie (rs.getString ("mobie")) ؛ goddess.setemail (rs.getString ("البريد الإلكتروني")) ؛ إلهة. إلهة. Goddesslist.Add (إلهة) ؛ } إرجاع GoddessList ؛ } / ** * QUERY GODDESS * * RETURN * Throws sqlexception * / public goddess querybyid (integer id) يلقي sqlexception {goddess g = null ؛ Connection conn = dbutil.getConnection () ؛ String SQL = "" + "SELECT * FROM IMOOC_GODDESS" + "أين id =؟" ؛ ReparedStatement Ptmt = conn.preparestatement (SQL) ؛ ptmt.setint (1 ، id) ؛ resultset rs = ptmt.executequery () ؛ بينما (rs.next ()) {g = new goddess () ؛ G.SetId (Rs.GetInt ("id")) ؛ G.SetName (RS.GetString ("name")) ؛ G.SetMobie (Rs.GetString ("Mobie")) ؛ G.SetEmail (RS.GetString ("البريد الإلكتروني")) ؛ G.SetAddress (RS.GetString ("العنوان")) ؛ } إرجاع G ؛ } / ** * إضافة إلهة * * throws sqlexception * / public void addgoddess (إلهة إلهة) يلقي sqlexception {// الحصول على اتصال قاعدة البيانات conn = dbutil.getConnection () ؛ String sql = "insert in goddess (name ، mobie ، email ، address) القيم (؟ ،؟ ،؟ ،؟)" ؛ ReparedStatement Ptmt = conn.preparestatement (SQL) ؛ ptmt.SetString (1 ، goddess.getName ()) ؛ ptmt.setstring (2 ، goddess.getMobie ()) ؛ ptmt.setstring (3 ، goddess.getemail ()) ؛ ptmt.SetString (4 ، goddess.getaddress ()) ؛ ptmt.execute () ؛ } / ** * تعديل معلومات الإلهة * * throws sqlexception * / public void updategoddess (Goddess Goddess) يلقي sqlexception {connection conn = dbutil.getConnection () ؛ String sql = "تحديث اسم set goddess =؟ ، mobie =؟ ، البريد الإلكتروني =؟ ، العنوان =؟ أين المعرف =؟" ؛ ReparedStatement Ptmt = conn.preparestatement (SQL) ؛ ptmt.SetString (1 ، goddess.getName ()) ؛ ptmt.setstring (2 ، goddess.getMobie ()) ؛ ptmt.setstring (3 ، goddess.getemail ()) ؛ ptmt.SetString (4 ، goddess.getaddress ()) ؛ ptmt.execute () ؛ } / ** * حذف إلهة * * throws sqlexception * / public void deletegoddess (integer id) يلقي sqlexception {connection conn = dbutil.getConnection () ؛ String SQL = "DELETE From Goddess Where ID =؟" ؛ ReparedStatement Ptmt = conn.preparestatement (SQL) ؛ ptmt.setint (1 ، id) ؛ ptmt.execute () ؛ }} الخطوة 6: تنفيذ طبقة التحكم (يتم استخدام طبقة التحكم لتقليد طبقة التحكم والواجهة هنا ، وإنشاء البيانات مباشرة هنا. إذا كانت بيانات الواجهة ، يمكنك تمرير معلمات الاستلام من خلال الطلبات. يمكنك تغيير وتحسين رمز طبقة التحكم وفقًا للموقف الفعلي. الرمز كما يلي:
package com.czgo.action ؛ استيراد java.sql.sqlexception ؛ استيراد java.util.list ؛ import com.czgo.dao.goddessdao ؛ استيراد com.czgo.model.goddess ؛/*** طبقة التحكم ، بناء بيانات مباشرة هنا ، ويمكن أن تكون بيانات الواجهة من خلال الطلبات. الشيء نفسه صحيح * * Author Alanlee * */class public class goddessactaction {/** * إضافة إلهة * * param goddess * @throws استثناء */public void add (إلهة إلهة) يلقي الاستثناء {goddessdao dao = new goddessdao () ؛ Goddess.SetName ("aoi sora") ؛ Goddess.SetMobie ("52220000") ؛ Goddess.setemail ("[email protected]") ؛ إلهة. dao.addgoddess (إلهة) ؛ } / ** * QUERY GODDESS * * param id * return * throws sqlexception * / public goddess get (integer id) يلقي sqlexception {goddessdao dao = new goddessdao () ؛ إرجاع dao.querybyid (id) ؛ } / ** * تعديل الإلهة * * param goddess * throws استثناء * / public void edit (إلهة إلهة) يلقي الاستثناء {goddessdao dao = new goddessdao () ؛ dao.updategoddess (إلهة) ؛ } / ** * حذف إلهة * * param id * throws sqlexception * / public void del (integer id) يلقي sqlexception {goddessdao dao = new goddessdao () ؛ dao.deletegoddess (id) ؛ } / ** * Query All Goddesses * * Return * @throws استثناء * / قائمة عامة <goddess> Query () رمي الاستثناء {goddessdao dao = new goddessdao () ؛ إرجاع dao.query () ؛ } / ** * اختبار ما إذا كان ناجحًا * * param args * throws sqlexception * / public static void main (string [] args) remspection {goddessdao goddessdao = new goddessdao () ؛ قائمة <Huddess> goddesslist = goddessdao.query () ؛ من أجل (إلهة إلهة: goddesslist) {system.out.println (goddess.getName () + "،" + goddess.getMobie () + "،" + goddess.getemail ()) ؛ }}} أخيرًا ، دعنا نرى ما إذا كانت الطريقة الرئيسية تعمل بنجاح:
وبهذه الطريقة ، يتم إكمال اتصال Java JDBC بسيط لقاعدة بيانات MySQL لإضافة وحذف وتعديل والاستعلام. يمكنك محاولة إجراء استعلام متقدم استنادًا إلى الاستعلام ، أي استعلام متعدد الأداء لتوحيد استخدام JDBC.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.