Version Java-Single-Player du système de gestion de la librairie (Practice Design Modules and Ideas_series 1): //www.vevb.com/article/91004.htm
introduire
Astuce: il y a un répertoire au point ci-dessus qui peut rapidement localiser les classes que vous devez voir.
Aujourd'hui, une petite modification du code précédent a été faite pour rendre le code plus parfait.
Quant au code d'identification unique de l'utilisateur UUID, il sera modifié pour être généré en interne dans le programme à l'avenir.
L'UUID actuel est toujours défini par l'utilisateur.
Aujourd'hui, pour ce programme, nous avons ajouté une partie de la couche de présentation de l'interface utilisateur et ajouté un énumération de classe publique.
Vous trouverez ci-dessous une publication de tous les codes pour le programme que j'ai écrit: Je finirai progressivement de la rédaction de ce programme, veuillez être assuré! (Les fonctions qui doivent être mises en œuvre peuvent être trouvées dans la série de systèmes de gestion de la librairie. J'ai classé les articles de cette série, afin que tout le monde puisse les trouver)
Cette série de blogs ne sera jamais interrompue.
Le code est maintenant superposé:
L'image après l'exécution du programme:
J'ai publié le code dans la commande du haut en bas du répertoire:
Veuillez noter! Cette commande de code n'est pas l'ordre j'écris le code!
Si vous souhaitez vous référer à mon écriture, veuillez ne pas suivre l'ordre du code que j'ai publié.
Vous devez d'abord écrire des cours publics et des cours d'outils.
Encore une fois: Classe de couche de données -> Classe de couche logique -> Classe de calque de présentation
Quelques photos après l'exécution du programme:
Classe UserTypeenum:
cn.hncu.bookstore.common;
Classe UserTypeenum:
package cn.hncu.bookstore.common; / ** * Fonction: énumération des types d'utilisateurs! <br/> * Défini dans un module public. <br/> * Variables: <br/> * Admin (1, "Super Administrator"), <br/> * Book (2, "Librarian"), <br/> * in (3, "Achat Administrator"), <br/> * Out (4, "Sales Administrator"), <br/> * Stock (5, "Inventory Administrator"); <br/> * * @author chx * @version 1.0 * / inverse UserTypeeNum {admin (1, "Super Administrator"), Book (2, "Librarian"), dans (3, "Achat Administrator"), Out (4, "Sales Administrator"), Stock (5, "Inventory Administrator"); type int privé int; Nom de la chaîne finale privée; / ** * Initialiser le nom de la variable d'énumération * @param type --- Numéro entier correspondant à la variable d'énumération * @param name --- String Type Nom correspondant à la variable d'énumération * / userTypeEnum privé (int type, name de chaîne) {this.type = type; this.name = name; } / ** * Obtenez le nombre de la variable d'énumération actuelle * @return --- type-numéro * / public int getType () {return type; } / ** * Obtenez le nom chinois de la variable d'énumération actuelle * @return --- Nom-Chinese Nom * / public String getName () {Nom de retour; } / ** * Obtenez le nom chinois de la variable d'énumération correspondant au nombre basé sur le numéro int * @param type --- Le paramètre int qui doit être passé * @return --- s'il existe une variable d'énumération correspondant à un tel nombre, le nom chinois de la variable d'énumération est renvoyé. * <br/> - S'il n'y a pas de variable d'énumération correspondant à un tel nombre, un message d'exception sera lancé. * / public static String getNameByType (int type) {for (userTypeEUm userType: usertypeeNum.values ()) {if (usertype.getType () == type) {return userType.getName (); }} Jetez un nouveau IllégalArgumentException ("Il n'y a pas de type d'utilisateur correspondant dans l'énumération:" + type); } / ** * Obtenez le type int de la variable d'énumération correspondant au nom basé sur le nom chinois de la variable d'énumération * @param nom --- Nom du type de chaîne qui doit être transmis dans * @return --- s'il existe une variable d'énumération correspondant à un tel nom int getTypeByName (String name) {for (usertypeenum usertype: usertypeenum.values ()) {if (usertype.getName (). equals (name)) {return userType.getType (); }} Jetez un nouveau IllégalArgumentException ("Il n'y a pas de type d'utilisateur correspondant dans l'énumération:" + nom); }}Interface Userebi:
cn.hncu.bookstore.user.business.ebi;
Interface Userebi:
Package cn.hncu.bookstore.user.business.ebi; import java.util.list; import cn.hncu.bookstore.user.vo.usermerymodel; / ** * interface logique * * @Author chx * @version 1.0 * {/ ** * Fonction: Créez un utilisateur * * @param userModel --- Données utilisateur à créer * @return --- true signifie la création réussie, false signifie que la création a échoué * / public boolean create (userModel User); / ** * Fonction: supprimez un utilisateur en fonction du code d'identification unique de l'utilisateur UUID * * @param UUID --- Code d'identification unique de l'utilisateur, chaque utilisateur ne sera pas le même * @return --- true signifie que la suppression est réussie, faux signifie l'échec de la suppression * / public Boolean Delete (String UUID); / ** * Fonction: modifier les informations de données de l'utilisateur * * @param utilisateur --- Nom du paramètre de données utilisateur qui doit être modifiée * @return return true- indique que la modification est réussie, RETOUR FAUX - indique que la modification a échoué * / public booléen Update (UserModel User); / ** * Fonction: obtenez toutes les données de l'utilisateur * * @return --- Une collection UserModel, c'est-à-dire les données de l'utilisateur * / public List <SerModel> getall (); / ** * Fonction: Recherchez en fonction de certaines conditions de recherche, * <br/> * Renvoyez des données utilisateur qui remplissent les conditions de recherche. * * @param uqm --- Conditions de recherche encapsulées * @return ---- L'ensemble de données utilisateur qui remplit les conditions de recherche * / public List <SerModel> GetByCondition (UserQueryModel UQM); / ** * Fonction: Obtenez certaines données utilisateur * * @param uUID --- Utilisateur Unique Code d'identification * @return --- Renvoie les données utilisateur trouvées en fonction de ce code d'identification unique * / public UserModel getingled (String UUID);}Classe Userebo:
cn.hncu.bookstore.user.business.ebo;
Classe Userebo:
Package cn.hncu.bookstore.user.business.ebo; import java.util.list; import cn.hncu.bookstore.user.business.ebi.userebi; import Cn.hncu.bookstore.user.dao.dao.userdao; Importer; cn.hncu.bookstore.user.dao.factory.userdaofactory; Importer cn.hncu.bookstore.user.vo.useryModel; import Cn.hncu.BookStore.user.vo.UserQueryModel; Public Class UseRebo implémente Userebi {privily userdao dao = userdaofactory.getèreda (); @Override public boolean create (userModel User) {return dao.create (utilisateur); } @Override public boolean Delete (String UUID) {return dao.delete (uuid); } @Override public boolean update (userModel User) {return dao.update (utilisateur); } @Override Public List <UserModel> getall () {return dao.getall (); } @Override Public List <SerModel> GetByCondition (UserQueryModel UQM) {// TODO Méthode générée automatique Stub Retour null; } @Override public userModel getingled (String UUID) {return dao.getSingle (uuid); }}Classe UseRerebifactory:
cn.hncu.bookstore.user.business.factory;
Classe UseRerebifactory:
package cn.hncu.bookstore.user.business.factory; import cn.hncu.bookstore.user.business.ebi.userebi; import Cn.hncu.bookstore.user.business.ebo.userebo; public class userebifactory {public static useerebi getUseRebi () {return new userebo (public static useerebi getUseRebi () {return New Userebo (public static useerebi getUseRebi () {return New Userebo; }}Interface UserDAO:
cn.hncu.bookstore.user.dao.dao;
Interface UserDAO:
Package cn.hncu.bookstore.user.dao.dao; Importer java.util.list; import Cn.hncu.bookstore.user.vo.usermerymodel; / * * * * @author Chen Haoxiang * * @version 1.0 * Probore de la couche utilisateur de Chen Haoxiang * * @version 1,0 * Interface UserDao {/ ** * Fonction: Créez un utilisateur * * @param UserModel --- Données utilisateur à créer * @ return - true signifie la création réussie, FAUX signifie la création échouée * / public boolean create (UserModel User); / ** * Fonction: supprimez un utilisateur en fonction du code d'identification unique de l'utilisateur UUID * * @param UUID --- Code d'identification unique de l'utilisateur, chaque utilisateur ne sera pas le même * @return --- true signifie que la suppression est réussie, faux signifie l'échec de la suppression * / public Boolean Delete (String UUID); / ** * Fonction: modifiez les informations sur les données de l'utilisateur * * @param utilisateur --- Nom du paramètre de données utilisateur qui doit être modifiée * @return return true- signifie la modification est réussie, renvoie false- signifie l'échec de la modification * / public booléen update (userodel user); / ** * Fonction: obtenez toutes les données de l'utilisateur * * @return --- Une collection UserModel, c'est-à-dire les données de l'utilisateur * / public List <SerModel> getall (); / ** * Fonction: Recherchez en fonction de certaines conditions de recherche, * <br/> * Renvoyez des données utilisateur qui remplissent les conditions de recherche. * * @param uqm --- Conditions de recherche encapsulées * @return ---- L'ensemble de données utilisateur qui remplit les conditions de recherche * / public List <SerModel> GetByCondition (UserQueryModel UQM); / ** * Fonction: Obtenez certaines données utilisateur * * @param uUID --- Utilisateur Unique Code d'identification * @return --- Renvoie les données utilisateur trouvées en fonction de ce code d'identification unique * / public UserModel getingled (String UUID);}Classe UserDaofactory:
cn.hncu.bookstore.user.dao.factory;
Classe UserDaofactory:
Package CN.hncu.Bookstore.user * * / classe publique UserDaofactory {public static userdao getUserDao () {return new UserDaOserimpl (); }}Classe UserDaOSerimpl:
cn.hncu.bookstore.user.dao.impl;
Classe UserDaOSerimpl:
Package cn.hncu.bookstore.user cn.hncu.bookstore.user.vo.userQueryModel; Importer cn.hncu.bookstore.util.fileioutil; / ** * <br/> * Classe d'implémentation spécifique pour le traitement des données utilisateur --- Implémentation de l'interface Userdao * * @Author Chen Haoxiang * * @version 1.0 * / public Classe UserDaOserrimp File_name = "user.txt"; @Override public boolean create (userModel User) {// 1 désérialiser (lire) la liste de données existante <UserModel> list = fileioutil.readformfile (file_name); // 2 Déterminez si l'utilisateur existe déjà, puis décidez de créer pour (UserModel UserModel: List) {// Si les Uuids des deux utilisateurs sont égaux, l'utilisateur est le même si (UserModel.getuuid (). Fileioutil.write2file (list, file_name); return true; // créer avec succès, return true} @Override public boolean delete (String UUID) {// 1 désérialiser (lire) la liste de données existante <UserModel> list = fileioutil.readformfile (file_name); // 2 Déterminez si l'utilisateur existe déjà, puis décidez de supprimer // pour (int i = 0; i <list.size (); i ++) {// if (list.get (i) .getuuid (). Equals (uUID)) {// list.remove (i); // fileioutil.write2file (list, file_name); // retourne true; //} //} pour (userModel UserModel: list) {// Si les UUID de 2 utilisateurs sont égaux, l'utilisateur est le même si (userModel.getUuid (). Equals (uUid)) {list.remove (userModel); Fileioutil.write2file (list, file_name); // Supprimer avec succès, retour true return true; }} // 3 L'utilisateur n'existe pas // delete a échoué, return return false; } @Override public Boolean Update (UserModel User) {// 1 Deserialize (Lire) La première liste de données existante <SerModel> list = fileioutil.readformfile (file_name); // 2 Déterminez s'il existe déjà l'utilisateur, puis décidez de créer pour (int i = 0; i <list.size (); i ++) {// uUID ne peut pas être modifié. Recherchez les données de l'utilisateur via UUID et modifiez que ce sera OK si (list.get (i) .getuuid (). Equals (user.getUuid ())) {// modifiez l'utilisateur trouvé à l'utilisateur list.set (i, user); Fileioutil.write2file (list, file_name); // recherche l'utilisateur et retour true return true; }} // 3 Si l'utilisateur n'existe pas, la modification ne revient pas false; } @Override Public List <SerModel> getall () {return fileioutil.readformfile (file_name); } @Override Public List <SerModel> GetByCondition (UserQueryModel UQM) {// TODO Méthode générée automatique Stub Retour null; } @Override public UserModel getingled (String UUID) {// 1 désérialiser (lire) la première liste de données existante <UserModel> list = fileioutil.readformfile (file_name); // 2 Déterminez si l'utilisateur existe déjà et, s'il existe, renvoyez l'utilisateur pour (int i = 0; i <list.size (); i ++) {if (list.get (i) .getuuid (). Equals (uUID)) {return list.get (i); }} // 3 Si l'utilisateur n'existe pas, renvoie null return null; }}Classe AddPanel:
cn.hncu.bookstore.user.ui;
Classe AddPanel:
/ * * Addpanel.java * * créé sur __date__, __time__ * / package cn.hncu.bookstore.user.ui; importer javax.swing.jframe; import javax.swing.joptionpane; import cn.hncu.bookstore.common.userTypeenum; cn.hncu.bookstore.user.business.ebi.userebi; import Cn.hncu.bookstore.user.business.factory.userebifactory; Importer cn.hncu.bookstore.user.vo.UserModel; Importer Cn.hncu.Ben Haoxiang * / classe publique addpanel étend javax.swing.jpanel {private jframe mainframe = null; / ** crée un nouveau formulaire addPanel * / public addPanel (jframe mainframe) {this.mainframe = mainframe; INITCOMPONENTS (); myinitdata (); } private void myInitData () {for (usertypeenum type: userTypeenum.values ()) {combtype.additem (type.getName ()); }} / ** Cette méthode est appelée à l'intérieur du constructeur pour * initialiser le formulaire. * AVERTISSEMENT: ne modifiez pas ce code. Le contenu de cette méthode est * toujours régénéré par l'éditeur de formulaire. * / // Gen-Begin: initComponents // <Editor-Fold defaultState = "Entreclé" desc = "Code généré"> private void initComponents () {jLabel1 = new Javax.swing.jLabel (); 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 (new java.awt.dimension (800, 600)); setLayout (null); jLabel1.setfont (new Java.awt.font ("Microsoft Yahei", 1, 48)); JLabel1.setForeground (new Java.awt.Color (204, 0, 0)); jLabel1.seTText ("/ u6dfb / u52a0 / u7528 / u6237"); Add (JLabel1); JLabel1.setbounds (270, 30, 230, 80); JLabel2.Setfont (new Java.awt.font ("Microsoft Yahei", 0, 18)); jLabel2.SeTText ("/ u7528 / u6237 / u7c7b / u578b:"); Add (JLabel2); JLabel2.SetBounds (40, 310, 90, 30); tfdname.setfont (new java.awt.font ("dialogue", 1, 18)); tfdname.setAutoScrolls (false); Add (tfdName); tfdname.setbounds (420, 160, 120, 30); JLabel3.Setfont (new Java.awt.font ("Microsoft Yahei", 0, 18)); JLabel3.SeTText ("UUID:"); Add (JLabel3); JLabel3.SetBounds (70, 160, 50, 30); tfduuid.setfont (new java.awt.font ("dialogue", 0, 11)); ajouter (tfduuid); tfduuid.setbounds (140, 160, 110, 30); JLabel4.Setfont (new Java.awt.font ("Microsoft Yahei", 0, 18)); jLabel4.SeTText ("/ u59d3 / u540d:"); Add (JLabel4); JLabel4.SetBounds (360, 160, 50, 30); ajouter (tfdpwd2); TFDPWD2.SetBounds (420, 240, 170, 30); JLabel5.Setfont (new Java.awt.font ("Microsoft Yahei", 0, 18)); JLabel5.SeTText ("/ U5BC6 / U7801:"); Add (JLabel5); JLabel5.SetBounds (70, 240, 50, 30); jLabel6.setfont (new Java.awt.font ("Microsoft Yahei", 0, 18)); jLabel6.seTText ("/ u786e / u8ba4 / u5bc6 / u7801:"); Add (JLabel6); JLabel6.setbounds (330, 240, 90, 30); combtype.setfont (new java.awt.font ("dialogue", 1, 18)); combtype.setForeground (new java.awt.color (51, 51, 255)); combtype.setmodel (new Javax.swing.defaultcomboBoxModel (new String [] {"s'il vous plaît sélectionnez ..."})); ajouter (combtype); combtype.setbounds (140, 310, 160, 30); tfdpwd.setfont (new java.awt.font ("安一", 1, 18)); ajouter (tfdpwd); tfdpwd.setBounds (140, 240, 160, 30); btnadd.setfont (new java.awt.font ("dialogue", 1, 24)); btnadd.setForeground (new java.awt.color (0, 204, 204)); btnadd.setText ("/ u6dfb / u52a0"); btnadd.addactionListener (new java.awt.event.actionListener () {public void ActionPerformed (java.awt.event.actionEvent evt) {btnaddactionperformed (evt);}}); ajouter (btnadd); btnadd.setbounds (140, 430, 120, 60); btnback.setfont (new java.awt.font ("dialogue", 1, 24)); btnback.setForeground (new java.awt.color (0, 204, 204)); btnback.setText ("/ u8fd4 / u56de"); btnback.addactionListener (new java.awt.event.actionListener () {public void ActionPerformed (java.awt.event.actionEvent evt) {btnBackActionPerformed (evt);}}); ajouter (btnback); btnback.setbounds (470, 430, 120, 60); } // </ editor-Fold> // Gen-End: initComponents private void back () {mainframe.setContentPane (new listPanel (mainframe)); mainframe.validate (); } / ** * BOUTON Back Back * @param Cliquez sur écouter le bouton de retour * / private void btnBackActionPerformed (java.awt.event.actionEvent evt) {back (); } private void btnAdDactionPerformed (java.awt.event.actionEvent evt) {// 1 Collect Paramètres String UUID = tfDUUID.GetText (); String name = tfdname.getText (); String pwd = new String (tfdpwd.getPassword ()); String pwd2 = new String (tfdpwd2.getPassword ()); if (! pwd.equals (pwd2)) {joptionpane.showMessagealiAg (null, "Les entrées de mot de passe sont incohérentes les deux fois, veuillez vous réintégrer!"); retour; } int type = 0; try {type = usertypeenum.getTypeByName (combtype.getSelectedItem () .ToString ()); } catch (exception e) {joptionpane.showMessageDialog (null, "Veuillez spécifier le type d'utilisateur!"); retour; } // 2 Organiser les paramètres UserModel User = new UserModel (); user.setName (nom); user.setpwd (pwd); user.setType (type); user.setuuid (UUID); // 3 Appelez la couche logique userebi ebi = userebifactory.getUteRebi (); // 4Direct à différentes pages en fonction du résultat renvoyé par l'appel if (ebi.create (user)) {back (); } else {joptionpane.showMessageDialog (null, "Cet utilisateur existe déjà!"); }} // Gen-BEGIN: Variables // Déclaration de variables - Ne modifiez pas Javax.Swing.swing.jbutton btnadd; privé javax.swing.jbutton btnback; Javax.swing.jcombox privé; privé javax.swing.jLabel JLabel1; privé javax.swing.jLabel JLabel2; privé javax.swing.jLabel JLabel3; privé javax.swing.jlabel JLabel4; privé javax.swing.jlabel JLabel5; privé javax.swing.jlabel JLabel6; privé javax.swing.jtextfield tfdname; privé javax.swing.jpasswordfield tfdpwd; privé javax.swing.jpasswordfield tfdpwd2; privé javax.swing.jtextfield tfduuid; // Fin des variables Déclaration // Gen-End: Variables}Classe ListPanel:
cn.hncu.bookstore.user.ui;
Classe ListPanel:
/ * * Listpanel.java * * créé sur __date__, __time__ * / pack cn.hncu.bookstore.user.business.factory.userebifactory; Importer cn.hncu.bookstore.user.vo.usermodel; / ** * Présentation Liste-List Panneau * * @Author Chen haoxiang * @version 1.0 * / public class listprame étend javax.swing.jpanel {privily jframe = navaLit; / ** crée un nouveau formulaire listPanel * / public listPanel (jframe mainframe) {this.mainframe = mainframe; INITCOMPONENTS (); myinitdata (); } / ** * Lisez tous les utilisateurs et ajoutez-les à la liste * / private void MyInitData () {useRebi User = useReBifactory.getUteReBi (); List <userModel> list = user.getall (); userlists.setListData (list.toArray ()); } / ** Cette méthode est appelée à l'intérieur du constructeur pour * initialiser le formulaire. * AVERTISSEMENT: ne modifiez pas ce code. Le contenu de cette méthode est * toujours régénéré par l'éditeur de formulaire. * / // Gen-Begin: initComponents // <Editor-Fold defaultState = "Entreclé" desc = "Code généré"> private void initComponents () {jscrollPane1 = new Javax.swing.jscrollPane (); userlists = new javax.swing.jlist (); jLabel1 = new Javax.swing.jLabel (); btntoadd = new javax.swing.jbutton (); setMinimumSize (new java.awt.dimension (800, 600)); setLayout (null); userlists.setModel (new Javax.swing.abstractListmodel () {String [] Strings = {""}; public int getSize () {return strings.length;} public objet getElementat (int i) {return strings [i];}}); jscrollpane1.setViewportView (userlists); Add (jscrollPane1); jscrollpane1.setbounds (150, 150, 480, 230); JLabel1.setfont (New Java.awt.font ("Tahoma", 1, 48)); JLabel1.setForeground (new Java.awt.Color (204, 0, 51)); jLabel1.seTText ("utilisateur"); jLabel1.seTText ("utilisateur"); JLabel1.setForeground (new Java.awt.Color (204, 0, 51)); jLabel1.seTText ("utilisateur"); List "); add (jLabel1); jLabel1.setBounds (270, 30, 260, 80); btnttoadd.setfont (new java.awt.font (" dialogue ", 1, 18)); btnttoaddd.settext (" / u6dfb / u52a0 / u7528 / u6237 "); btntoadd.addactionListener (new java.awt.event.actionListener () {public void ActionPerformed (java.awt.event.actionEvent evt) {btnttoaddactionperformed (evt);}}); </ Editor-Fold> // Gen-End: InitComponents private void btNtoAdDactionPorged (java.awt.event.actionEvent evt) {mainframe.setContentPane (ne peut pas modifier le privilège: les variables //carnettes. Javax.swing.jbutton btntoadd;Classe UserModel:
cn.hncu.bookstore.user.vo;
Classe UserModel:
Module d'objet de valeur utilisateur:
Package cn.hncu.bookstore.user.vo; import java.io.serializable; import cn.hncu.bookstore.common.userTypeenum; / ** * @author chhen haoxiang * @version 1.0 * * <br/> * Méthode de setter-getters <br/> * 3. Écriture Équivalence et méthode de code de hash --- Utilisez la clé principale (UUID) Code d'identification unique <br/> * 4. Méthode TOSTRING <br/> * 5. Méthode de construction de paramètre vide <br/> * / CLASSE PUBLIC USERMODEL IMPLORIE SÉRIALISABLE {Private String Uuid; // User Code d'identification unique Nom de chaîne privée; // Nom d'utilisateur intime intit; PWD; // Mot de passe utilisateur public UserModel () {} / ** * Fonction: Obtenez UUID-USER Code d'identification unique * * @return return UUID-user Code d'identification unique * / public String getUUID () {return uuid; } / ** * Fonction: SET UUID-USER Code d'identification unique * @param UUID-USER Unique Identification Code-String Type Paramètre * / public void setuuid (String UUID) {this.uUid = uuid; } / ** * Fonction: Obtenez le nom d'utilisateur de l'utilisateur * @return --- name-username * / public String getName () {return name; } / ** * Fonction: Définissez le nom d'utilisateur de l'utilisateur * * @param Nom - Username Set par l'utilisateur, paramètre de type de chaîne * / public void setName (String Name) {this.name = name; } / ** * Fonction: Obtenez le type de l'utilisateur: * 1 (représente l'administrateur, et toutes les opérations peuvent être effectuées * 2 (représente la personne qui peut exploiter le module de livre * 3 (représente la personne qui peut exploiter le module d'achat * 4 (représente la personne qui peut exploiter le module de vente * 5 (représente la personne qui peut exploiter le type d'inventaire * @return l'utilisateur de l'utilisateur * / public int Gettype () {retourne; } / ** * Fonction: Définissez le type de l'utilisateur: * 1 - indiqué comme administrateur, toutes les opérations peuvent être effectuées * 2 - désignées comme une personne qui peut exploiter des modules de livre * 3 - indiqué comme une personne qui peut utiliser des modules d'achat * 4 - indiqué comme une personne qui peut exploiter des modules de vente * 5 - Denot comme personne qui peut utiliser des modules d'inventaire * setType (int type) {this.type = type; } / ** * Fonction: Obtenez le mot de passe de l'utilisateur * @return String Type, User Motword * / public String getpwd () {return pwd; } / ** * Fonction: Définissez le mot de passe de l'utilisateur * @param pwd - Paramètre de type de chaîne * / public void setpwd (String pwd) {this.pwd = pwd; } @Override public int hashcode () {final int prime = 31; Int résultat = 1; result = prime * result + ((uuid == null)? 0: uUid.hashcode ()); Résultat de retour; } @Override public boolean equals (objet obj) {if (this == obj) return true; if (obj == null) return false; if (getClass ()! = obj.getClass ()) return false; Userodel Autre = (UserModel) obj; if (uUid == null) {if (autre.uuid! = null) return false; } else if (! uuid.equals (autre.uuid)) renvoie false; Retour Vrai; } @Override public String toString () {return uUid + "," + name + "," + usertypeenum.getNameByType (type); }}Classe UserQueryModel:
cn.hncu.bookstore.user.vo;
Classe UserQueryModel:
Bien qu'il n'y ait pas de code, il ne peut pas être ignoré! C'est ce dont vous avez besoin lorsque vous recherchez des utilisateurs.
J'ai écrit la raison de la série.
Package cn.hncu.bookstore.user.vo; / ** * * @author chen haoxiang * * @version 1.0 * / public class userQueryModel étend UserModel {}Classe FileIoutil:
cn.hncu.bookstore.util;
Classe FileIoutil:
package cn.hncu.bookstore.util; import java.io.file; import java.io.fileInputStream; import java.io.filenotfoundException; import java.io.fileoutputstream; import java.io.ioexception; java.util.arraylist; importer java.util.list; import javax.swing.joptionpane; / ** * utilisateur des données publiques lire et écrire la classe * @author chen haoxiang * * @version 1.0 * / public class fileioutil {public fileioutil () {} / ** * lisez toutes les données de la database et renvoie informatique * * @Param Figera Tableau) * @return Records de toutes les tables! * / @SuppressWarnings ("Unchecked") // Appuyez sur l'avertissement public static <e> list <e> readFormFile (String filename) {list <e> list = new ArrayList <e> (); fichier file final = nouveau fichier (nom de fichier); ObjectInputStream dans = null; if (! file.exists ()) {//joptionpane.showMessageDialog(NULL, "Le tableau de données n'existe pas!"); Liste de retour; } try {in = new ObjectInputStream (new FileInputStream (filename)); try {list = (list <e>) in.readObject (); } catch (classNotFoundException e) {e.printStackTrace (); }} catch (filenotFoundException e) {e.printStackTrace (); } catch (ioException e) {e.printStackTrace (); } enfin {if (in! = null) {try {in.close (); } catch (ioException e) {throw new RuntimeException ("Database close a échoué"); }}} liste de retour; } / ** * Écrivez une collection de liste dans le nom de fichier de fichiers de données * * @param liste (la collecte de données qui doit être stockée) * @param nom de fichier (le nom de fichier auquel le fichier est écrit) * / public static <e> void write2file (list <e> list, string filename) {objectoutputStream out = null; try {out = new ObjectOutputStream (new FileOutputStream (nom de fichier)); out.writeObject (list); } catch (filenotFoundException e) {e.printStackTrace (); } catch (ioException e) {e.printStackTrace (); } enfin {if (out! = null) {try {out.close (); } catch (ioException e) {lancer un nouveau RuntimeException ("la base de données Close a échoué!"); }}}}}}}}} Classe de librairies: (y compris la méthode principale)
cn.hncu.bookstore;
Classe de librairies:
La méthode principale du module utilisateur est dans cette classe:
/ * * Librairie.java * * Créé sur __date__, __time__ * / package cn.hncu.bookstore; Importer cn.hncu.bookstore.user.Ui.listpanel; / ** * * @author Chen haoxiang * / public class bookstore extend javax.swing.jfram {/ ** CreateS BookStore * INITCOMPONENTS (); this.setContentPane (new listPanel (this)); this.setResizable (false); // this.setDefaultCloseOperation (exit_on_close); } / ** Cette méthode est appelée à l'intérieur du constructeur pour * initialiser le formulaire. * AVERTISSEMENT: ne modifiez pas ce code. Le contenu de cette méthode est * toujours régénéré par l'éditeur de formulaire. * / // Gen-Begin: initComponents // <Editor-Fold defaultState = "Entreclé" desc = "Code généré"> private void initComponents () {menuBar = new Javax.swing.jMenubar (); filemenu = new javax.swing.jmeniuitem = new javax.swing.jmecuitem (); SAVEMENUITEM = NOUVEAU JAVAX.SWING.JMENUITEM (); SaveAsMenuem = new Javax.swing.jMenuem (); eXitMenuItem = new Javax.swing.jMenuem (); editMenu = new Javax.swing.jMenuem (); CutMenuem = new Javax.swing.jMenuem (); CutMenuem = new Javax.swing.jMenuem (); editMenu = new Javax.swing.jmenu (); CutMenuem = new Javax.swing.jMenuem (); CopyMenuItem = new Javax.swing.jMenuem (); pastemeMiUtem = new Javax.swing.jMenuem (); DeletemeMinem = new Javax.swing.jMenuem (); HelpMenu = new Javax.swing.jMenuem (); ContenuMenuem = new Javax.swing.jMenuItem (); À propos de Menuem = new Javax.swing.jMenuem (); setDefaultCloseOperation (javax.swing.windowconstants.exit_on_close); setMinimumSize (new java.awt.dimension (800, 600)); fileMenu.seTTExt ("fichier"); OpenMenuTem.SeTText ("Open"); filemenu.add (OpenMenuem); SAVEMEUITEM.SETTEXT ("SAVE"); filemenu.add (SaveMeUitem); SAVEASMENUITEM.SETTEXT ("Save As ..."); filemenu.add (SaveasMenuem); eXitMenuItem.SeTText ("sortie"); exitMenuem.addactionListener (new java.awt.event.actionListener () {public void ActionPerformed (java.awt.event.actionEvent evt) {eXitMenuteMActionperformed (evt);}}); fileMenu.Add (eXitMenuem); MenUbar.Add (FileMenu); EditMenu.SeTTEXT ("édition"); CutMenuItem.SeTText ("Cut"); editMenu.Add (CutMenuem); CopyMenuItem.SeTText ("Copie"); editMenu.Add (CopyMenuItem); pasteMeUitem.setText ("pâte"); editmenu.add (pastemuem); DeletemeMitem.SetText ("Delete"); EditMenu.Add (DeletemeMiUtem); MenUbar.Add (EditMenu); helpMenu.seTText ("Help"); Contenu Menuem.SeTText ("Contenu"); HelpMenu.Add (contenu Menuem); À propos deMenuTem.SeTText ("À propos"); HelpMenu.Add (AboutMenuem); MenUbar.Add (HelpMenu); setjMenubar (Menubar); javax.swing.grouplayout Layout = new javax.swing.grouplayout (getContentPane ()); getContentPane (). setLayout (Layout); Layout.SethorizontalGroup (Layout.CreateParalleGroup (javax.swing.grouplayout.alignment.leading) .addgap (0, 400, short.max_value)); Layout.SetVerticalGroup (Layout.CreateParallelGroup (javax.swing.grouplayout.alignment.leading) .addgap (0, 279, short.max_value)); paquet(); } // </ editor-Fold> // Gen-End: initComponents private void exitMenuItemActionPerformed (java.awt.event.actionEvent evt) {// gen } // gen-last: event_exitMenueMActionPerformed / ** * @param args les arguments de ligne de commande * / public static void main (String args []) {java.awt.eventqueue.invokelater (new Runnable () {public void run () {new bookstore (). SetVisible (true);}}); } // Gen-Begin: Variables // Déclaration de variables - Ne modifiez pas Javax.swing.swing.jmecutem privé; Javax.swing.swing.jMenuItem Contents Menuem; privé javax.swing.jMenuem CopyMenuemm; privé javax.swing.jMenuItem CutMenuem; privé javax.swing.jMenuItem DeletemeMiUtem; privé javax.swing.jMenuItem EXITMENUITEM; Privé Javax.swing.jmenu FileMenu; Private Javax.swing.jmenu HelpMenu; privé javax.swing.jmenubar Menubar; privé javax.swing.jMenuem OpenMenuem; Private Javax.swing.jmeniuitem pastemuem; privé javax.swing.jMenuem SaveasMenuem; privé javax.swing.jMenuItem SaveMenuMitem; // Fin des variables Déclaration // Gen-End: Variables} C’est tout pour l’aujourd’hui. . .
Il y a un petit bug dans l'ajout actuel, c'est-à-dire que lors de l'ajout d'un utilisateur, vous n'entrez rien.
Sélectionnez uniquement le type d'utilisateur et vous pouvez également le créer! Je vais le réparer la prochaine fois.
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.