Contoh -contoh dalam artikel ini berbagi dengan Anda desain kelulusan sistem manajemen kontak Java untuk referensi Anda. Konten spesifiknya adalah sebagai berikut
Memerlukan:
Harap gunakan XML untuk menyimpan data dan menyelesaikan sistem manajemen kontak.
Pengguna harus diautentikasi dan masuk sebelum mereka dapat menggunakan sistem.
Daftar, Tambah, Hapus, Lihat Fungsi Kontak.
Dirancang dalam modul .
Lapisan interaksi dua lapis-framework-user, lapisan dao.
Lapisan Dukungan Lainnya - Lapisan Enkapsulasi Data.
Alat - enkripsi, kacang pabrik.
Langkah Pengembangan:
Langkah 1: Desain struktur data - XML.
Langkah 1: Desain struktur data - XML.
Langkah 3: Mempersiapkan sumber daya dan menyandikannya untuk mengimplementasikannya.
Langkah 4: Jalankan tes.
<?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 </el> </contact> <contact id = "80983802eaa6402d8bac8bb39e71c48f"> <name> 12 </name> <nex> 12 </sex> <Tel> 12 </el> </hubungi> </sener> <name user> "rose" pwd = "43" id = "EEDB795B97194C3AAA9BACDA7E2948E9"> <name> xiaoming </name> <pesem perempuan </sex> <el> 123 </el> </kontak> </user> </kontak>
Util
Paket cn.hncu.contact.util; import java.util.uuid; kelas publik idgenerate {private idGenerate () {} public static string getId () {// return uuid.randomuuid (). tostring (); return uuid.randomuuid (). tostring (). ganti ("-", ""); }} Paket cn.hncu.contact.util; import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import javax.xml.transform.transformer; impor javax.xml.transform.transformer; javax.xml.transform.dom.domsource; impor javax.xml.transform.stream.streamResult; impor org.w3c.dom.document; kelas publik myDocumentFactory {string final private static file_name = "./ xml/uss.xml"; Dokumen Statis Pribadi DOM = NULL; static {DocumentBuilder DB; coba {db = documentbuilderfactory.newinstance (). newDocumentBuilder (); dom = db.parse (file_name); } catch (Exception e) {lempar runtimeException baru ("XML Document Parsing Gagal ...", e); }} dokumen statis public getDocument () {return dom; } public static void save () {coba {transformer tf = transformerfactory.newInstance (). newTransformer (); tf.transform (domsource baru (dom), streamResult baru (file_name)); } catch (Exception e) {lempar runtimeException baru ("penyimpanan dokumen XML gagal ...", e); } // ConfigurationError: Pengecualian Konfigurasi}}Dao
Paket cn.hncu.contact.dao; import java.util.list; impor java.util.map; impor org.w3c.dom.element; antarmuka publik contactdao {public abstrak boolean login (nama string, string pwd); Daftar abstrak publik <peta <string, string >> queryAll (); elemen abstrak publik add (nama string, string sex, string tel); public abstrak void reg (nama string, string pwd); Delete Elemen Publik (ID String); // Default Abstrak Abstrak Publik Abstrak Perubahan (ID String, Nama String, String Sex, String Tel);} Paket cn.hncu.contact.dao; import java.util.arraylist; import java.util.hashmap; impor java.util.list; impor org.util.map; impor org.w3c.document; impor org.w3c.wak. cn.hncu.contact.util.idgenerate; import cn.hncu.contact.util.mydocumentfactory; kelas publik contactImpl mengimplementasikan contactdao {elemen pribadi CurrentAser; Dokumen DOM = NULL; public contactImpl () {} // name string statis private = null; // string statis private pwd = null; @Override // Public Boolean Login (String Name2, String PWD2) {Public Boolean Login (nama String, String pwd) {// name = name2; // pwd = pwd2; dom = myDocumentFactory.getDocument (); Elemen root = (elemen) dom.getFirstChild (); Nodelist nodelist = root.geteLementsByTagname ("user"); untuk (int i = 0; i <nodelist.getLength (); i ++) {elemen e = (elemen) nodelist.item (i); if (e.getAttribute ("name"). EqualSignorecase (name) && e.getAttribute ("pwd"). EqualSignorecase (pwd)) {currentUser = e; Kembali Benar; }} return false; } @Override Daftar publik <peta <string, string >> queryAll () {list <peta <string, string >> list = new ArrayList <peta <string, string >> (); if (currentUser == null) {daftar kembali; } Nodelist nodelist = currentUser.geteLementsbyTagname ("contact"); untuk (int i = 0; i <nodelist.getLength (); i ++) {peta <string, string> peta = new HashMap <string, string> (); Elemen e = (elemen) nodelist.item (i); String id = e.getAttribute ("id"); peta.put ("id", id); String name = e.geteLementsByTagname ("name"). Item (0) .gettextContent (); peta.put ("name", name); String sex = e.getElementsbyTagname ("sex"). Item (0) .gettextContent (); peta.put ("seks", seks); String Tel = E.GetElementsByTagname ("Tel"). Item (0) .gettextContent (); peta.put ("tel", tel); list.add (peta); } daftar pengembalian; } @Override Public Element Add (nama string, string sex, string tel) {document dom = myDocumentFactory.getDocument (); Elemen enewcontact = dom.createElement ("contact"); enewcontact.setAttribute ("id", idgenerate.getId ()); Elemen namenew = dom.createElement ("name"); namenew.setTextContent (name); enewcontact.AppendChild (NamEnew); Elemen sexnew = dom.createelement ("sex"); sexnew.setTextContent (sex); enewcontact.AppendChild (SexNew); Elemen telnew = dom.createelement ("tel"); telnew.settextcontent (tel); enewcontact.AppendChild (telnew); CurrentUser.AppendChild (EnewContact); myDocumentFactory.save (); // login (nama, pwd); return enewcontact; } hapus elemen publik (string id) {nodelist nodeList = currentUser.geteLementsByTagname ("contact"); untuk (int i = 0; i <nodelist.getLength (); i ++) {elemen e = (elemen) nodelist.item (i); if (e.getAttribute ("id"). Equals (id)) {currentUser.removechild (e); // Hapus simpul dari pohon mydocumentfactory.save (); // login (nama, pwd); mengembalikan e; }} return null; } @Override public void reg (nama string, string pwd) {dokumen dom = mydocumentfactory.getDocument (); Elemen usernew = dom.createElement ("user"); usernew.setAttribute ("name", name); Usernew.setAttribute ("PWD", PWD); dom.getFirstChild (). AppendChild (Usernew); MyDocumentFactory.Save (); } @Override Public Element Change (ID String, Nama String, String Sex, String Tel) {nodelist nodeList = currentUser.getElementsByTagname ("contact"); untuk (int i = 0; i <nodelist.getLength (); i ++) {elemen e = (elemen) nodelist.item (i); if (e.getAttribute ("id"). Equals (id)) {e.geteLementsByTagname ("name"). Item (0) .setTextContent (name); e.geteLementsByTagname ("sex"). Item (0) .setTextContent (seks); e.geteLementsByTagname ("tel"). Item (0) .setTextContent (tel); myDocumentFactory.save (); // login (nama, pwd); mengembalikan e; }} return null; }} Paket cn.hncu.contact.dao; kelas publik contactdaofactory {private contactdaofactory () {} public static contactdao getContactdao () {return contactImpl baru (); }}cmd
Paket 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; impor cn.nncu.contact cn.hncu.contact.dao.contactdaofactory; contactAction kelas publik {private contactdao dao = contactdaofactory.getContactdao (); pemindai pribadi sc = null; Private String Delids []; public contactAction () {sc = pemindai baru (System.in); while (true) {System.out.println ("1: Login"); System.out.println ("2: Daftar"); System.out.println ("0: Exit"); String op = sc.nextline (); if ("1" .Equals (op)) {login (); } lain jika ("2" .Equals (op)) {reg (); } else {// system.exit (0); merusak; }}} private void reg () {System.out.println ("Silakan masukkan nama pengguna:"); String name = sc.nextline (); System.out.println ("Silakan masukkan kata sandi pengguna:"); String pwd = sc.nextline (); System.out.println ("Harap konfirmasi kata sandi pengguna:"); String pwd2 = sc.nextline (); if (pwd.equals (pwd2)) {dao.reg (name, pwd); } else {System.out.println ("Input kata sandi tidak konsisten, silakan mendaftar lagi"); }} private void login () {System.out.println ("Harap masukkan nama pengguna:"); String name = sc.nextline (); System.out.println ("Silakan masukkan kata sandi pengguna:"); String pwd = sc.nextline (); boolean boo = dao.login (nama, pwd); if (boo) {System.out.println ("Login berhasil ..."); operasi(); } else {System.out.println ("Dengenshibai"); }} private void operasi () {daftar <peta <string, string >> list = dao.queryAll (); delids = string baru [list.size ()]; int i = 0; untuk (peta <string, string> map: list) {string id = map.get ("id"); Delids [i ++] = id; } // while (true) {// Karena pohon DOM yang sama dibagikan, setelah setiap penambahan, penghapusan, modifikasi dan periksa, itu masih pohon DOM asli. // Operasi di saat adalah operasi sebelumnya, jadi Anda harus keluar ke tahap sebelumnya dan masuk lagi untuk mendapatkan sistem dom tree yang diperbarui.out.println ("1: Tampilkan kontak"); System.out.println ("2: Tambahkan Kontak"); System.out.println ("3: hapus kontak"); System.out.println ("4: Modifikasi Kontak"); System.out.println ("0: Exit"); String sel = sc.nextline (); if ("1" .Equals (sel)) {System.out.println ("Nomor Seri/Tname/tgender/ttel"); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Map.get (Tel "); changeContact (); System.out.println ("Harap masukkan nama kontak yang akan dimodifikasi:"); System.out.println ("Silakan masukkan nama belakang kontak yang akan dimodifikasi:"); String sex = sc.nextline (); System.out.println ("Harap masukkan nomor telepon kontak yang akan dimodifikasi:"); String tel = sc.nextline (); Elemen e = dao.change (delids [num-1], nama, seks, tel); if (e! = null) {System.out.println (num+"tanda setelah kontak diperbarui: nama:"+e.geteLementsByTagname ("name"). Item (0) .gettextContent ()+"Jenis Kelamin:"+E.GetElementsByTagname ("Seks"). Item (0) .Gettcontent ()) Nomor: "+E.GetElementsByTagname (" Tel "). Item (0) .gettextContent ()); } else {System.out.println ("Modifikasi Gagal ..."); }} private void delcontact () {System.out.println ("Silakan masukkan nomor kontak yang dihapus:"); int num = sc.nextInt (); sc.nextline (); // Mengisap elemen karakter baru e = dao.delete (delids [num-1]); if (e == null) {System.out.println ("Hapus gagal, tidak ada kontak"); } else {System.out.println ("Hapus Kontak:"+E.GetElementsByTagname ("Name"). Item (0) .gettextContent ()+"Success ..."); }} private void addContact () {System.out.println ("Harap masukkan informasi kontak:"); System.out.println ("Name:"); String name = sc.nextline (); System.out.println ("Name:"); String sex = sc.nextline (); System.out.println ("Telp:"); String tel = sc.nextline (); Elemen e = dao.add (nama, seks, tel); System.out.println ("Tambah Kontak"+E.GetElementsByTagname ("Name"). Item (0) .GettextContent ()+"Sukses ..."); } public static void main (string [] args) {new contactAction (); }}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.