Die Beispiele in diesem Artikel teilen Ihnen das Abschlussdesign des Java -Kontaktmanagementsystems für Ihre Referenz. Der spezifische Inhalt ist wie folgt
Erfordern:
Bitte verwenden Sie XML, um Daten zu speichern und ein Kontaktverwaltungssystem zu vervollständigen.
Benutzer müssen authentifiziert und angemeldet sein, bevor sie das System verwenden können.
Registrieren, hinzufügen, löschen, Kontaktfunktionen anzeigen.
In Modulen entworfen.
Zweischichtige-Interaktionsschicht, DAO-Schicht.
Andere Unterstützungsebenen - Datenkapselungsschicht.
Tools - Verschlüsselung, Werksbohne.
Entwicklungsschritte:
Schritt 1: Entwerfen Sie die Datenstruktur - XML.
Schritt 1: Entwerfen Sie die Datenstruktur - XML.
Schritt 3: Bereiten Sie Ressourcen vor und codieren Sie sie, um sie zu implementieren.
Schritt 4: Führen Sie den Test aus.
<? <Tel> 123456 </tel> </contact> <contact id = "80983802eaaa6402d8bac8bb39e71c48f"> <name> 12 </name> <sex> 12 </sex> <tel> 12 </tel> </contact> </user> <User> <User Name = "Rose" pwd = "4321" ID = "EEDB795B97194C3AAA9BACDA7E2948E9"> <NAME> XIAOMING </name> <sex> weiblich </sex> <tel> 123 </tel> </contact> </user> </contacts>
Util
Paket cn.hncu.contact.util; import Java.util.uUid; public class idgenerate {private idgenerate () {} public static String getId () {// return Uuid.randomuuid (). toString (); return uUid.randomuuid (). toString (). ersetzen ("-", ""); }} Paket cn.hncu.contact.util; import Javax.xml.parsers.documentBuilder; import Javax.xml.parsers.DocumentBuilderFactory; javax.xml.transform.stream.streamResult; import org.w3c.dom.document; öffentliche Klasse mydocumentFactory {private statische String -String -Datei_Name = "./ Xml/user.xml"; privates statisches Dokument dom = null; static {documentBuilder db; try {db = documentBuilderFactory.Newinstance (). newdocumentBuilder (); DOM = db.Parse (Datei_Name); } catch (Ausnahme E) {neue runTimeexception werfen ("XML -Dokument analysiert ...", e); }} öffentliches statisches Dokument getDocument () {return dom; } public static void Save () {try {transformator tf = transformerFactory.Newinstance (). newtransformer (); tf.transform (new DomSource (DOM), New StreamResult (Datei_Name)); } catch (Ausnahme E) {neue runTimeException werfen ("XML -Dokumentspeicher fehlgeschlagen ...", e); } // configurationError: Konfigurationsausnahme}}Dao
Paket cn.hncu.contact.dao; import Java.util.List; import Java.util.map; org.w3c.dom.Element; öffentliche Schnittstelle contactDao {public abstract Boolean Login (String -Name, String PWD); öffentliche Abstract -Liste <map <String, String >> queryAll (); öffentliches abstraktes Element add (String -Name, String Sex, String tel); public abstract void Reg (String -Name, String PWD); Public Element Delete (String -ID); // Standard abstraktes abstraktes Elementänderung (String -ID, String -Name, String Sex, String tel);} Paket cn.Hncu.Contact.dao; Import Java.util.ArrayList; Import Java.util.hashMap; Import Java.util.List; Import Java.util.map; Import org.w3c.dom.document; cn.hncu.contact.util.idGenerate; importieren cn.hncu.contact.util.mydocumentFactory; öffentliche Klasse contactImpl implementiert contactDao {private Element CurrentUser; Document dom = null; public containImpl () {} // private statische String -Name = null; // private statische Zeichenfolge pwd = null; @Override // public boolean login (String name2, String pwd2) {public boolean Login (String -Name, Zeichenfolge PWD) {// name = name2; // pwd = pwd2; Dom = myDocumentFactory.getDocument (); Element root = (Element) dom.getFirstchild (); Nodelist nodelist = root.getElementsByTagName ("Benutzer"); für (int i = 0; i <nodelist.getLength (); i ++) {Element e = (Element) nodelist.Item (i); if (e.getAttribute ("Name"). EqualSignoreCase (Name) && E.GetAttribute ("pwd"). EqualSignoreCase (pwd)) {currentUser = e; zurückkehren; }} return false; } @Override publiclist <map <String, String >> queryAll () {list <map <String, String >> list = new ArrayList <map <String, String >> (); if (currentUser == null) {return list; } Nodelist nodelist = currentUser.getElementsByTagName ("contact"); für (int i = 0; i <nodelist.getLength (); i ++) {map <string, string> map = new HashMap <String, String> (); Element e = (Element) nodelist.Item (i); String id = e.getAttribute ("id"); map.put ("id", id); String name = e.getElementsByTagName ("Name"). Element (0) .GETTEXTCONTENT (); map.put ("name", name); String sex = e.getElementsByTagName ("Sex"). Element (0) .GetextContent (); map.put ("Sex", Sex); String tel = e.getElementsByTagName ("tel"). Item (0) .GetTextContent (); map.put ("tel", tel); list.add (map); } Rückgabeliste; } @Override öffentliches Element add (String -Name, String Sex, String tel) {document dom = mydocumentFactory.getDocument (); Element EnewContact = Dom.Createelement ("Kontakt"); EnewContact.SetAttribute ("id", idgenerate.getId ()); Element namenew = Dom.Createelement ("Name"); namenew.setTextContent (Name); EnewContact.AppendChild (namenew); Element SexNew = Dom.Createelement ("Sex"); sexNew.setTextContent (Sex); EnewContact.AppendChild (sexNew); Element TelNew = Dom.Createelement ("Tel"); tellNew.setTextContent (tel); EnewContact.AppendChild (tellNew); CurrentUser.AppendChild (EnewContact); mydocumentFactory.save (); // Login (Name, PWD); Return EnewContact; } öffentliches Element Delete (String -ID) {nodelist nodelist = currentUser.getElementsByTagName ("contact"); für (int i = 0; i <nodelist.getLength (); i ++) {Element e = (Element) nodelist.Item (i); if (e.getAttribute ("id"). Equals (id)) {currentUser.removechild (e); // Entfernen Sie den Knoten aus dem Baum mydocumentFactory.save (); // Login (Name, PWD); Rückkehr e; }} return null; } @Override public void reg (String -Name, String pwd) {document dom = mydocumentFactory.getDocument (); Element userernew = Dom.Createelement ("Benutzer"); userernw.SetatTribute ("Name", Name); usererNew.setattribute ("pwd", pwd); Dom.getFirstchild (). appendChild (usererNew); mydocumentFactory.save (); } @Override public Element ändern (String -ID, String -Name, String Sex, String tel) {nodelist nodelist = currentUser.getElementsByTagName ("contact"); für (int i = 0; i <nodelist.getLength (); i ++) {Element e = (Element) nodelist.Item (i); if (e.getAttribute ("id"). Equals (id)) {E.getElementsByTagName ("Name"). Element (0) .setTextContent (Name); E.GetElementsByTagName ("Sex"). Element (0) .setTextContent (Sex); E.GetElementsByTagName ("Tel"). Artikel (0) .setTextContent (tel); mydocumentFactory.save (); // Login (Name, PWD); Rückkehr e; }} return null; }} Paket cn.hncu.contact.dao; öffentliche Klasse contactDaofactory {private contactDaofactory () {} public static contactDao getContactdao () {return new containImpl (); }}CMD
Paket cn.hncu.contact.cmd; import Java.util.List; import Java.util.map; Import Java.util.scanner; cn.hncu.contact.dao.contactdaofactory; öffentliche Klasse contactAction {private contactdao dao = contactDaofactory.getContactdao (); privater Scanner sc = null; private Zeichenfolge löscht []; public contactAction () {sc = neuer Scanner (System.in); while (true) {System.out.println ("1: login"); System.out.println ("2: Register"); System.out.println ("0: exit"); String op = sc.Nextline (); if ("1" .Equals (op)) {login (); } else if ("2" .equals (op)) {reg (); } else {// system.exit (0); brechen; }}} private void reg () {System.out.println ("Bitte den Benutzernamen eingeben:"); String name = sc.Nextline (); System.out.println ("Bitte ein Benutzerkennwort eingeben:"); String pwd = sc.Nextline (); System.out.println ("Bitte bestätigen Sie das Benutzerkennwort:"); String pwd2 = sc.Nextline (); if (pwd.equals (pwd2)) {dao.reg (name, pwd); } else {System.out.println ("Die Kennworteingänge sind inkonsistent, bitte registrieren Sie sich"); }} private void login () {System.out.println ("Bitte den Benutzernamen eingeben:"); String name = sc.Nextline (); System.out.println ("Bitte ein Benutzerkennwort eingeben:"); String pwd = sc.Nextline (); Boolean Boo = Dao.Login (Name, PWD); if (boo) {System.out.println ("erfolgreich anmelden ..."); Betrieb(); } else {system.out.println ("denglushibai"); }} private void operation () {list <map <String, String >> list = dao.queryall (); delids = new String [list.size ()]; int i = 0; für (map <string, string> map: list) {string id = map.get ("id"); löschen [i ++] = id; } // while (true) {// Da derselbe DOM -Baum nach jeder Addition, Löschen, Modifikation und Überprüfung geteilt wird, ist es immer noch der ursprüngliche DOM -Baum. // Die Vorgänge sind in den vorherigen Vorgängen, sodass Sie mit der vorherigen Stufe beenden und sich erneut anmelden müssen, um das aktualisierte DOM -Baum -System zu erhalten. System.out.println ("2: Kontakt hinzufügen"); System.out.println ("3: Kontakt löschen"); System.out.println ("4: modifizieren Sie den Kontakt"); System.out.println ("0: exit"); String sel = sc.Nextline (); if ("1" .equals (sel)) {System.out.println ("Seriennummer/TNAME/TGERN/TTEL"); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ map.get ("Tel"); echrencontact (); System.out.println ("Bitte geben Sie den Namen des zu ändernden Kontakts ein:"); System.out.println ("Bitte geben Sie den Nachnamen des zu ändernden Kontakts ein:"); String sex = sc.Nextline (); System.out.println ("Bitte geben Sie die Telefonnummer des zu ändernden Kontakts ein:"); String tel = sc.Nextline (); Element E = Dao.Change (löschen [num-1], Name, Sex, Tel); if (e! Nummer: "+e.getElementsByTagName (" Tel "). Element (0) .GetTextContent ()); } else {System.out.println ("Modifikation fehlgeschlagen ..."); }} private void delContact () {System.out.println ("Bitte geben Sie die gelöschte Kontaktnummer ein:"); int num = sc.Nextint (); sc.Nextline (); // saugen Sie das neue Zeichen-Element e = dao.delete aus (löschen [num-1]); if (e == null) {System.out.println ("Delete fehlgeschlagen, kein Kontakt"); } else {system.out.println ("Kontakt löschen:"+e.getElementsByTagName ("Name"). Artikel (0) .GIETTEXTCONTENT ()+"Erfolg ..."); }} private void addContact () {System.out.println ("Bitte Kontaktinformationen eingeben:"); System.out.println ("Name:"); String name = sc.Nextline (); System.out.println ("Name:"); String sex = sc.Nextline (); System.out.println ("Tel:"); String tel = sc.Nextline (); Element E = Dao.Add (Name, Sex, Tel); System.out.println ("Kontakt hinzufügen"+e.getElementsByTagName ("Name"). Artikel (0) .GETTEXTCONTENT ()+"Erfolg ..."); } public static void main (String [] args) {new contactAction (); }}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.