اتصال Java JDBC واستخدامه
JDBC
استيراد برامج التشغيل
// جرة هي مجموعة ملفات فئة معبأة ، والتي يمكن الرجوع إليها في المشاريع الأخرى
// استيراد الجرار الخارجية في مسار البناء
الاتصال بـ JDBC
1. تحميل السائق
class.from ("com.mysql.jdbc.driver") ؛إنشاء اتصال
// تستخدم حزمة الدليل java.sql.*؛ String jdbc = "jdbc: mysql: // localhost: 3306/student؟ user = root & password = & directioneding = utf-8" ؛
2. لاحظ أنه بعد فتح قاعدة البيانات ، تذكر أن تغلقها.
conn.close () ؛
1. تنفيذ عبارات SQL (إنشاء الجداول ، إدراج ، حذف ، تحديث)
باستخدام Statemant
statemant st = conn.createstateMant () ؛ int row = st.executeupdate (عبارة SQL) ؛ // لا يمكن القيام بعمليات الاستعلام.
باستخدام التحضير
هل يمكن استخدامه؟ العناوين النائبة لاستبدال المعلمات التي تحتاجها لتمريرها
String sql = "insert in" + tablename + "(الاسم ، الموضوع ، النتيجة) قيم (؟ ،؟ ،؟)" ؛ إعداد pt = conn.preparestatement (SQL) ؛ // قم بتعيين القيمة لكل عنصر نائب ، ويبدأ المنشأة من 1 pt.SetString (1 ، Score.getName ()) ؛ pt.SetString (2.score.getSubject ()) ؛ Pt.SetDouble (3 ، Score.getScore ()) ؛ // استخدم الطريقة بدون معلمات pt.executeupdate () ؛
1. عملية الاستعلام
قائمة ثابتة <scors> QueryScore (اتصال PConn ، Score PSCore) يلقي SQLException {ArrayList <SCREST> MLIST = NEW ARRAYLIST <> () ؛ String SQL = "SELECT * from" + tablename + "where name =؟" ؛ ReparedStatement ps = pconn.preparestatement (SQL) ؛ ps.SetString (1 ، pscore.getName ()) ؛ resultset rs = ps.executequery () ؛ بينما (rs.next ()) {// هنا يمكنك الحصول على جميع النتائج من خلال RS string subsic = rs.getString ("الموضوع") ؛ int id = rs.getInt ("id") ؛ نقاط مزدوجة = rs.getDouble ("SCORE") ؛ Mlist.add (النتيجة الجديدة (ID ، pscore.getName () ، الموضوع ، النتيجة)) ؛ } return mlist ؛ }هنا برنامج صغير
// إنشاء فئة اتصال قاعدة بيانات الفئة العامة dao {// اطرح عنوان ارتباط قاعدة البيانات static string jdbc = "jdbc: mysql: // localhost: 3306/student؟ user = root & password = & directionencoding = utf-8" ؛ // افتح ارتباط الاتصال العام الثابت بالاتصال () {// الخطوات لاستخدام JDBC // 1. قم بتحميل برنامج تشغيل JDBC Try {// الاسم الكامل للفئة + اسم الفئة class.forname ("com.mysql.jdbc.driver") ؛ // 2. الاتصال بتوصيل قاعدة البيانات conn = drivermanager.getConnection (JDBC) ؛ إرجاع كون ؛ } catch (استثناء e) {system.out.println ("فشل تحميل السائق") ؛ العودة لاغية. }}} // SCORE Class Class Public Score {string name ؛ معرف السلسلة ؛ موضوع السلسلة ؛ درجة مزدوجة النتيجة العامة (اسم السلسلة ، موضوع السلسلة ، النتيجة المزدوجة) {super () ؛ this.name = name ؛ this.subject = الموضوع ؛ this.score = النتيجة ؛ } Override public string toString () {return "SCORE [name =" + name + "، id =" + id + "، thision =" + thision + "، score =" + score + "]" ؛ } النتيجة العامة (اسم السلسلة ، معرف السلسلة ، موضوع السلسلة ، النتيجة المزدوجة) {super () ؛ this.name = name ؛ this.id = id ؛ this.subject = الموضوع ؛ this.score = النتيجة ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } السلسلة العامة getId () {return id ؛ } public void setId (string id) {this.id = id ؛ } السلسلة العامة getSubject () {return subner ؛ } public void setSUBject (string string) {this.subject = toffice ؛ } public double getScore () {return score ؛ } public void setScore (نقاط مزدوجة) {this.score = score ؛ }} // فئة التنفيذ اختبار الفئة العامة {public static string tablename = "Score" ؛ public static void main (string [] args) {try {connection conn = dao.connection () ؛ if (conn! = null) {system.out.println ("linked") ؛ // CreateTable (conn) ؛ // إدراج سجل // SCORE = SCORE NEW ("Li Si" ، "Android" ، 98) ؛ // system.out.println (AddScore2 (Conn ، Score)) ؛ // deletescore (Conn ، Score) ؛ // updatescore (Conn ، Score) ؛ قائمة <scors> list = QueryScorebyName (Conn ، "Wang Wu") ؛ // QueryAllScore (conn) ؛ لـ (Score Score: List) {system.out.println (Score) ؛ } conn.close () ؛ } آخر {system.out.println ("فشل الرابط") ؛ }} catch (sqlexception e) {E.PrintStackTrace () ؛ }} // قم بإنشاء جدول مؤقت للبولين (connection conn) {// ابدأ تنفيذ سلسلة عبارة SQL SQL = "إنشاء جدول" + tablename + "(ID INTEGER المفتاح الأساسي AUTO_INCREMENT ، NAME VARCHAR (3) NOT NULL ، الموضوع varchar (20) غير فارغ ، نقاط مزدوجة)" ؛ // لتنفيذ بيان ، يجب تنفيذ الفئة التي تم تنفيذه في بيان جرب {state st = conn.createstatement () ؛ int النتيجة = St.ExecuteUpdate (SQL) ؛ System.out.println (نتيجة) ؛ إذا (النتيجة! = -1) العودة صحيح ؛ } catch (sqlexception e) {E.PrintStackTrace () ؛ } إرجاع خطأ ؛ }. System.out.println (SQL) ؛ بيان st = conn.createstatement () ؛ int row = St.ExecuteUpdate (SQL) ؛ إذا (الصف> 0) العودة صحيح ؛ العودة كاذبة } // إضافة سجل 2 addScore2 addScore2 (اتصال Connection ، Score). لاستبدال المعلمة التي يجب تعيين سلسلة sql = "أدخل في" + tablename + "(الاسم ، الموضوع ، النتيجة) قيم (؟ ،؟ ،؟)" ؛ reparedStatement ps = conn.preparestatement (SQL) ؛ // يجب إعطاء؟ القيمة التي يمثلها Ps.SetString (1 ، Score.getName ()) ؛ ps.SetString (2 ، score.getSubject ()) ؛ Ps.SetDouble (3 ، Score.getScore ()) ؛ // استدعاء الطريقة بدون معلمات int row = ps.executeupdate () ؛ إذا (الصف> 0) العودة صحيح ؛ العودة كاذبة } الحذف المنطقي الثابت (Connection Conn ، Score Score) يلقي Sqlexception {String sql = "delete from" + tablename + "where name =؟ and tource =؟" ؛ // إنشاء إعداد preparedStatement ps = conn.preparestatement (SQL) ؛ ps.SetString (1 ، score.getName ()) ؛ ps.SetString (2 ، score.getSubject ()) ؛ // ps.setDouble (3 ، score.getScore ()) ؛ // تنفيذ int row = ps.executeupdate () ؛ system.out.println (row) ؛ إذا (الصف> 0) العودة صحيح ؛ العودة كاذبة } تحديثات منطقية ثابتة عامة (اتصال Conn ، Score) يلقي Sqlexception {// تعديل النتيجة لسلسلة الموضوعات الخاصة به sql = "update" + tablename + "score score =؟ أين الاسم =؟ والموضوع =؟" ؛ reparedStatement ps = conn.preparestatement (SQL) ؛ Ps.SetDouble (1 ، Score.getScore ()) ؛ ps.SetString (2 ، score.getName ()) ؛ ps.SetString (3 ، score.getSubject ()) ؛ int row = ps.executeupdate () ؛ system.out.println (row) ؛ إذا (الصف> 0) العودة صحيح ؛ العودة كاذبة } القائمة الثابتة العامة <SCRED> QUERYALLSCORE (اتصال CONN) يلقي sqlexception {string sql = "select * from" + tablename ؛ // START QUERY QUERY ST = CONN.CREATESTATEMENT () ؛ resultset rs = St.Executequery (SQL) ؛ قائمة <scors> list = new ArrayList <score> () ؛ بينما (rs.next ()) {// هنا يمكنك الحصول على جميع النتائج من خلال معرف سلسلة RS = rs.getString ("id") ؛ اسم السلسلة = rs.getString ("الاسم") ؛ موضوع السلسلة = rs.getString ("الموضوع") ؛ نقاط مزدوجة = rs.getDouble ("SCORE") ؛ list.add (النتيجة الجديدة (الاسم ، المعرف ، الموضوع ، النتيجة)) ؛ } // end return list ؛ } القائمة الثابتة العامة <SCRESS> QueryScorebyName (اتصال Conn ، اسم السلسلة) يلقي sqlexception {String sql = "select * from" + tablename + "where name =؟" ؛ reparedStatement pt = conn.preparestatement (SQL) ؛ Pt.SetString (1 ، الاسم) ؛ resultset rs = pt.executequery () ؛ قائمة <scors> list = new ArrayList <> () ؛ بينما (rs.next ()) {string subsic = rs.getString ("subsic") ؛ معرف السلسلة = rs.getString ("id") ؛ نقاط مزدوجة = rs.getDouble ("SCORE") ؛ list.add (النتيجة الجديدة (الاسم ، المعرف ، الموضوع ، النتيجة)) ؛ } قائمة الإرجاع ؛ }