Crud هو اختصار إنشاء وقراءة وتحديث وحذف ، وهو صورة مصغرة للتطبيقات العادية. إذا كنت تتقن كتابة Crud لإطار عمل ، فهذا يعني أنه يمكنك استخدام الإطار لإنشاء تطبيقات عادية. لذلك ، عند استخدام الإطار الجديد لتطوير تطبيقات OLTP (معالجة المعاملات عبر الإنترنت) ، ستدرس أولاً كيفية كتابة CRUD. هذا مشابه للطريقة التي يحب بها الناس كتابة "Hello World" عند تعلم لغات البرمجة الجديدة.
تهدف هذه المقالة إلى وصف تطوير CRUD على الدعامات 2 ، لذلك من أجل البساطة وسهولة الفهم ، لن أقضي وقتًا في عمليات قاعدة البيانات. بدلاً من ذلك ، يحاكي جدول التجزئة (خريطة التجزئة) قاعدة البيانات.
تنفيذ محدد
أولاً ، دعنا نلقي نظرة على DAO "المزيف" (كائن الوصول إلى البيانات ، كائن الوصول إلى البيانات) ، الرمز هو كما يلي:
حزمة تعليمي. bookdao () ؛ data = concurrenthashmap الجديد <string ، book> () ؛ data.put ("978-0735619678" ، كتاب جديد ("978-0735619678" ، "الكود الكامل ، الطبعة الثانية" ، 32.99)) كتاب ("978-0596007867" ، "فن إدارة المشروع" ، 35.96)) ؛ البيانات. كتاب ("978-0596527341" ، "بنية المعلومات للشبكة العالمية: تصميم مواقع ويب واسعة النطاق" ، 25.19)) {} public static bookdao getInstance () {return مثيل ؛} المجموعة العامة <book> getBooks () {return data.values () ؛ {data.remove (ISBN) ؛} public void removidbooks (string [] isBn) {for (string isBn: isBn) {data.remove (isBn) ؛}}}قائمة 1 SRC/البرنامج التعليمي/DAO/BOOKDAO.JAVA
أعتقد أنه لا يوجد تفسير مطلوب للرمز أعلاه. يمكنني استخدام بنية بيانات ConcurrentMap لتخزين كائنات الكتب ، والتي تتمثل بشكل أساسي في تسهيل استرجاع وتخزين كائنات الكتب ؛ بالإضافة إلى ذلك ، قمت أيضًا بتعيين متغير البيانات ليكون فريدًا ثابتًا لمحاكاة قاعدة بيانات التطبيق.
التالي هو فئة كتاب نموذج البيانات ، الرمز كما يلي:
حزمة تعليمي. ISBN ؛} public double getPrice () {return price ؛} public void setPrice (price double) {this.price = price ؛قائمة 2 src/البرنامج التعليمي/النموذج/book.java
يحتوي فئة الكتاب على ثلاث سمات: ISBN ، العنوان والسعر يمثلون الرقم واسم وسعر الكتاب ، على التوالي. يتم استخدام الرقم لتحديد الكتاب بشكل فريد (أي ما يعادل المفتاح الأساسي في قاعدة البيانات).
ثم ، دعنا نلقي نظرة على رمز فئة الإجراء:
حزمة تعليمي. مجموعة <Book> books ؛ private bookdao dao = bookdao.getInstance () ؛ public book getBook () {return book ؛} public void setbook (كتاب كتاب) {this.book = book ؛ ISBN ؛} public void setIsBnns (string [] isBnns) {this.isbns = iSbnns ؛} مجموعة عامة <book> getBooks () {books books ؛} public void setbooks (collection <book> books) {this.books = books ؛ dao.getbooks () ؛ Return Success ؛} String Store () {dao.storeBook (book) ؛ return success ؛} سلسلة عامة remove () {if (null! = isBn) {dao.removebook (isbn) ؛} آخرقائمة 3 SRC/البرنامج التعليمي/الإجراء/الحجز
في فئة الحجز ، يتم استخدام السمة ISBN لتمثيل عدد الكتب المراد تحريرها أو حذفها ، ويتم استخدام السمة ISBNs لتمثيل مجموعة الأرقام من الكتب المراد حذفها ، ويمثل دفتر السمات الكتاب الحالي ، وتمثل كتب السمات قائمة الكتب الحالية. يحتوي BookAction على أربع أساليب عمل ، تحميل ، قائمة ، تخزين وإزالة ، أي Crud يتم تنفيذها جميعًا في BookAction.
التالي هو رمز تكوين الإجراء:
<؟ تمديد = "struts-default" namepace = "/book"> <action name = "list" method = "list"> <result> list. name = "remove" method = "remove"> <result type = "redirect"> list.action </result> </usace> </package> </struts>
سرد 4 SRC/Struts.xml
في التكوين أعلاه ، استخدمت أربعة تعريفات عمل. انهم جميعا داخل مساحة الاسم "/الكتاب". وبهذه الطريقة ، يمكنني أن أسمي أساليب الإجراء الأربع لعمليات الحجز لعمليات CRUD بواسطة "http: // localhost: 8080/struts2_crud/book/list.action" ، "http: // localhost: 8080/struts2_crud/book/elect "http: // localhost: 8080/struts2_crud/book/remove.action". بالطبع ، هذا مجرد تفضيل شخصي. يمكنك فقط تحديد إجراء (على افتراض أن اسمه "كتاب") ، ثم الوصول إليه من خلال "http: // localhost: 8080/struts2_crud/book! list.action". للحصول على التفاصيل ، يرجى الرجوع إلى "STRUTS 2.0 Action Explanation". أيضًا ، أستخدم نتيجة إعادة التوجيه (إعادة التوجيه) لأنني أرغب في العودة إلى صفحة القائمة بعد الانتهاء من التحرير أو الحذف.
فيما يلي رمز صفحة القائمة:
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <٪@ taglib prepix = "s" uri = "/struts-tags" ٪> <! "http://www.w3. سوداء صلبة ؛ collapse الحدودية: الانهيار ؛} جدول thead tr th {الحدود: 1px سوداء صلبة ؛ حشوة: 3px ؛ لون الخلفية: #cccccc ؛} الجدول tbod cellpacing = "0"> <thead> <tr> <th> حدد </th> <th> iSbn </h> <th> العنوان </th> <th> السعر </th> <th> العملية </th> </tr> </thead> <tbody> <s: iterator value = "books"> <td> <td> typerbox ". /> ' /> </td> <td> <s: property value = "iSbn" /> /> </td> <td> $ <s: property value = "price" /> </td> <td> <a href =' <s: url action = "edit"> <s: param name = "iSbn" href = '<s: url action = "remove"> <s: param name = "iSbn" value = "iSbn"/> </s </body> </html>سرد 5 WebContent/Book/List.jsp
في الكود أعلاه ، تجدر الإشارة إلى أنه في علامة <S: Form> ، قمت بتعيين خاصية السمة على "Simple" ، بحيث يمكنها إلغاء تصميم الجدول الافتراضي. في السابق ، سألني بعض الأصدقاء ، "ماذا علي أن أفعل إذا كنت لا أريد وضع زر الإرسال على اليمين؟" التعرق أعلاه هو أحد الإجابات. بالطبع ، من الأفضل تخصيص موضوع وتطبيقه على الموقع بأكمله افتراضيًا ، بحيث يمكنك الحصول على نمط موحد لموقع. سأصف هذا بالتفصيل في المقالات المستقبلية.
رمز صفحة التحرير أو إضافة الكتب هو كما يلي:
<٪@ page language = "java" contentType = "text/html ؛ charset = utf-8" pageencoding = "utf-8" ٪> <٪@ taglib prepix = "s" uri = "/struts-tags" ٪> <! "http://www.w3. == كتاب "> إضافة كتاب < /s: if> <s: else> تحرير الكتاب < /s: else> </h2> <s: form action =" store "> <s: textfield name =" book.isbn "label =" iSbn " /> <s: textfield name =" book.title "label = /> </s: form> </body> </html>
قائمة 6 WebContent/Book/Edit.jsp
إذا كان الكتاب لاغًا ، فهذا يعني أن الصفحة تستخدم لإضافة كتب ، والعكس بالعكس هي صفحة التحرير.
لتسهيل الجميع لتشغيل الأمثلة ، قمت أيضًا بنشر رمز web.xml ، على النحو التالي:
<؟ الإصدار = "2.4" xmlns = "http://java.sun.com/xml/ns/j2ee" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><display-name> struts 2 FileUpload </isplay-name> <iliter> <filter-name> Struts2 </filter-name> <livers-class> org.apache.struts2.dispatcher.filterDispatcher </filter-class> </filter> <living mapping> <Filter-Name> Struts2 </filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <-list-file-list> <lispile-file> index.html </iship-file> </self-file-list> </peb-app>
سرد 7 WebContent/Web-Inf/Web.xml
تتم المهمة ، يتم نشر ما يلي لتشغيل التطبيق ، النوع: http: // localhost: 8080/struts2_crud/book/list.action في المتصفح ، وتظهر الصفحة الموضحة في الشكل أدناه:
قائمة 8 صفحة الإدراج
انقر فوق "إضافة كتاب" والصفحة الموضحة في الشكل أدناه:
سرد 9 إضافة صفحة كتاب
ارجع إلى صفحة القائمة وانقر فوق "تحرير" ، وتظهر الصفحة الموضحة في الشكل أدناه:
سرد 10 صفحة كتاب تحرير
لخص
تقدم هذه المقالة بإيجاز طريقة تنفيذ CRUD للدعامات 2 ، لذا لا يتم تنفيذ العديد من الوظائف ، مثل التدويل والتحقق من البيانات. يمكنك تحسينه بناءً على المثال أعلاه ، ومن الجيد أيضًا التدرب. إذا كنت لا تفهم ، فالرجاء ترك رسالة لي. سوف يرد المحرر على الجميع في الوقت المناسب. شكرًا جزيلاً على دعمكم لموقع Wulin Network!