تشارككم الأمثلة في هذه المقالة في تصميم التخرج لنظام إدارة الاتصال Java للرجوع إليه. المحتوى المحدد كما يلي
يتطلب:
يرجى استخدام XML لحفظ البيانات وإكمال نظام إدارة الاتصال.
يجب مصادقة المستخدمين وتسجيل الدخول قبل أن يتمكنوا من استخدام النظام.
تسجيل ، إضافة ، حذف ، عرض وظائف الاتصال.
مصمم في الوحدات النمطية .
طبقة التفاعل بين مستخدمي إطار عمل ثنائي الطبقة ، طبقة داو.
طبقات دعم أخرى - طبقة تغليف البيانات.
الأدوات - التشفير ، فول المصنع.
خطوات التنمية:
الخطوة 1: تصميم بنية البيانات - XML.
الخطوة 1: تصميم بنية البيانات - XML.
الخطوة 3: إعداد الموارد وترميزها لتنفيذها.
الخطوة 4: قم بإجراء الاختبار.
<؟ <El> 123456 </el> </sistric> <contact id = "80983802eaa6402d8bac8bb39e71c48f"> <name> 12 </same> <sex> 12 </sex> <el> 12 </el> id = "eedb795b97194c3aaa9bacda7e2948e9"> <name> xiaoming </mame> <expans> أنثى </sex> <el> 123 </el> </sontact> </user> </sists>
استخدام
package cn.hncu.contact.util ؛ import java.util.uuid ؛ الفئة العامة idgenerate {private idgenerate () {} سلسلة ثابتة عامة getId () {// return uuid.randomuid (). toString () ؛ إرجاع uuid.randomuuid (). toString (). استبدال ("-" ، "") ؛ }} package cn.hncu.contact.util ؛ import javax.xml.parsers.documentBuilder ؛ import javax.xml.parsers.documentBuilderfactory ؛ import javax.xml.transform.transformer ؛ import javax.xml.transform. javax.xml.transform.dom.domsource ؛ import javax.xml.transform.stream.streamrult ؛ import org.w3c.dom.document ؛ public class mydocumentfactory {private static final file_name = "./ xml/ussml" ؛ وثيقة ثابتة خاصة DOM = NULL ؛ ثابت {documentBuilder db ؛ حاول {db = documentBuilderfactory.newinstance (). newDocumentBuilder () ؛ dom = db.parse (file_name) ؛ } catch (استثناء e) {رمي new runTimeException ("فشل تحليل مستند XML ..." ، e) ؛ }} المستند الثابت العام getDocument () {return dom ؛ } public static void save () {try {transformer tf = transformerfactory.newinstance (). newTransFormer () ؛ tf.transform (New DomSource (DOM) ، New StreamResult (file_name)) ؛ } catch (استثناء e) {رمي new RunTimeException ("فشل تخزين مستند XML ..." ، e) ؛ } // configurationerror: استثناء التكوين}}داو
package cn.hncu.contact.dao ؛ import java.util.list ؛ import java.util.map ؛ import org.w3c.dom.Element ؛ public interface contactdao {public stustr boolean login (اسم السلسلة ، السلسلة pwd) ؛ قائمة التجريد العامة <map <string ، string >> queryall () ؛ إضافة العنصر التجريدي العام (اسم السلسلة ، سلسلة الجنس ، السلسلة Tel) ؛ Public Abstract Void reg (اسم السلسلة ، سلسلة PWD) ؛ العنصر العام حذف (معرف السلسلة) ؛ // تغيير العنصر التجريدي التجريدي الافتراضي (معرف السلسلة ، اسم السلسلة ، سلسلة الجنس ، السلسلة Tel) ؛} package cn.hncu.contact.dao ؛ استيراد java.util.arraylist ؛ استيراد java.util.hashmap ؛ استيراد java.util.list ؛ استيراد java.util.map ؛ استيراد org.w3c.dom.document ؛ استيراد org.w3c.dom.element ؛ import org.w3c.domc.delist ؛ cn.hncu.contact.util.idgenerate ؛ import cn.hncu.contact.util.mydocumentFactory ؛ public contractimpl تنفذ contactDao {private element currentUser ؛ وثيقة dom = null ؛ Public ContactImpl () {} // اسم سلسلة ثابتة خاصة = null ؛ // سلسلة ثابتة pwd = null ؛ @override // تسجيل الدخول المنطقي العام (اسم السلسلة 2 ، سلسلة pwd2) {public boolean login (اسم السلسلة ، السلسلة pwd) {// name = name2 ؛ // pwd = pwd2 ؛ dom = myDocumentFactory.getDocument () ؛ العنصر جذر = (عنصر) dom.getFirstChild () ؛ nodelist nodeList = root.getElementsByTagName ("المستخدم") ؛ لـ (int i = 0 ؛ i <nodelist.getLength () ؛ i ++) {element e = (element) nodelist.item (i) ؛ if ( العودة صحيح. }} إرجاع خطأ ؛ } Override Public List <map <string ، string >> QueryAll () {list <map <string ، string >> list = new ArrayList <map <string ، string >> () ؛ if (currentUser == null) {return list ؛ } nodelist nodeList = currentUser.getElementSbyTagName ("contact") ؛ لـ (int i = 0 ؛ i <nodelist.getLength () ؛ i ++) {map <string ، string> map = new hashmap <string ، string> () ؛ العنصر e = (العنصر) nodelist.item (i) ؛ معرف السلسلة = e.getAttribute ("id") ؛ map.put ("id" ، id) ؛ اسم السلسلة = map.put ("الاسم" ، الاسم) ؛ STRING SEX = map.put ("الجنس" ، الجنس) ؛ String tel = map.put ("Tel" ، tel) ؛ list.add (map) ؛ } قائمة الإرجاع ؛ } Override element public add (اسم السلسلة ، سلسلة الجنس ، السلسلة tel) {dOM DOM = myDocumentFactory.getDocument () ؛ عنصر enewContact = dom.CreateElement ("contact") ؛ enewContact.setAttribute ("id" ، idgenerate.getId ()) ؛ element namenew = dom.createlement ("name") ؛ namenew.settextContent (الاسم) ؛ enewcontact.appendchild (namenew) ؛ element sexnew = dom.createlement ("sex") ؛ sexnew.settextContent (الجنس) ؛ enewcontact.appendchild (sexnew) ؛ Element telnew = dom.CreateElement ("tel") ؛ Telnew.settextContent (Tel) ؛ enewcontact.appendchild (Telnew) ؛ CurrentUser.AppendChild (EnewContact) ؛ myDocumentFactory.save () ؛ // login (name ، pwd) ؛ إرجاع enewcontact. } العنصر العام delete (string id) {nodeList nodeList = currentUser.getElementSbyTagName ("contact") ؛ لـ (int i = 0 ؛ i <nodelist.getLength () ؛ i ++) {element e = (element) nodelist.item (i) ؛ if ( إرجاع ه ؛ }} الإرجاع null ؛ } Override public void reg (اسم السلسلة ، السلسلة pwd) {dOM DOM = myDocumentFactory.getDocument () ؛ element usernew = dom.createlement ("user") ؛ usernew.setattribute ("الاسم" ، الاسم) ؛ usernew.setattribute ("pwd" ، pwd) ؛ Dom.GetFirstChild (). AppendChild (usernew) ؛ mydocumentFactory.save () ؛ } Override Public Element Change (معرف السلسلة ، اسم السلسلة ، سلسلة الجنس ، السلسلة Tel) {nodeList nodeList = currentUser.getElementSbyTagName ("contact") ؛ لـ (int i = 0 ؛ i <nodelist.getLength () ؛ i ++) {element e = (element) nodelist.item (i) ؛ if ( E.GetElementsByTagName ("sex"). البند (0) .SettextContent (الجنس) ؛ E.GetElementsByTagName ("Tel"). البند (0) .SettextContent (Tel) ؛ myDocumentFactory.save () ؛ // login (name ، pwd) ؛ إرجاع ه ؛ }} الإرجاع null ؛ }} Package cn.hncu.contact.dao ؛ public clistdaofactory {private contactDaofActory () {} public static contactDao getContactDao () {return new contactImpl () ؛ }}CMD
package cn.hncu.contact.cmd ؛ import java.util.list ؛ import java.util.map ؛ import java.util.scanner ؛ import org.w3c.dom.element ؛ import cn.hncu.contact.dao.contactdao ؛ cn.hncu.contact.dao.contactdaofactory ؛ public classactaction {private contactDao dao = contactDaofactory.getContactDao () ؛ الماسح الضوئي الخاص SC = NULL ؛ سلسلة خاصة delids [] ؛ contactaction العامة () {sc = new Scanner (system.in) ؛ بينما (صواب) {system.out.println ("1: login") ؛ system.out.println ("2: register") ؛ system.out.println ("0: exit") ؛ سلسلة OP = SC.NextLine () ؛ if ("1" .equals (op)) {login () ؛ } آخر إذا ("2" .equals (op)) {reg () ؛ } آخر {// system.exit (0) ؛ استراحة؛ }}} private void reg () {system.out.println ("الرجاء إدخال اسم المستخدم:") ؛ اسم السلسلة = sc.nextline () ؛ System.out.println ("الرجاء إدخال كلمة مرور المستخدم:") ؛ سلسلة pwd = sc.nextline () ؛ System.out.println ("يرجى تأكيد كلمة مرور المستخدم:") ؛ سلسلة pwd2 = sc.nextline () ؛ if (pwd.equals (pwd2)) {dao.reg (name ، pwd) ؛ } آخر {system.out.println ("مدخلات كلمة المرور غير متسقة ، يرجى التسجيل مرة أخرى") ؛ }} private void login () {system.out.println ("الرجاء إدخال اسم المستخدم:") ؛ اسم السلسلة = sc.nextline () ؛ System.out.println ("الرجاء إدخال كلمة مرور المستخدم:") ؛ سلسلة pwd = sc.nextline () ؛ Boolean Boo = dao.login (الاسم ، pwd) ؛ if (boo) {system.out.println ("تسجيل الدخول بنجاح ...") ؛ عملية()؛ } آخر {system.out.println ("denglushibai") ؛ }} private void operation () {list <map <string ، string >> list = dao.queryall () ؛ delids = سلسلة جديدة [list.size ()] ؛ int i = 0 ؛ لـ (MAP <String ، String> MAP: LIST) {string id = map.get ("id") ؛ delids [i ++] = id ؛ } // بينما (صواب) {// لأن شجرة DOM نفسها تتم مشاركتها ، بعد كل إضافة ، حذف ، تعديل وتحقق ، فهي لا تزال شجرة DOM الأصلية. // العمليات في حين أن العمليات السابقة ، لذلك يجب عليك الخروج إلى المرحلة السابقة وتسجيل الدخول مرة أخرى للحصول على نظام DOM Tree المحدث. System.out.println ("2: إضافة جهة الاتصال") ؛ System.out.println ("3: حذف الاتصال") ؛ System.out.println ("4: تعديل الاتصال") ؛ system.out.println ("0: exit") ؛ سلسلة sel = sc.nextline () ؛ if ("1" .equals (sel)) {system.out.println ("الرقم التسلسلي/tname/tgender/ttel") ؛ System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ map.get (tel ") ؛ changeContact () ؛ System.out.println ("الرجاء إدخال اسم جهة الاتصال المراد تعديلها:") ؛ System.out.println ("الرجاء إدخال الاسم الأخير لجهة الاتصال ليتم تعديله:") ؛ سلسلة الجنس = sc.nextline () ؛ System.out.println ("الرجاء إدخال رقم هاتف جهة الاتصال ليتم تعديله:") ؛ سلسلة tel = sc.nextline () ؛ العنصر e = dao.Change (delids [num-1] ، الاسم ، الجنس ، tel) ؛ if (e! = null) {system.out.println (num+"sign بعد تحديث جهة الاتصال: الاسم:"+E.GetElementsByTagName ("name"). البند (0) .GetTextContent ()+"الجنس: الرقم: "+e.getElementsByTagName (" Tel "). البند (0) .getTextContent ()) ؛ } آخر {system.out.println ("فشل التعديل ...") ؛ }} private void delcontact () {system.out.println ("الرجاء إدخال رقم الاتصال المحذوف:") ؛ int num = sc.nextint () ؛ sc.nextline () ؛ // suck Out the NewLine element e e = dao.delete (delids [num-1]) ؛ if (e == null) {system.out.println ("delete failed ، no contact") ؛ } آخر {system.out.println ("حذف جهة الاتصال:"+e.getElementsByTagName ("name"). البند (0) .getTextContent ()+"النجاح ...") ؛ }} private void addContact () {system.out.println ("الرجاء إدخال معلومات الاتصال:") ؛ System.out.println ("الاسم:") ؛ اسم السلسلة = sc.nextline () ؛ System.out.println ("الاسم:") ؛ سلسلة الجنس = sc.nextline () ؛ System.out.println ("Tel:") ؛ سلسلة tel = sc.nextline () ؛ العنصر e = dao.add (الاسم ، الجنس ، tel) ؛ system.out.println ("إضافة جهة الاتصال"+e.getElementsByTagName ("name"). البند (0) .getTextContent ()+"النجاح ...") ؛ } public static void main (string [] args) {new contactaction () ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.