Versi Java-Single-Player dari Sistem Manajemen Buku (Modul Desain Praktik dan Ideas_Series 1): //www.vevb.com/article/91004.htm
memperkenalkan
Kiat: Ada direktori pada titik di atas yang dapat dengan cepat menemukan kelas yang perlu Anda lihat.
Hari ini, modifikasi kecil pada kode sebelumnya telah dibuat untuk membuat kode lebih sempurna.
Adapun kode identifikasi unik pengguna UUID, itu akan dimodifikasi untuk dihasilkan secara internal dalam program di masa depan.
UUID saat ini masih ditetapkan oleh pengguna.
Hari ini, untuk program ini, kami menambahkan bagian dari lapisan presentasi antarmuka pengguna dan menambahkan enumerasi kelas publik.
Di bawah ini adalah posting dari semua kode untuk program yang saya tulis: Saya secara bertahap akan menyelesaikan menulis program ini, harap yakinkan! (Fungsi yang perlu diimplementasikan dapat ditemukan dalam serangkaian sistem manajemen toko buku. Saya telah mengklasifikasikan artikel untuk seri ini, sehingga semua orang dapat menemukannya)
Serangkaian blog ini tidak akan pernah terganggu.
Kode sekarang berlapis:
Gambar setelah program berjalan:
Saya memposting kode dalam urutan dari atas ke bawah direktori:
Harap dicatat! Pesanan kode ini bukan pesanan yang saya tulis kode!
Jika Anda ingin merujuk pada tulisan saya, tolong jangan ikuti urutan kode yang saya posting.
Anda harus terlebih dahulu menulis kelas publik dan kelas alat.
Lagi: Kelas Lapisan Data -> Logical Layer Class -> Presentation Layer Class
Beberapa gambar setelah program berjalan:
Kelas Usertypeenum:
cn.hncu.bookstore.common;
Kelas Usertypeenum:
Paket cn.hncu.bookstore.Common;/*** Fungsi: Pencacahan jenis pengguna! <br/> * didefinisikan dalam modul publik. <br/> * Variables: <br/> * ADMIN(1,"Super Administrator"),<br/> * BOOK(2,"Librarian"),<br/> * IN(3,"Purchase Administrator"),<br/> * OUT(4,"Sales Administrator"),<br/> * STOCK(5,"Inventory Administrator");<br/> * @author chx * @version 1.0 */public enum UserTypeEnum {Admin (1, "administrator super"), buku (2, "pustakawan"), dalam (3, "administrator pembelian"), keluar (4, "administrator penjualan"), stok (5, "administrator inventaris"); tipe int final pribadi; nama string final pribadi; / *** Inisialisasi nama variabel enumerasi* @param type --- nomor integer yang sesuai dengan variabel enumerasi* @param nama --- nama string yang sesuai dengan variabel enumerasi*/ private usertypeenum (tipe int, nama string) {this.type = type; this.name = name; } / *** Dapatkan jumlah variabel enumerasi saat ini* @Return --- tipe-number* / public int getType () {type return; } / *** Dapatkan nama Cina dari variabel enumerasi saat ini* @return --- nama-nama-nama-Cina* / string publik getName () {return name; } /*** Dapatkan nama Cina dari variabel enumerasi yang sesuai dengan nomor berdasarkan nomor int* @param Type --- parameter int yang harus diteruskan* @return --- jika ada variabel enumerasi yang sesuai dengan angka tersebut, nama Cina dari variabel enumerasi dikembalikan. * <br/>-jika tidak ada variabel enumerasi yang sesuai dengan angka seperti itu, pesan pengecualian akan dilemparkan. */ Public Static String getNameByType (int type) {for (userTypeenum userType: usertypeeNum.values ()) {if (userType.getType () == type) {return userType.getName (); }} lempar IllegalArgumentException baru ("Tidak ada jenis pengguna yang sesuai dalam enumerasi:"+tipe); }/** * Dapatkan tipe int dari variabel enumerasi yang sesuai dengan nama berdasarkan nama Cina dari variabel enumerasi * @param nama --- nama string yang perlu diteruskan ke dalam * @return --- jika ada variabel enumerasi yang sesuai dengan no-name yang sesuai dengan no-in-int yang sesuai dengan variabel yang sesuai dengan variabel yang sesuai dengan variabel yang sesuai dengan variabel yang sesuai ini, <br/>-------jika ada yang sesuai dengan variabel enumerasi ini, tidak ada yang sesuai dengan variabel enumerasi ini. static int getTypeByName (name string) {for (usertypeenum userType: usertypeeNum.values ()) {if (userType.getName (). Equals (name)) {return userType.getType (); }} lempar IllegalArgumentException baru ("Tidak ada jenis pengguna yang sesuai dalam enumerasi:"+nama); }}Antarmuka Userebi:
cn.hncu.bookstore.user.business.ebi;
Antarmuka Userebi:
Paket cn.hncu.bookstore.user.business.ebi; impor java.util.list; import cn.hncu.bookstore.user.vo.usermodel; cn.hncu.bookstore.user.vo.userqueryModel;/** ** ** dari logika Layer.Vo.userqueryModel;/** ** ** dari logika LAYER.VO.USERQURYMODEL;/** ** ** ** LAYER LAYER.USER.VO.USERQURYMODEL;/** ** ** LAYER LAYER.USER.VO.USERQURY; { / *** Fungsi: Buat pengguna** @param userModel --- data pengguna yang akan dibuat* @return --- benar berarti pembuatan berhasil, salah berarti pembuatan gagal* / boolean publik create (userModel user); / ** * Fungsi: Hapus pengguna berdasarkan kode identifikasi unik pengguna UUID * * @param uuid --- kode identifikasi unik pengguna, setiap pengguna tidak akan sama * @return --- true berarti penghapusan berhasil, salah berarti penghapusan gagal */ hapus boolean publik (string uuid); / *** Fungsi: Modifikasi informasi data pengguna** @param pengguna --- Nama parameter data pengguna yang perlu dimodifikasi* @return return true- menunjukkan bahwa modifikasi berhasil, return false- menunjukkan bahwa modifikasi telah gagal*/ pembaruan boolean publik (pengguna USERModel); / *** Fungsi: Dapatkan semua data pengguna** @return --- Koleksi USERMODEL, yaitu, data pengguna*/ Daftar publik <SuModel> getAll (); /** * Fungsi: Cari sesuai dengan kondisi pencarian tertentu, * <br/> * Mengembalikan data pengguna yang memenuhi kondisi pencarian. ** @param uqm --- Kondisi pencarian yang dienkapsulasi* @Return ---- Set data pengguna yang memenuhi kondisi pencarian*/ Daftar publik <SuModel> getByCondition (UserQueryModel UQM); / *** Fungsi: Dapatkan data pengguna tertentu** @param uuid --- Pengguna Kode Identifikasi Unik* @Return --- Kembalikan data pengguna yang ditemukan sesuai dengan kode identifikasi unik ini*/ USERMODEL PUBLIK GetSingle (String UUID);}Kelas Userebo:
cn.hncu.bookstore.user.business.ebo;
Kelas Userebo:
Paket cn.hncu.bookstore.user.business.ebo; impor java.util.list; impor cn.hncu.bookstore.user.business.ebi.userebi; impor cn.hncu.bookstore.user.dao.dao.userdao; impor; impor; impor; impor; impor; Impor; cn.hncu.bookstore.user.dao.factory.userdaofactory; impor cn.hncu.bookstore.user.vo.usermodel; Userbo.hncu.bookstore.user.vo.userQuerModel; kelas publik Userebo melibatkan userebi {private {private {private {private {public class uSerebo yang diterjatkan Userebi {private {private {public class uSerebo {public @Override public boolean create (userModel user) {return dao.create (user); } @Override public boolean delete (string uuid) {return dao.delete (uuid); } @Override Public Boolean Update (userModel user) {return dao.update (user); } @Override Daftar publik <SuModel> getAll () {return dao.getall (); } @Override Daftar publik <SuModel> getByCondition (UserQueryModel uqm) {// TODO Metode yang dihasilkan secara otomatis rintisan kembali NULL; } @Override public usermodel getSingle (string uuid) {return dao.getsingle (uuid); }}Kelas Userebifactory:
cn.hncu.bookstore.user.business.factory;
Kelas Userebifactory:
Paket cn.hncu.bookstore.user.business.factory; impor cn.hncu.bookstore.user.business.ebi.userebi; impor cn.hncu.bookstore.user.business.ebo.userebo; public uSerebifactory {public static UsereSer }}Antarmuka userdao:
cn.hncu.bookstore.user.dao.dao;
Antarmuka userdao:
Paket cn.hncu.bookstore.user.dao.dao; impor java.util.list; import cn.hncu.bookstore.user.vo.usermodel; data * loaboner * loabonymodel; Antarmuka userdao { / *** Fungsi: Buat pengguna** @param userModel --- data pengguna yang akan dibuat* @ @return-true berarti pembuatan berhasil, false berarti pembuatan gagal* / public boolean create (userModel user); / ** * Fungsi: Hapus pengguna berdasarkan kode identifikasi unik pengguna UUID * * @param uuid --- kode identifikasi unik pengguna, setiap pengguna tidak akan sama * @return --- true berarti penghapusan berhasil, salah berarti penghapusan gagal */ hapus boolean publik (string uuid); / *** Fungsi: Ubah Informasi Data Pengguna** @param pengguna --- Nama parameter data pengguna yang perlu dimodifikasi* @return return true- berarti modifikasi berhasil, return false- berarti modifikasi gagal*/ pembaruan boolean publik (userModel pengguna); / *** Fungsi: Dapatkan semua data pengguna** @return --- Koleksi USERMODEL, yaitu, data pengguna*/ Daftar publik <SuModel> getAll (); /** * Fungsi: Cari sesuai dengan kondisi pencarian tertentu, * <br/> * Mengembalikan data pengguna yang memenuhi kondisi pencarian. ** @param uqm --- Kondisi pencarian yang dienkapsulasi* @Return ---- Set data pengguna yang memenuhi kondisi pencarian*/ Daftar publik <SuModel> getByCondition (UserQueryModel UQM); / *** Fungsi: Dapatkan data pengguna tertentu** @param uuid --- Pengguna Kode Identifikasi Unik* @Return --- Kembalikan data pengguna yang ditemukan sesuai dengan kode identifikasi unik ini*/ USERMODEL PUBLIK GetSingle (String UUID);}Kelas userdaofactory:
cn.hncu.bookstore.user.dao.factory;
Kelas userdaofactory:
Paket cn.hncu.bookstore.user.dao.factory; import cn.hncu.bookstore.user.dao.dao.userdao; Impor cn.hncu.bookstore.user.dao.impl.userdaoserImpl;/** Metode Factory <br/rbr/** ** ** ** ** factory @userdaoserImpl; * */kelas publik userdaofactory {public static userdao getUserdao () {return new UsusdaOserImpl (); }}Kelas UserdaOserImpl:
cn.hncu.bookstore.user.dao.impl;
Kelas UserdaOserImpl:
Paket cn.hncu.bookstore.user.dao.impl; import java.util.arraylist; import java.util.list; import cn.hncu.bookstore.user.user.user.vo.voerelel; cn.hncu.bookStore.user.vo.UserQueryModel;import cn.hncu.bookStore.util.FileIoUtil;/** * <br/> * Specific implementation class for user data processing---Implementing the UserDao interface* * @author Chen Haoxiang* * @version 1.0 */public class UserDaoSerImpl implements UserDao { private static final String File_name = "user.txt"; @Override public boolean create (userModel user) {// 1 First Deserialize (baca) Daftar data yang ada <SUSERMODEL> list = fileoutil.readFormFile (file_name); // 2 Tentukan apakah pengguna sudah ada, dan kemudian memutuskan apakah akan membuat untuk (Usermodel usermodel: list) {// Jika uuid dari kedua pengguna sama, pengguna sama jika (userModel.getuUid (). Fileoutil.write2file (daftar, file_name); return true; // Buat berhasil, kembalikan true} @Override public boolean delete (String uuid) {// 1 Deserialize pertama (baca) Daftar data yang ada <SuModel> list = FileIoutil.ReadFormFile (file_name); // 2 Tentukan apakah pengguna sudah ada, dan kemudian memutuskan apakah akan menghapus // untuk (int i = 0; i <list.size (); i ++) {// if (list.get (i) .getuuid (). Equals (uuid)) {// list.remove (i); // fileoutil.write2file (daftar, file_name); // Kembalikan true; //} //} untuk (usermodel usermodel: list) {// Jika uuid dari 2 pengguna sama, pengguna sama jika (usermodel.getuuid (). Equals (uuid)) {list.remove (usermodel); Fileoutil.write2file (daftar, file_name); // hapus dengan sukses, return true return true; }} // 3 Pengguna tidak ada // hapus gagal, return false return false; } @Override Public Boolean Update (userModel user) {// 1 Deserialize (baca) Data data pertama yang ada <SuModel> list = fileoutil.readFormFile (file_name); // 2 Tentukan apakah pengguna sudah ada, dan kemudian memutuskan apakah akan membuat untuk (int i = 0; i <list.size (); i ++) {// uuid tidak dapat diubah. Temukan data pengguna melalui uuid, dan ubah akan baik -baik saja jika (list.get (i) .getuuid (). Equals (user.getuuid ())) {// Ubah pengguna yang ditemukan ke daftar pengguna.set (i, user); Fileoutil.write2file (daftar, file_name); // Temukan pengguna dan return true return true; }} // 3 Jika pengguna tidak ada, modifikasi gagal mengembalikan false; } @Override Daftar publik <SuModel> getAll () {return fileoutil.readFormFile (file_name); } @Override Daftar publik <SuModel> getByCondition (UserQueryModel uqm) {// TODO Metode yang dihasilkan secara otomatis rintisan kembali NULL; } @Override public usermodel getSingle (string uuid) {// 1 deserialize (baca) Data data pertama yang ada <SUERMODEL> list = fileoutil.readFormFile (file_name); // 2 Tentukan apakah pengguna sudah ada, dan jika ada, kembalikan pengguna untuk (int i = 0; i <list.size (); i ++) {if (list.get (i) .getuuid (). Equals (uuid)) {return list.get (i); }} // 3 Jika pengguna tidak ada, return null return null; }}Kelas AddPanel:
cn.hncu.bookstore.user.ui;
Kelas AddPanel:
/ * * Addpanel.java * * dibuat di __date__, __time__ */paket cn.hncu.bookstore.user.ui; import javax.swing.jframe; import javax.swing.joptionpane; impor cn.hncu.bookstore.common.usertypeenum; cn.hncu.bookstore.user.business.ebi.userebi; impor cn.hncu.bookstore.user.business.factory.userebifactory; impor cn.hncu.bookstore.user.vo.usermodel; impor cn.hncu.bookstore.foile.fo.usermodel; impor cn.hncu.bookstore.uTile.foeUt; Haoxiang*/kelas publik AddPanel memperluas javax.swing.jpanel {private jframe mainframe = null; / ** Membuat Formulir Baru AddPanel*/ Public AddPanel (Mainframe JFrame) {this.mainframe = mainframe; initcomponents (); myInitdata (); } private void myInitData () {for (Usertypeenum Tipe: userTypeeNum.Values ()) {combtype.additem (type.getName ()); }} /** Metode ini dipanggil dari dalam konstruktor untuk* menginisialisasi formulir. * PERINGATAN: Jangan memodifikasi kode ini. Isi metode ini * selalu diregenerasi oleh editor formulir. */// gen-begin: initComponents // <editor-fold defaultState = "collapsed" desc = "code yang dihasilkan"> private void initcomponents () {jlabel1 = javax.swing.jlabel () baru; jlabel2 = new javax.swing.jlabel (); tfdname = new javax.swing.jtextfield (); jlabel3 = new javax.swing.jlabel (); tfduuid = new javax.swing.jtextfield (); jlabel4 = new javax.swing.jlabel (); tfdpwd2 = new javax.swing.jpasswordfield (); jlabel5 = new javax.swing.jlabel (); jlabel6 = new javax.swing.jlabel (); combtype = new javax.swing.jcomboBox (); tfdpwd = new javax.swing.jpasswordfield (); btnadd = new javax.swing.jbutton (); btnback = new javax.swing.jbutton (); setMinimumSize (java.awt.dimension baru (800, 600)); setLayout (null); jlabel1.setfont (java.awt.font baru ("Microsoft Yahei", 1, 48)); jlabel1.setForeground (java.awt.color baru (204, 0, 0)); jlabel1.setText ("/u6dfb/u52a0/u7528/u6237"); tambahkan (jlabel1); jlabel1.setbounds (270, 30, 230, 80); jlabel2.setfont (java.awt.font baru ("Microsoft Yahei", 0, 18)); jlabel2.setText ("/u7528/u6237/u7c7b/u578b:"); Tambahkan (jlabel2); jlabel2.setbounds (40, 310, 90, 30); tfdname.setfont (java.awt.font baru ("dialog", 1, 18)); tfdname.setautoscrolls (false); add (tfdname); tfdname.setbounds (420, 160, 120, 30); jlabel3.setfont (java.awt.font baru ("Microsoft Yahei", 0, 18)); jlabel3.setText ("uuid:"); tambahkan (jlabel3); jlabel3.setbounds (70, 160, 50, 30); tfduuid.setfont (java.awt.font baru ("dialog", 0, 11)); tambahkan (tfduuid); tfduuid.setbounds (140, 160, 110, 30); jlabel4.setfont (java.awt.font baru ("Microsoft Yahei", 0, 18)); jlabel4.setText ("/u59d3/u540d:"); tambahkan (jlabel4); jlabel4.setbounds (360, 160, 50, 30); add (tfdpwd2); tfdpwd2.setbounds (420, 240, 170, 30); jlabel5.setfont (java.awt.font baru ("Microsoft Yahei", 0, 18)); jlabel5.setText ("/u5bc6/u7801:"); tambahkan (jlabel5); jlabel5.setbounds (70, 240, 50, 30); jlabel6.setfont (java.awt.font baru ("Microsoft Yahei", 0, 18)); jlabel6.setText ("/u786e/u8ba4/u5bc6/u7801:"); tambahkan (jlabel6); jlabel6.setbounds (330, 240, 90, 30); combtype.setfont (java.awt.font baru ("dialog", 1, 18)); combtype.setForeground (Java.awt.color baru (51, 51, 255)); combtype.setModel (baru javax.swing.defaultcomboBoxModel (string baru [] {"Silakan pilih ..."})); Tambahkan (CombType); combtype.setbounds (140, 310, 160, 30); tfdpwd.setfont (java.awt.font baru ("安一", 1, 18)); add (tfdpwd); tfdpwd.setbounds (140, 240, 160, 30); btnadd.setfont (java.awt.font baru ("dialog", 1, 24)); btnadd.setForeground (java.awt.color baru (0, 204, 204)); btnadd.setText ("/u6dfb/u52a0"); btnadd.addactionListener (baru java.awt.event.actionlistener () {public void actionPerformed (java.awt.event.actionevent evt) {btnaddactionPerformed (evt);}}); tambahkan (btnadd); btnadd.setbounds (140, 430, 120, 60); btnback.setfont (java.awt.font baru ("dialog", 1, 24)); btnback.setForeground (java.awt.color baru (0, 204, 204)); btnback.setText ("/u8fd4/u56de"); btnback.addactionListener (java.awt.event.actionListener baru () {public void actionPerformed (java.awt.event.acticeevent evt) {btnbackactionPerformed (evt);}}); Tambah (btnback); btnback.setbounds (470, 430, 120, 60); } // </editor-fold> // gen-end: initComponents private void back () {mainframe.setContentPane (new ListPanel (mainframe)); mainframe.validate (); } / ***Dengarkan tombol kembali*@param Klik Mendengarkan tombol kembali* / Private void btnbackActionPerformed (java.awt.event.actionevent evt) {back (); } private void btnaddactionPerformed (java.awt.event.actionevent evt) {// 1 mengumpulkan parameter string uuid = tfduuid.getText (); String name = tfdname.getText (); String pwd = string baru (tfdpwd.getPassword ()); String pwd2 = string baru (tfdpwd2.getpassword ()); if (! pwd.equals (pwd2)) {joptionpane.showmessagedialog (null, "input kata sandi tidak konsisten dua kali, mohon masukkan kembali!"); kembali; } int type = 0; coba {type = usertypeenum.getTypeByName (combtype.getSelectedItem () .toString ()); } catch (Exception e) {jOptionPane.showmessageDialog (null, "Harap tentukan jenis pengguna!"); kembali; } // 2 mengatur parameter userModel user = new usermodel (); user.setname (name); user.setpwd (PWD); user.setType (type); user.setuuid (uuid); // 3 Panggil lapisan logika userebi ebi = userebifactory.getuserebi (); // 4direct ke halaman yang berbeda sesuai dengan hasil yang dikembalikan oleh panggilan if (ebi.create (pengguna)) {back (); } else {jOptionPane.showmessageDialog (null, "Pengguna ini sudah ada!"); }} // gen -begin: variabel // variabel deklarasi - jangan memodifikasi javax.swing.jbutton btnadd; private javax.swing.jbutton btnback; private javax.swing.jcombobox combtype; pribadi javax.swing.jlabel jlabel1; pribadi javax.swing.jlabel jlabel2; pribadi javax.swing.jlabel jlabel3; pribadi javax.swing.jlabel jlabel4; pribadi javax.swing.jlabel jlabel5; pribadi javax.swing.jlabel jlabel6; private javax.swing.jtextfield tfdname; private javax.swing.jpasswordfield tfdpwd; private javax.swing.jpasswordfield tfdpwd2; private javax.swing.jtextfield tfduuid; // Akhir Deklarasi Variabel // Gen-end: Variabel}Kelas ListPanel:
cn.hncu.bookstore.user.ui;
Kelas ListPanel:
/ * * Listpanel.java * * dibuat di __date__, __time__ */paket cn.hncu.bookstore.user.ui; impor java.util.list; impor javax.swing.jframe; impor cn.hncu.bookstore.user.business.usere.usere.usere; cn.hncu.bookstore.user.business.factory.userebifactory; impor cn.hncu.bookstore.user.vo.usermodel;/*** Panel Priver-Layer-User Private {JAUVEL JAVAX. / ** Membuat ListPanel Formulir Baru*/ Public ListPanel (JFRame Mainframe) {this.mainframe = mainframe; initcomponents (); myInitdata (); } / *** Baca semua pengguna dan tambahkan ke daftar* / private void myInitData () {userebi user = userebifactory.getUserebi (); Daftar <SuModel> list = user.getAll (); userlists.setListData (list.toArray ()); } /** Metode ini dipanggil dari dalam konstruktor untuk* menginisialisasi formulir. * PERINGATAN: Jangan memodifikasi kode ini. Isi metode ini * selalu diregenerasi oleh editor formulir. */// gen-begin: initcomponents // <editor-fold defaultState = "collapsed" desc = "code yang dihasilkan"> private void initcomponents () {jscrollpane1 = new javax.swing.jscrollpane (); UserLists = new javax.swing.jlist (); jlabel1 = new javax.swing.jlabel (); btntoadd = new javax.swing.jbutton (); setMinimumSize (java.awt.dimension baru (800, 600)); setLayout (null); userlists.setModel (new javax.swing.abstractListModel () {string [] string = {""}; int int getsize () {return string.length;} objek publik getElementat (int i) {string return [i];}}); jscrollpane1.setViewPortView (UserLists); tambahkan (jscrollpane1); jscrollpane1.setbounds (150, 150, 480, 230); jlabel1.setfont (java.awt.font baru ("Tahoma", 1, 48)); jlabel1.setForeground (java.awt.color baru (204, 0, 51)); jlabel1.setText ("user"); jlabel1.setText ("user"); jlabel1.setForeground (java.awt.color baru (204, 0, 51)); jlabel1.setText ("user"); Daftar "); add (jlabel1); jlabel1.setbounds (270, 30, 260, 80); btntoadd.setfont (baru java.awt.font (" dialog ", 1, 18)); btntoadd.septext ("/u6dfb/u52a0/u758/u/u6); btntoadd.addactionListener (java.awt.event.actionListener baru () {public void ActionPerformed (java.awt.event.actionEvent evt) {btntoaddactionPerformed (evt); </Editor-Fold> // Gen-end: InitComponents Private void btntoaddactionPerformed (java.awt.event.actionEvent evt) {mainframe.setContentPane (addPanel baru (Mainframe)); javax.swing.jbutton btntoadd;Kelas USERModel:
cn.hncu.bookstore.user.vo;
Kelas USERModel:
Modul Objek Nilai Pengguna:
Paket cn.hncu.bookstore.user.vo; import java.io.serializable; impor cn.hncu.bookstore.common.usertypeenum;/** * @author chen haoxiang * @Version 1.0 * * <br/> * objek nilai yang digunakan untuk menyimpan informasi pengguna <br/> 1. METODE SETTER-GETTER <br/> * 3. Tulis Equals dan HashCode Metode --- Gunakan Kunci Utama (UUID) Kode Identifikasi Unik <br/> * 4. Metode ToString <br/> * 5. Metode Konstruksi Parameter Kosong <br/>/Kelas Public UserModel Menerapkan Serializable Serializable {Private String uuid; // Pengguna Kode Identifikasi Pengguna UserModel Implements Pengguna; pwd; // Kata Sandi Pengguna Publik Usermodel () {}/*** Fungsi: Dapatkan kode identifikasi unik UUID-Pengguna** @Return return uuid-user kode identifikasi unik*/string publik getuuid () {return uuid; } / *** Fungsi: atur kode identifikasi unik UUID-USER* @param uuid-user identifikasi unik Parameter tipe string-string* / public void setuuid (string uuid) {this.uuid = uuid; } / *** Fungsi: Dapatkan nama pengguna pengguna* @return --- nama-username* / public string getName () {return name; } / *** Fungsi: Atur nama pengguna pengguna** @param nama-nama pengguna yang diatur oleh pengguna, string tipe parameter* / public void setName (nama string) {this.name = name; } / *** Fungsi: Dapatkan tipe pengguna:* 1 - mewakili admin, dan semua operasi dapat dilakukan* 2 - mewakili orang yang dapat mengoperasikan modul buku* 3 - mewakili orang yang dapat mengoperasikan modul pembelian* 4 - mewakili orang yang dapat mengoperasikan modul penjualan* 5 - mewakili orang yang dapat mengoperasikan modul inventory* @return. } / *** Fungsi: Atur jenis pengguna:* 1 - dilambangkan sebagai admin, semua operasi dapat dilakukan* 2 - dilambangkan sebagai orang yang dapat mengoperasikan modul buku* 3 - dilambangkan sebagai orang yang dapat mengoperasikan modul pembelian* 4 - dilambangkan sebagai orang yang dapat mengoperasikan modul penjualan* 5 - dilambangkan sebagai orang yang dapat beroperasi Inventory Inventory* Parles @pare @pare* setType (tipe int) {this.type = type; } / *** Fungsi: Dapatkan kata sandi pengguna* @Return string type, kata sandi pengguna* / public string getPwd () {return pwd; } / *** Fungsi: Atur kata sandi pengguna* @param pwd-string tipe parameter* / public void setPwd (string pwd) {this.pwd = pwd; } @Override public int hashCode () {final int prime = 31; Hasil int = 1; hasil = hasil * prime + ((uuid == null)? 0: uuid.hashcode ()); hasil pengembalian; } @Override public boolean sama (objek obj) {if (this == obj) mengembalikan true; if (obj == null) mengembalikan false; if (getClass ()! = obj.getClass ()) mengembalikan false; Usermodel lain = (usermodel) obj; if (uuid == null) {if (Other.uuid! = null) return false; } else if (! uuid.equals (Other.uuid)) return false; Kembali Benar; } @Override public string toString () {return uuid + "," + name + "," + usertypeenum.getNamebyType (type); }}Kelas UserQueryModel:
cn.hncu.bookstore.user.vo;
Kelas UserQueryModel:
Meskipun tidak ada kode, itu tidak bisa diabaikan! Inilah yang Anda butuhkan saat mencari pengguna.
Saya menulis alasan dalam seri ini.
Paket cn.hncu.bookstore.user.vo;/** * * @author chen haoxiang * * @version 1.0 */kelas publik userquerymodel memperluas usermodel {}Kelas Fileioutil:
cn.hncu.bookstore.util;
Kelas Fileioutil:
Paket cn.hncu.bookstore.util; import java.io.file; impor java.io.fileInputStream; import java.io.filenotfoundException; impor java.oBeTputStream; import java.ioException; impor java.objileOnputStream; java.util.arraylist; import java.util.list; import javax.swing.joptionpane;/*** Data publik pengguna Baca dan tulis kelas* @author chen haoxiang** @version 1.0 ** BACA PUBLIK FILEIOUTIL {PUBLIK FILEIOUTIL () {}/** BACA SELURUH PUBLIK ** ke tabel data) * @Return Records dari semua tabel! */@SuppressWarnings ("Uncecked") // tekan PERINGATAN PUBLIK PUBLIK <E> DAFTAR <E> ReadFormFile (String FileName) {List <E> Daftar = ArrayList baru <E> (); File File Akhir = File baru (nama file); ObjectInputStream in = null; if (! File.exists ()) {//joptionpane.showmessageDialog(null, "Tabel data tidak ada!"); daftar pengembalian; } coba {in = new ObjectInputStream (FileInputStream baru (nama file)); coba {list = (daftar <E>) di.readObject (); } catch (ClassNotFoundException e) {E.PrintStackTrace (); }} catch (FileNotFoundException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); } akhirnya {if (in! = null) {coba {in.close (); } catch (ioException e) {lempar runimeException baru ("database tutup gagal"); }}} daftar pengembalian; } / ** * Tulis koleksi daftar ke dalam nama file data * * * @param List (pengumpulan data yang perlu disimpan) * @param fileName (nama file ke file mana yang ditulis) * / public static <e> void write2File (daftar <E> Daftar, string filename) {objek ObjectSputStream out = null; coba {out = new ObjectOutputStream (FileOutputStream baru (fileName)); out.writeObject (daftar); } catch (FileNotFoundException e) {e.printstacktrace (); } catch (ioException e) {e.printstacktrace (); } akhirnya {if (out! = null) {coba {out.close (); } catch (ioException e) {lempar runtimeException baru ("Database tutup gagal!"); }}}}}}}}} Kelas Toko Buku: (termasuk metode utama)
cn.hncu.bookstore;
Kelas Toko Buku:
Metode utama modul pengguna ada di kelas ini:
/ * * Bookstore.java * * dibuat di __date__, __time__ */paket cn.hncu.bookstore; impor cn.hncu.bookstore.user.ui.listpanel;/** * @Author Chen Haoxiang */Buku Kelas Publik Extends javax.swing.swing.swing. initcomponents (); this.setContentPane (ListPanel baru (ini)); ini. } /** Metode ini dipanggil dari dalam konstruktor untuk* menginisialisasi formulir. * PERINGATAN: Jangan memodifikasi kode ini. Isi metode ini * selalu diregenerasi oleh editor formulir. */// gen-begin: initComponents // <editor-fold defaultState = "collapsed" desc = "code yang dihasilkan"> private void initComponents () {menubar = javax.swing.jmenubar (); filemenu = new javax.swing.jMenuitem = new javax.swing.jMenuitem (); saveMenuitem = new javax.swing.jMenuitem (); saveasMenuitem = new javax.swing.jMenuitem (); ExitMenuitem = new javax.swing.jMenuitem (); editMenu = new javax.swing.jMenuitem (); cutMenuitem = javax.swing.jMenuitem baru (); cutMenuitem = javax.swing.jMenuitem baru (); editMenu = new javax.swing.jmenu (); cutMenuitem = javax.swing.jMenuitem baru (); copyMenuitem = new javax.swing.jMenuitem (); pastemenuitem = javax.swing.jMenuitem baru (); deleteMenuitem = new javax.swing.jMenuitem (); HelpMenu = new javax.swing.jmenuitem (); ContentSMenuitem = new javax.swing.jMenuitem (); tentangMenuitem = new javax.swing.jMenuitem (); setDefaultCloseOperation (javax.swing.windowconstants.exit_on_close); setMinimumSize (java.awt.dimension baru (800, 600)); filemenu.setText ("file"); OpenMenuitem.setText ("Open"); filemenu.add (OpenMenuitem); saveMenuitem.setText ("save"); filemenu.add (saveMenuitem); saveasMenuitem.setText ("save as ..."); filemenu.add (SaveasMenuitem); ExitMenuitem.setText ("Exit"); ExitMenuitem.addactionListener (baru java.awt.event.actionListener () {public void actionPerformed (java.awt.event.actionevent evt) {exitMenuitemactionPerformed (evt);}}); filemenu.add (ExitMenuitem); Menubar.add (Filemenu); EditMenu.setText ("Edit"); cutmenuitem.setText ("cut"); editmenu.add (cutmenuitem); copyMenuitem.setText ("copy"); editmenu.add (copyMenuitem); pastemenuitem.setText ("pasta"); editmenu.add (pastemenuitem); deleteMenuitem.setText ("delete"); editmenu.add (deleteMenuitem); menubar.add (editmenu); HelpMenu.setText ("Help"); ContentSMenuitem.setText ("Contents"); HelpMenu.add (ContentSMenuitem); tentangMenuitem.setText ("Tentang"); HelpMenu.add (tentangMenuitem); menubar.add (helpmenu); setjmenubar (Menubar); tata letak javax.swing.grouroPlayout = javax.swing.grouPlayout baru (getContentPane ()); getContentPane (). setLayout (tata letak); tata letak.sethorizontalgroup (layout.createParallelGroup (javax.swing.grouplayout.alignment.leading) .addgap (0, 400, short.max_value)); Layout.setVerticalGroup (Layout.CreateParallelGroup (javax.swing.grourayout.alignment.leading) .addgap (0, 279, short.max_value)); mengemas(); } // </editor-fold> // gen-end: initComponents private void exitMenuitemactionPerformed (java.awt.event.actionEvent evt) {// gen-first: event_exitMenuitemactionPerformed system.exit (0); } // gen-last: event_exitMenuitemactionPerformed/** * @param args argumen baris perintah */public static void main (string args []) {java.awt.eventqueue.invokelater (runnable baru () {public void run () {new BookStore (). } // Gen -begin: Variabel // Deklarasi Variabel - Jangan memodifikasi javax.swing.jmenuitem private tentangMenuitem; pribadi javax.swing.jmenuitem ContentSmenuitem; private javax.swing.jmenuitem copyMenuitem; private javax.swing.jmenuitem cutmenuitem; private javax.swing.jmenuitem deleteMenuitem; private javax.swing.jmenuitem ExitMenuitem; pribadi javax.swing.jmenu filemenu; pribadi javax.swing.jmenu helpmenu; Private Javax.Swing.jmenubar Menubar; pribadi javax.swing.jmenuitem OpenMenuitem; private javax.swing.jmenuitem pastemenuitem; pribadi javax.swing.jmenuitem saveasMenuitem; pribadi javax.swing.jmenuitem savemenuitem; // Akhir Deklarasi Variabel // Gen-end: Variabel} Itu saja untuk hari ini, untuk dilanjutkan. . .
Ada bug kecil di penambahan saat ini, yaitu ketika menambahkan pengguna, Anda tidak memasukkan apa pun.
Pilih saja jenis pengguna, dan Anda juga dapat membuatnya! Saya akan memperbaikinya lain kali.
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.