ตัวอย่างในบทความนี้แบ่งปันการออกแบบการสำเร็จการศึกษาของระบบการจัดการการติดต่อ Java สำหรับการอ้างอิงของคุณกับคุณ เนื้อหาเฉพาะมีดังนี้
จำเป็นต้อง:
โปรดใช้ XML เพื่อบันทึกข้อมูลและกรอกระบบการจัดการผู้ติดต่อ
ผู้ใช้จะต้องได้รับการรับรองความถูกต้องและเข้าสู่ระบบก่อนที่จะใช้ระบบ
ลงทะเบียน, เพิ่ม, ลบ, ดูฟังก์ชั่นติดต่อ
ออกแบบ ในโมดูล
เลเยอร์การโต้ตอบของผู้ใช้เฟรมเวิร์กสองชั้นเลเยอร์ DAO
เลเยอร์สนับสนุนอื่น ๆ - เลเยอร์การห่อหุ้มข้อมูล
เครื่องมือ - การเข้ารหัสถั่วโรงงาน
ขั้นตอนการพัฒนา:
ขั้นตอนที่ 1: ออกแบบโครงสร้างข้อมูล - XML
ขั้นตอนที่ 1: ออกแบบโครงสร้างข้อมูล - XML
ขั้นตอนที่ 3: เตรียมทรัพยากรและเข้ารหัสเพื่อนำไปใช้
ขั้นตอนที่ 4: เรียกใช้การทดสอบ
<? xml version = "1.0" encoding = "utf-8" standalone = "ไม่"?> <ติดต่อ> <ชื่อผู้ใช้ = "jack" pwd = "1234"> <contact id = "707dede609dd4a2990f7cfa4cd5233f9" <lef> 123456 </lef> </sotact> <ติดต่อ ID = "80983802EAA6402D8BAC8BB39E71C48F"> <name> 12 </name> <ex> 12 </ex> <tel> 12 </let> id = "EEDB795B97194C3AAAA9BACDA7E2948E9"> <name> Xiaoming </name> <ex> หญิง </ex> <tel> 123 </lele>
ใช้
แพ็คเกจ cn.hncu.contact.util; นำเข้า java.util.uuid; คลาสสาธารณะ idgenerate {private idgenerate () {} สตริงคงที่สาธารณะ getid () {// return uuid.randomuiD () toString (); return uuid.randomuuid (). toString (). แทนที่ ("-", ""); - แพ็คเกจ cn.hncu.contact.util; นำเข้า Javax.xml.parsers.documentBuilder; นำเข้า Javax.xml.parsers.documentBuilderFactory; นำเข้า Javax.transform.transformer. javax.xml.transform.stream.streamresult; นำเข้า org.w3c.dom.document; คลาสสาธารณะ MyDocumentFactory {สตริงสุดท้ายคงที่ส่วนตัว file_name = "./ xml/users.xml"; เอกสารคงที่ส่วนตัว dom = null; คงที่ {DocumentBuilder db; ลอง {db = documentbuilderfactory.newinstance (). newDocumentBuilder (); dom = db.parse (file_name); } catch (exception e) {โยน runtimeException ใหม่ ("การแยกวิเคราะห์เอกสาร XML ล้มเหลว ... ", e); }} เอกสารคงที่สาธารณะ getDocument () {return dom; } โมฆะคงที่สาธารณะบันทึก () {ลอง {transformer tf = transformerFactory.newInstance (). newTransformer (); tf.transform (domsource ใหม่ (dom), streamresult ใหม่ (file_name)); } catch (exception e) {โยน runtimeException ใหม่ ("การจัดเก็บเอกสาร XML ล้มเหลว ... ", e); } // configurationError: ข้อยกเว้นการกำหนดค่า}}}DAO
แพ็คเกจ cn.hncu.contact.dao; นำเข้า java.util.list; นำเข้า java.util.map; นำเข้า org.w3c.dom.element; อินเทอร์เฟซสาธารณะ contactdao {ล็อกอินบูลีนนามธรรม (ชื่อสตริง, สตริง PWD); รายการบทคัดย่อสาธารณะ <แผนที่ <สตริงสตริง >> queryall (); การเพิ่มองค์ประกอบนามธรรมสาธารณะ (ชื่อสตริง, String Sex, String tel); บทคัดย่อสาธารณะเป็นโมฆะ reg (ชื่อสตริง, สตริง PWD); การลบองค์ประกอบสาธารณะ (string id); // บทคัดย่อเริ่มต้นการเปลี่ยนแปลงองค์ประกอบนามธรรมสาธารณะ (รหัสสตริง, ชื่อสตริง, เพศสตริง, สตริงโทร);} แพ็คเกจ cn.hncu.contact.dao; นำเข้า java.util.arraylist; นำเข้า java.util.hashmap; นำเข้า java.util.list; นำเข้า java.util.map นำเข้า org.w3c.dom.document; CN.HNCU.CONTACT.UTIL.IDGENERETER; นำเข้า CN.HNCU.CONTACT.UTIL.MYDOCUMENTFACTORY; การติดต่อระดับสาธารณะ เอกสาร dom = null; Public ContactImpl () {} // ชื่อสตริงคงที่ส่วนตัว = null; // สตริงคงที่ส่วนตัว pwd = null; @Override // Public Boolean Login (String Name2, String Pwd2) {Public Boolean Login (ชื่อสตริง, String Pwd) {// name = name2; // pwd = pwd2; dom = myDocumentFactory.getDocument (); Element root = (องค์ประกอบ) dom.getFirstChild (); NodeList Nodelist = root.getElementByTagname ("ผู้ใช้"); สำหรับ (int i = 0; i <nodelist.getLength (); i ++) {องค์ประกอบ e = (องค์ประกอบ) nodelist.item (i); if (e.getAttribute ("ชื่อ"). equalsignorecase (ชื่อ) && e.getAttribute ("pwd"). equalsignorecase (pwd)) {currentUser = e; กลับมาจริง; }} return false; } @Override รายการสาธารณะ <แผนที่ <สตริง, สตริง >> queryall () {รายการ <แผนที่ <สตริง, สตริง >> list = arrayList ใหม่ <แผนที่ <สตริง, สตริง >> (); if (currentUser == null) {return list; } nodelist nodelist = currentUser.getElementsByTagname ("ติดต่อ"); สำหรับ (int i = 0; i <nodeList.getLength (); i ++) {แผนที่ <สตริง, สตริง> แผนที่ = new hashmap <สตริง, สตริง> (); องค์ประกอบ e = (องค์ประกอบ) nodelist.item (i); string id = e.getAttribute ("id"); map.put ("id", id); ชื่อสตริง = e.getElementByTagname ("ชื่อ") รายการ (0) .getTextContent (); map.put ("ชื่อ", ชื่อ); String sex = e.getElementByTagname ("เพศ"). รายการ (0) .getTextContent (); map.put ("เพศ" เพศ); String tel = e.getElementByTagname ("tel") รายการ (0) .getTextContent (); map.put ("โทร", โทร); list.add (แผนที่); } return list; } @Override องค์ประกอบสาธารณะเพิ่ม (ชื่อสตริง, String Sex, String tel) {document dom = myDocumentFactory.getDocument (); องค์ประกอบ enewContact = dom.createElement ("ติดต่อ"); enewContact.setAttribute ("id", idgenerate.getId ()); องค์ประกอบ namenew = dom.createElement ("ชื่อ"); namenew.settextContent (ชื่อ); ENEWCONTACT.APPENDCHILD (NAMENEW); องค์ประกอบ sexnew = dom.createlement ("เพศ"); sexnew.settextcontent (เพศ); ENEWCONTACT.APPENDCHILD (SexNew); องค์ประกอบ telnew = dom.createlement ("tel"); telnew.settextcontent (โทร); enewContact.AppendChild (telnew); currentUser.AppendChild (enewContact); myDocumentFactory.save (); // เข้าสู่ระบบ (ชื่อ, pwd); กลับ enewContact; } องค์ประกอบสาธารณะลบ (รหัสสตริง) {nodelist nodelist = currentUser.getElementByTagname ("ติดต่อ"); สำหรับ (int i = 0; i <nodelist.getLength (); i ++) {องค์ประกอบ e = (องค์ประกอบ) nodelist.item (i); if (e.getAttribute ("id"). เท่ากับ (id)) {currentUser.RemoveChild (e); // ลบโหนดออกจากต้นไม้ myDocumentFactory.save (); // ล็อกอิน (ชื่อ, pwd); กลับ E; }} return null; } @Override โมฆะสาธารณะ reg (ชื่อสตริง, สตริง pwd) {document dom = myDocumentFactory.getDocument (); องค์ประกอบผู้ใช้ = dom.createElement ("ผู้ใช้"); usernew.setAttribute ("ชื่อ", ชื่อ); usernew.setAttribute ("PWD", PWD); dom.getFirstChild (). ภาคผนวก (ผู้ใช้); myDocumentFactory.save (); } @Override การเปลี่ยนแปลงองค์ประกอบสาธารณะ (รหัสสตริง, ชื่อสตริง, สตริงเซ็กซ์, สตริงโทร) {nodelist nodelist = currentUser.getElementSbyTagname ("ติดต่อ"); สำหรับ (int i = 0; i <nodelist.getLength (); i ++) {องค์ประกอบ e = (องค์ประกอบ) nodelist.item (i); if (e.getAttribute ("id"). เท่ากับ (id)) {e.getElementByTagname ("ชื่อ"). รายการ (0) .SetTextContent (ชื่อ); e.getElementByTagname ("เพศ"). รายการ (0) .SetTextContent (เพศ); E.GetElementByTagname ("โทร") รายการ (0) .SetTextContent (โทรศัพท์); myDocumentFactory.save (); // เข้าสู่ระบบ (ชื่อ, pwd); กลับ E; }} return null; - แพ็คเกจ cn.hncu.contact.dao; contactdaofactory ระดับสาธารณะ {private contactdaofactory () {} public Static Contactdao getContactdao () {ส่งคืน contactimpl ใหม่ (); -CMD
แพ็คเกจ cn.hncu.contact.cmd; นำเข้า java.util.list; นำเข้า java.util.map; นำเข้า java.util.scanner; นำเข้า org.w3c.dom.dement; นำเข้า cn.hncu.contact.dao.contactdao; CN.HNCU.CONTACT.DAO.CONTACTDAOFACTORY; การติดต่อระดับสาธารณะ {ติดต่อส่วนตัว dao = contactdaofactory.getContactDao (); สแกนเนอร์ส่วนตัว SC = NULL; สตริงส่วนตัว delids []; การติดต่อสาธารณะ () {sc = ใหม่สแกนเนอร์ (System.in); ในขณะที่ (จริง) {system.out.println ("1: เข้าสู่ระบบ"); System.out.println ("2: ลงทะเบียน"); System.out.println ("0: ออก"); สตริง op = sc.nextline (); if ("1" .equals (op)) {login (); } อื่นถ้า ("2" .equals (op)) {reg (); } else {// system.exit (0); หยุดพัก; }}} โมฆะส่วนตัว reg () {system.out.println ("โปรดป้อนชื่อผู้ใช้:"); ชื่อสตริง = sc.nextline (); System.out.println ("โปรดป้อนรหัสผ่านผู้ใช้:"); สตริง pwd = sc.nextline (); System.out.println ("โปรดยืนยันรหัสผ่านผู้ใช้:"); สตริง pwd2 = sc.nextline (); if (pwd.equals (pwd2)) {dao.reg (ชื่อ, pwd); } else {system.out.println ("อินพุตรหัสผ่านไม่สอดคล้องกันโปรดลงทะเบียนอีกครั้ง"); }} เป็นโมฆะส่วนตัวเข้าสู่ระบบ () {System.out.println ("โปรดป้อนชื่อผู้ใช้:"); ชื่อสตริง = sc.nextline (); System.out.println ("โปรดป้อนรหัสผ่านผู้ใช้:"); สตริง pwd = sc.nextline (); บูลีนบู = dao.login (ชื่อ, pwd); if (boo) {system.out.println ("เข้าสู่ระบบสำเร็จ ... "); การดำเนินการ(); } else {system.out.println ("denglushibai"); }} การดำเนินการโมฆะส่วนตัว () {รายการ <แผนที่ <สตริง, สตริง >> list = dao.QueryAll (); delids = สตริงใหม่ [list.size ()]; int i = 0; สำหรับ (แผนที่ <สตริง, สตริง> แผนที่: รายการ) {string id = map.get ("id"); delids [i ++] = id; } // ในขณะที่ (จริง) {// เนื่องจากมีการแชร์ต้นไม้ DOM เดียวกันหลังจากการเพิ่มการลบการดัดแปลงและตรวจสอบแต่ละครั้งจะยังคงเป็นแผนผัง DOM ดั้งเดิม // การดำเนินการในขณะที่เป็นการดำเนินการก่อนหน้านี้ดังนั้นคุณต้องออกไปยังขั้นตอนก่อนหน้าและเข้าสู่ระบบอีกครั้งเพื่อรับ DOM Tree System.out.out.println ("1: แสดงการติดต่อ"); System.out.println ("2: เพิ่มการติดต่อ"); System.out.println ("3: ลบผู้ติดต่อ"); System.out.println ("4: แก้ไขการติดต่อ"); System.out.println ("0: ออก"); String 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 ("โปรดป้อนนามสกุลของผู้ติดต่อที่จะแก้ไข:"); String sex = sc.nextline (); System.out.println ("โปรดป้อนหมายเลขโทรศัพท์ของผู้ติดต่อที่จะแก้ไข:"); สตริงโทร = sc.nextline (); องค์ประกอบ e = dao.change (delids [num-1], ชื่อ, เพศ, โทร); if (e! = null) {system.out.println (num+"ลงชื่อหลังจากผู้ติดต่อได้รับการอัปเดต: ชื่อ:"+e.getElementSbyTagname ("ชื่อ"). รายการ (0) .getTextContent ()+"เพศ:" e.getElementByTagname ("เพศ") หมายเลข: "+e.getElementByTagname (" โทร ") รายการ (0) .getTextContent ()); } else {system.out.println ("การแก้ไขล้มเหลว ... "); }} โมฆะส่วนตัว delContact () {system.out.println ("โปรดป้อนหมายเลขติดต่อที่ถูกลบ:"); int num = sc.nextint (); Sc.Nextline (); // ดูดองค์ประกอบอักขระใหม่ e = dao.delete (delids [num-1]); if (e == null) {system.out.println ("ลบล้มเหลวไม่มีการติดต่อ"); } else {system.out.println ("ลบผู้ติดต่อ:"+e.getElementByTagname ("ชื่อ"). รายการ (0) .getTextContent ()+"ความสำเร็จ ... "); }} โมฆะส่วนตัว addContact () {system.out.println ("โปรดป้อนข้อมูลการติดต่อ:"); System.out.println ("ชื่อ:"); ชื่อสตริง = sc.nextline (); System.out.println ("ชื่อ:"); String sex = sc.nextline (); System.out.println ("โทรศัพท์:"); สตริงโทร = sc.nextline (); องค์ประกอบ e = dao.add (ชื่อเพศโทร); System.out.println ("เพิ่มที่ติดต่อ"+e.getElementByTagname ("ชื่อ") รายการ (0) .getTextContent ()+"ความสำเร็จ ... "); } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {new contactaction (); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น