Les exemples de cet article partagent avec vous la conception de graduation du système de gestion des contacts Java pour votre référence. Le contenu spécifique est le suivant
Exiger:
Veuillez utiliser XML pour enregistrer les données et terminer un système de gestion de contact.
Les utilisateurs doivent être authentifiés et connectés avant de pouvoir utiliser le système.
Enregistrer, ajouter, supprimer, afficher les fonctions de contact.
Conçu dans les modules .
Couche d'interaction de framework-user à deux couches, couche DAO.
Autres couches de support - couche d'encapsulation de données.
Outils - cryptage, haricot d'usine.
Étapes de développement:
Étape 1: Concevoir la structure des données - XML.
Étape 1: Concevoir la structure des données - XML.
Étape 3: Préparez les ressources et codez-les pour les implémenter.
Étape 4: Exécutez le test.
<? xml version = "1.0" encoding = "utf-8" standalone = "no"?> <contacts> <user name = "jack" pwd = "1234"> <contact id = "707dede609dd4a2990f7cfa4cd5233f9"> <name> xiaoMing </same> </ sex> malent <vl> 123456 </vl> </packing> <contacter id = "80983802eaa6402d8bac8bb39e71c48f"> <name> 12 </name> <sex> 12 </ sexe> <vel> 12 </dol> </pack> </ser> <user name = "rose" pwd = "4321"> </ user> <user name = "rose" pwd = "4321"> </ user> <user = "rose" pwd = "4321"> </ user> <user = "rose" pwd = "4321"> </ user> <user = "rose" pwd = "4321"> </ user> <user = "rose" pwd = "4321"> </ user> <user = "rose" pwd = "4321"> </ user> id = "EEDB795B97194C3AAA9BACDA7E2948E9"> <nom> xiaoMing </name> <Sex> Femme </ Sex> <Del> 123 </del> </tact> </servy> </ contacts>
User
package cn.hncU.contact.util; import java.util.uuid; public class idgenerate {private idGereate () {} public static static getID () {// return uUid.randomuuid (). toString (); return uuid.randomuuid (). toString (). Remplace ("-", ""); }} package cn.hncu.contact.util; import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import javax.xml.transform.transformère; javax.xml.transform.dom.domsource; import javax.xml.transform.stream.streamresult; import org.w3c.dom.Document; public class MyDocumentFactory {private static string file_name = ". / xml / users.xml"; Document statique privé Dom = null; statique {documentBuilder db; essayez {db = documentBuilderFactory.newinstance (). newDocumentBuilder (); dom = db.parse (file_name); } catch (exception e) {lancer un nouveau runtimeException ("xml de l'analyse du document a échoué ...", e); }} document statique public getDocument () {return Dom; } public static void Save () {try {transformateur tf = transformèrefactory.newinstance (). newtransformateur (); tf.transform (new Domsource (DOM), new StreamResult (file_name)); } catch (exception e) {lancer un nouveau runtimeException ("le stockage du document xml a échoué ...", e); } // ConfigurationError: Exception de configuration}}Dao
package cn.hncu.contet.dao; import java.util.list; import java.util.map; import org.w3c.dom.element; interface publique ContactDao {public abstract booléen ligin (nom de chaîne, chaîne pwd); Public Abstract List <map <String, String >> Queryall (); Élément abstrait public Add (nom de chaîne, String Sex, String Tél); Public Résumé void Reg (nom de chaîne, chaîne PWD); Élément public Delete (String ID); // par défaut Résumé Élément abstrait public Élément de modification (ID de chaîne, nom de chaîne, String Sex, String Tél);} Package CN.HNCU.CONTACT.DAO; IMPORT Java.util.ArrayList; Import Java.util.hashmap; Importer Java.util.List; Import Java.util.map; Import Org.W3c.Dom.Document cn.hncu.contact.util.idgenerate; import Cn.hncu.contact.util.myDocumentFactory; public class ContactIMPl implémente ContactDao {private element currentUser; Document Dom = null; public ContactImpl () {} // String statique private static name = null; // private static String pwd = null; @ Override // Public Boolean Login (String name2, String pwd2) {public boolean ligin (String name, String pwd) {// name = name2; // pwd = pwd2; dom = myDocumentFactory.getDocument (); Élément root = (élément) dom.getFirstChild (); NodeList nodelist = root.getElementsByTagName ("utilisateur"); for (int i = 0; i <nodeList.getLength (); i ++) {élément e = (élément) nodelist.item (i); if (e.getAttribute ("name"). equalsignorecase (name) && e.getAttribute ("pwd"). equalsignorecase (pwd)) {currentUser = e; Retour Vrai; }} return false; } @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"); for (int i = 0; i <nodeList.getLength (); i ++) {map <string, string> map = new hashmap <string, string> (); Élément e = (élément) nodelist.item (i); String id = e.getAttribute ("id"); map.put ("id", id); String name = e.getElementsByTagName ("name"). Item (0) .GetTextContent (); map.put ("nom", nom); String Sex = e.getElementsByTagName ("Sex"). Item (0) .getTextContent (); map.put ("sexe", sexe); String tel = e.getElementsByTagName ("tel"). Item (0) .getTextContent (); map.put ("tel", tél); list.add (map); } Retour List; } @Override Public Element Add (String Name, String Sex, String tel) {Document Dom = MyDocumentFactory.getDocument (); Élément enewContact = Dom.CreateElement ("Contact"); enewContact.setAttribute ("id", idGereate.getId ()); Élément namenew = dom.createElement ("name"); namenew.seTTextContent (nom); enewContact.ApendChild (namenew); Élément sexnew = dom.createelement ("sexe"); SexNew.seTTextContent (sexe); enewContact.ApendChild (SexNew); Élément telnew = dom.createelement ("tel"); Telnew.seTTextContent (Tel); enewContact.ApendChild (Telnew); CurrentUser.ApendChild (enewContact); MyDocumentFactory.Save (); // Login (nom, PWD); retour ennewContact; } public Element Delete (String id) {nodeList nodeList = currentUser.getElementsByTagName ("Contact"); for (int i = 0; i <nodeList.getLength (); i ++) {élément e = (élément) nodelist.item (i); if (e.getAttribute ("id"). equals (id)) {currentUser.RemoveChild (e); // Retirez le nœud de l'arbre myDocumentFactory.save (); // Login (name, pwd); retour e; }} return null; } @Override public void reg (String Name, String pwd) {document Dom = myDocumentFactory.getDocument (); Element UserNew = Dom.CreateElement ("User"); userNew.SetAttribute ("Name", nom); userNew.SetAttribute ("PWD", PWD); Dom.getFirstChild (). APPENDCHILD (USERNEW); MyDocumentFactory.Save (); } @Override Public Element Change (String id, String Name, String Sex, String tel) {nodeList nodeList = currentUser.getElementsByTagName ("Contact"); for (int i = 0; i <nodeList.getLength (); i ++) {élément e = (élément) nodelist.item (i); if (e.getAttribute ("id"). equals (id)) {e.getElementsByTagName ("name"). item (0) .seTtExtContent (name); e.getElementsByTagName ("Sex"). Article (0) .SeTTextContent (sexe); e.getElementsByTagName ("tel"). Item (0) .SeTTextContent (Tel); MyDocumentFactory.Save (); // Login (nom, PWD); retour e; }} return null; }} Package CN.HNCU.CONTACT.DAO; PUBLIC CLASS CONTACTDAOFACTORY {private ContactDaoFactory () {} public static ContactDao getContactDao () {return new ContactImpll (); }}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; import Cn.hncu.Contact.Dao.ContactDao; CN.HNCU.CONTACT.DAO.CONTACTDAOFACTORY; PUBLIC CLASS CONTACTACTION {private ContactDao Dao = ContactDaofactory.getContactDao (); scanner privé SC = null; Delides de chaîne privées []; public ContactAction () {sc = new Scanner (System.in); while (true) {System.out.println ("1: connexion"); System.out.println ("2: registre"); System.out.println ("0: exit"); String op = sc.nextline (); if ("1" .equals (op)) {login (); } else if ("2" .equals (op)) {reg (); } else {// System.exit (0); casser; }}} private void reg () {System.out.println ("Veuillez entrer le nom d'utilisateur:"); String name = sc.nextline (); System.out.println ("Veuillez entrer le mot de passe utilisateur:"); String pwd = sc.nextline (); System.out.println ("Veuillez confirmer le mot de passe utilisateur:"); String pwd2 = sc.nextline (); if (pwd.equals (pwd2)) {dao.reg (name, pwd); } else {System.out.println ("Les entrées de mot de passe sont incohérentes, veuillez vous inscrire à nouveau"); }} private void Login () {System.out.println ("Veuillez entrer le nom d'utilisateur:"); String name = sc.nextline (); System.out.println ("Veuillez entrer le mot de passe utilisateur:"); String pwd = sc.nextline (); booléen boo = dao.login (nom, pwd); if (boo) {System.out.println ("Connexion avec succès ..."); opération(); } else {System.out.println ("DenglusHibai"); }} private void opération () {list <map <string, string >> list = dao.queryall (); Delids = new String [list.size ()]; int i = 0; pour (map <string, string> map: list) {String id = map.get ("id"); Delids [i ++] = id; } // tandis que (true) {// Parce que le même arbre Dom est partagé, après chaque ajout, suppression, modification et vérification, c'est toujours l'arbre Dom original. // Les opérations sont les opérations précédentes, vous devez donc sortir de l'étape précédente et vous connecter à nouveau pour obtenir le Dom Tree System.out.out.out.out.print ("1: Show Contact"); System.out.println ("2: Ajouter un contact"); System.out.println ("3: supprimer le contact"); System.out.println ("4: modifier le contact"); System.out.println ("0: exit"); String sel = sc.nextline (); if ("1" .equals (sel)) {System.out.println ("numéro de série / tname / tgender / ttel"); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Map.get ("tel"); ChangeContact ();} else if (0 ".equals (sel)) {return; // Break; System.out.println ("Veuillez saisir le nom du contact à modifier:"); String Name = sc.nextline (); System.out.println ("Veuillez saisir le nom de famille du contact à modifier:"); String Sex = sc.nextline (); System.out.println ("Veuillez saisir le numéro de téléphone du contact à modifier:"); String tel = sc.nextline (); Élément e = dao.change (Delids [num-1], nom, sexe, tél); if (e! = null) {System.out.println (num + "Sign après que le contact est mis à jour: nom:" + e.getElementsByTagName ("name"). Item (0) .getTextContent () + "Gender:" + e.getElementsByTagName ("Sex"). Numéro: "+ e.getElementsByTagName (" tel "). Item (0) .getTextContent ()); } else {System.out.println ("Modification a échoué ..."); }} private void delContact () {System.out.println ("Veuillez saisir le numéro de contact supprimé:"); int num = sc.nextint (); sc.nextline (); // Suck out l'élément de caractère Newline E = dao.delete (Delids [num-1]); if (e == null) {System.out.println ("Delete a échoué, aucun contact"); } else {System.out.println ("Supprimer le contact:" + e.getElementsByTagName ("Name"). Item (0) .getTextContent () + "Success ..."); }} private void addContact () {System.out.println ("Veuillez saisir les informations de contact:"); System.out.println ("Name:"); String name = sc.nextline (); System.out.println ("Name:"); String Sex = sc.nextline (); System.out.println ("Tél:"); String tel = sc.nextline (); Élément e = dao.add (nom, sexe, tél); System.out.println ("Ajouter un contact" + e.getElementsByTagName ("Name"). Item (0) .getTextContent () + "Success ..."); } public static void main (String [] args) {new ContactAction (); }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.