Примеры в этой статье делятся с вами в выпускном дизайне системы управления контактами Java для вашей ссылки. Конкретный контент заключается в следующем
Требовать:
Пожалуйста, используйте XML, чтобы сохранить данные и заполнить систему управления контактами.
Пользователи должны быть аутентифицированы и войти в систему, прежде чем они смогут использовать систему.
Зарегистрируйте, добавьте, удаляйте, просмотрите функции контактов.
Спроектирован в модулях .
Двухслойный слой взаимодействия с использованием платформы, слой DAO.
Другие слои поддержки - уровень инкапсуляции данных.
Инструменты - шифрование, фабрика.
Шаги развития:
Шаг 1: Разработка структуры данных - XML.
Шаг 1: Разработка структуры данных - XML.
Шаг 3: Подготовьте ресурсы и кодируйте их для их реализации.
Шаг 4: Запустите тест.
<?xml version="1.0" encoding="UTF-8" standalone="no"?><contacts> <user name="Jack" pwd="1234"> <contact id="707dede609dd4a2990f7cfa4cd5233f9"> <name>xiaoming</name> <sex>male</sex> <tel> 123456 </tel> </contact> <contact id = "80983802eaa6402d8bac8bb39e71c48f"> <имя> 12 </name> <ses> 12 </sex> <tel> 12 </tel> </contact> </user> <name = "pwd =" 4321 "> </contact> </user> <name =" pwd = "4321" id = "EEDB795B97194C3AAA9BACDA7E2948E9"> <MAME> XIAOMGING </name> <ses> wem </sex> <tel> 123 </tel> </contact> </user> </contacts>
Утилит
пакет cn.hncu.contact.util; import java.util.uuid; открытый класс idGenerate {private idGenerate () {} public Static String getId () {// return uuid.randomuuid (). toString (); return uuid.randomuuid (). ToString (). Заменить ("-", ""); }} Пакет cn.hncu.contact.util; import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import javax.xml.transform.transformer; импорт javax.xml.transform.transformerfactory; javax.xml.transform.dom.domsource; import javax.xml.transform.stream.streamResult; импорт org.w3c.dom.document; открытый класс mydocumentfactory {private Static Final String file_name = "./ xml/user.xml"; Частный статический документ dom = null; static {DocumentBuilder DB; try {db = documentBuilderFactory.newinStance (). NewDocumentBuilder (); dom = db.parse (file_name); } catch (Exception e) {бросить новое runtimeexception ("xml документа. }} public Static Document getDocument () {return dom; } public static void save () {try {transformer tf = transformerfactory.newinstance (). newtransformer (); tf.transform (new domsource (dom), new Streamresult (file_name)); } catch (Exception e) {бросить новое runtimeexception ("Хранение документов XML не удалось ...", e); } // configurationError: исключение конфигурации}}дао
Пакет cn.hncu.contact.dao; import java.util.list; import java.util.map; import org.w3c.dom.element; public interface contactdao {public abstract boolean login (String name, String pwd); Общественный абстрактный список <map <string, string >> Queryall (); Общедоступный абстрактный элемент Add (название строки, строка секс, строка тел); Public Abstract void reg (String name, String pwd); Public Element Delete (String Id); // по умолчанию абстрактное изменение общедоступного абстрактного элемента (идентификатор строки, название строки, строка секс, строка тел);} Пакет cn.hncu.contact.dao; import java.util.arraylist; import java.util.hashmap; import java.util.list; import java.util.map; импорт org.w3c.dom.document; импорт org.w3c.dom.element; import org.w3c.dom.document; cn.hncu.contact.util.idgenerate; import cn.hncu.contact.util.mydocumentfactory; public class contactImpl реализует ContactDao {частный элемент CurrentUser; Документ dom = null; public ContactImpl () {} // частная статическая строка имени = null; // частная статическая строка pwd = null; @Переопределить // public boolean login (string name2, string pwd2) {public boolean login (string name, string pwd) {// name = name2; // pwd = pwd2; dom = myDocumentFactory.getDocument (); Элемент root = (element) dom.getFirstChild (); Nodelist nodelist = root.getElementsbytagname ("user"); for (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; вернуть истину; }} вернуть 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> (); Элемент e = (элемент) nodelist.item (i); String id = e.getattribute ("id"); map.put ("id", id); String name = e.getelementsbytagname ("name"). Item (0) .getTextContent (); map.put ("имя", имя); String sex = e.getelementsbytagname ("sex"). Item (0) .getTextContent (); map.put ("sex", sex); String tel = e.getelementsbytagname ("tel"). Item (0) .getTextContent (); map.put ("tel", tel); list.add (map); } return List; } @Override public element add (string name, string sex, string tel) {document dom = myDocumentFactory.getDocument (); Element enewcontact = dom.createElement ("contact"); EnewContact.setAttribute ("id", idGenerate.getId ()); Element namenew = dom.createElement ("name"); namenew.settextcontent (имя); EnewContact.AppendChild (Namenew); Element sexnew = dom.createElement ("sex"); sexnew.settextcontent (секс); EnewContact.AppendChild (Sexnew); Элемент telnew = dom.createElement ("tel"); telnew.settextcontent (tel); EnewContact.AppendChild (Telnew); currentUser.appendchild (EnewContact); mydocumentFactory.save (); // login (имя, pwd); вернуть EnewContact; } public Element Delete (String id) {nodelist nodelist = currentUser.getElementsbytagname ("contact"); for (int i = 0; i <nodelist.getLength (); i ++) {element e = (element) nodelist.item (i); if (e.getAttribute ("id"). equals (id)) {currentUser.removechild (e); // Удалить узел из дерева mydocumentfactory.save (); // login (name, pwd); вернуть E; }} return null; } @Override public void reg (string name, string pwd) {document dom = myDocumentFactory.getDocument (); Element usernew = dom.createElement ("user"); usernew.setattribute ("name", name); usernew.setattribute ("pwd", pwd); dom.getfirstchild (). AppendChild (UserNew); mydocumentFactory.save (); } @Override public element изменение (идентификатор строки, название строки, строка секс, строка тел) {nodelist nodelist = currentUser.getElementsbytagname ("contact"); for (int i = 0; i <nodelist.getLength (); i ++) {element e = (element) nodelist.item (i); if (e.getattribute ("id"). equals (id)) {e.getelementsbytagname ("name"). Item (0) .settextcontent (name); e.getelementsbytagname ("sex"). Item (0) .settextcontent (sex); e.getelementsbytagname ("tel"). item (0) .settextcontent (tel); mydocumentFactory.save (); // login (имя, pwd); вернуть E; }} return null; }} пакет cn.hncu.contact.dao; public class contactdaofactory {private contactdaofactory () {} public static contactdao getContactDao () {return new contactImpl (); }}CMD
Пакет cn.hncu.contact.cmd; import java.util.list; import java.util.map; import java.util.scanner; импорт org.w3c.dom.element; import cn.hncu.contact.dao.contactdao; import.hncu.contact.daoo.contactdao; import.hncu.contact.daoo.contactdao; import.hncu.contact.contact.contact.contact.contact.contact.contact.contactdao; import.hncu.contact.contactdao; импорт. cn.hncu.contact.dao.contactdaofactory; public class contactaction {private contactdao dao = contactDaOfactory.getContactDao (); Частный сканер SC = NULL; частная строка Delids []; public contactAction () {sc = новый сканер (System.in); while (true) {System.out.println ("1: login"); System.out.println ("2: Register"); System.out.println ("0: выход"); String op = sc.nextline (); if ("1" .equals (op)) {login (); } else if ("2" .equals (op)) {reg (); } else {// System.Exit (0); перерыв; }}} private void reg () {System.out.println ("Пожалуйста, введите имя пользователя:"); String name = sc.nextline (); System.out.println («Пожалуйста, введите пароль пользователя:»); String pwd = sc.nextline (); System.out.println («Пожалуйста, подтвердите пароль пользователя:»); String pwd2 = sc.nextline (); if (pwd.equals (pwd2)) {dao.reg (имя, pwd); } else {System.out.println («Входы пароля противоречивы, пожалуйста, зарегистрируйтесь еще раз»); }} private void login () {System.out.println ("Пожалуйста, введите имя пользователя:"); String name = sc.nextline (); System.out.println («Пожалуйста, введите пароль пользователя:»); String pwd = sc.nextline (); Boolean boo = dao.login (имя, pwd); if (boo) {System.out.println ("Вход успешно ..."); Operation (); } else {System.out.println ("denglushibai"); / delids = new String [list.size ()]; int i = 0; for (map <string, string> map: list) {string id = map.get ("id"); Delids [i ++] = id; } // while (true) {// Поскольку одно и то же дерево DOM используется после каждого добавления, удаления, модификации и проверки, оно все еще является исходным деревом DOM. // Операции в то время как предыдущие операции, поэтому вам нужно выйти на предыдущий этап и снова войти в систему, чтобы получить обновленную систему DOM Tree.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 («Пожалуйста, введите номер телефона контакта, который будет изменен:»); String tel = sc.nextline (); Элемент e = dao.change (delids [num-1], имя, пол, тел); if (e! = null) {System.out.println (num+«знак после обновления контакта: имя:«+e.getelementsbytagname ("name"). Item (0) .getTextContent ()+"leftementconte Номер: "+e.getelementsbytagname (" tel "). Item (0) .getTextContent ()); } else {System.out.println ("Модификация не удалась ..."); }} private void delContact () {System.out.println ("Пожалуйста, введите удаленный контактный номер:"); int num = sc.nextint (); sc.nextline (); // Высасывание элемента символа Newline e = dao.delete (delids [num-1]); if (e == null) {System.out.println ("Удалить не удастся, нет контакта"); } else {System.out.println ("Удалить контакт:"+e.getelementsbytagname ("name"). item (0) .getTextContent ()+"успех ..."); }} private void addContact () {System.out.println («Пожалуйста, введите контактную информацию:»); System.out.println ("name:"); String name = sc.nextline (); System.out.println ("name:"); String sex = sc.nextline (); System.out.println ("Тел:"); String tel = sc.nextline (); Элемент e = dao.add (имя, секс, тел); System.out.println ("добавить контакт"+e.getelementsbytagname ("name"). Item (0) .getTextContent ()+"Успех ..."); } public static void main (string [] args) {new ContactAction (); }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.