Versión de Java-Single-Player del sistema de gestión de librerías (práctica de módulos de diseño e ideas 1): //www.vevb.com/article/91004.htm
introducir
Consejo: hay un directorio en el punto anterior que puede localizar rápidamente las clases que necesita ver.
Hoy, se ha realizado una pequeña modificación al código anterior para hacer que el código sea más perfecto.
En cuanto al UUID de código de identificación único del usuario, se modificará para generarse internamente en el programa en el futuro.
El UUID actual todavía es establecido por el usuario.
Hoy, para este programa, agregamos parte de la capa de presentación de la interfaz de usuario y agregamos la enumeración de clase pública.
A continuación se muestra una publicación de todos los códigos para el programa que he escrito: terminaré gradualmente de escribir este programa, ¡tenga la seguridad! (Las funciones que deben implementarse se pueden encontrar en la serie de sistemas de gestión de librerías. He clasificado los artículos para esta serie, para que todos puedan encontrarlos)
Esta serie de blogs nunca será interrumpido.
El código ahora está en capas:
La imagen después de que el programa se esté ejecutando:
Publiqué el código en el pedido de la parte superior a la parte inferior del directorio:
¡Tenga en cuenta! ¡Este orden de código no es el orden que escribo el código!
Si desea consultar mi escritura, no siga el orden del código que publiqué.
Primero debe escribir clases públicas y clases de herramientas.
Nuevamente: clase de capa de datos -> clase de capa lógica -> clase de capa de presentación
Algunas fotos después de que el programa se esté ejecutando:
Clase Usertypeenum:
cn.hncu.bookstore.common;
Clase Usertypeenum:
paquete cn.hncu.bookstore.common;/*** Función: ¡Enumeración de los tipos de usuarios! <br/> * definido en un módulo público. <br/> * variables: <br/> * admin (1, "super administrador"), <br/> * libro (2, "bibliotecario"), <br/> * en (3, "Administrador de compras"), <br/> * out (4, "Administrador de ventas"), <br/> * stock (5, "Administrador de inventario"); <br/> * @Author CHX * @version {Admin (1, "Super Administrador"), Libro (2, "Bibliotecario"), en (3, "Administrador de compra"), Out (4, "Administrador de ventas"), stock (5, "Administrador de inventario"); Tipo de int -int -intivid privado; Nombre de cadena final privado; / *** Inicialice el nombre de la variable de enumeración* @param Tipo --- número entero correspondiente a la variable de enumeración* @param name --- nombre de tipo de cadena correspondiente a la variable de enumeración*/ private usertypeenum (int type, name de cadena) {this.type = type; this.name = name; } / *** Obtenga el número de la variable de enumeración actual* @return --- type-number* / public int getType () {return type; } / *** Obtenga el nombre chino de la variable de enumeración actual* @return --- nombre-chino Nombre* / public String getName () {Return Name; } /*** Obtenga el nombre chino de la variable de enumeración correspondiente al número basado en el número INT* @param Tipo --- El parámetro int requerido* @return --- si hay una variable de enumeración correspondiente a dicho número, se devuelve el nombre chino de la variable de enumeración. * <br/>-Si no hay una variable de enumeración correspondiente a dicho número, se enviará un mensaje de excepción. */ public static String getNameByType (int type) {for (usertypeenum usertype: usertypeenum.values ()) {if (userType.gettype () == type) {return usertype.getName (); }} Lanzar nueva IllegalArgumentException ("No hay un tipo de usuario correspondiente en la enumeración:"+tipo); }/** * Obtenga el tipo int de la variable de enumeración correspondiente al nombre basado en el nombre chino de la variable de enumeración * @param Nombre --- Nombre de tipo de cadena que debe aprobarse en * @return --- Si una variable de enumeración correspondiente a dicho nombre, devuelve el tipo de entrada a esta variable de enumeración * <BR/>--si no hay variable en la variable correspondiente a un nombre de excepción, una excepción de la enumeración. int getTypebyName (name de cadena) {for (usertypeenum usertype: usertypeenum.values ()) {if (userType.getName (). Equals (name)) {return userType.getType (); }} tire nueva ilegalArgumentException ("No hay un tipo de usuario correspondiente en la enumeración:"+nombre); }}Interfaz Userebi:
cn.hncu.bookstore.user.business.ebi;
Interfaz Userebi:
paquete cn.hncu.bookstore.user.business.ebi; import java.util.list; import cn.hncu.bookstore.user.vo.usermodel; import cn.hncu.bookstore.user.vo.userQueryModel;/** * interfaz de la capa lógica * * @author { / *** Función: Crear un usuario** @param usermodel --- datos del usuario que se crearán* @return --- Verdadero significa creación exitosa, falsa medios fallidos* / public boolean create (user user); / ** * Función: Eliminar un usuario basado en el código de identificación único del usuario UUID * * @param uuid --- Código de identificación único del usuario, cada usuario no será el mismo * @return --- Verdadero significa que la eliminación es exitosa, falsa significa que la deleción falló */ public boolean delete (string uuid); / *** Función: Modifique la información de datos del usuario** @Param User --- Nombre del parámetro de datos del usuario que debe modificarse* @return return true- indica que la modificación es exitosa, devuelve falso indica que la modificación ha fallado*/ Update público booleano (usuario userModel); / *** Función: Obtenga todos los datos del usuario** @return --- una recopilación de usermodel, es decir, los datos del usuario*/ lista pública <sermodel> getAll (); /** * Función: Búsqueda de acuerdo con ciertas condiciones de búsqueda, * <br/> * Devuelve los datos del usuario que cumplen con las condiciones de búsqueda. ** @param uqm --- Condiciones de búsqueda encapsuladas* @return ---- Conjunto de datos de usuario que cumple con las condiciones de búsqueda*/ Lista pública <Sermodel> GetByCondition (UserQueryModel uqm); / *** Función: Obtenga ciertos datos de usuario** @param uuid --- Código de identificación único del usuario* @return --- Devuelve los datos del usuario encontrados de acuerdo con este código de identificación único*/ public usermodel getSingle (string uuid);}Clase userebo:
cn.hncu.bookstore.user.business.ebo;
Clase userebo:
paquete 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; import cn.hncu.bookstore.user.dao.factory.userdaofactory; import cn.hncu.bookstore.user.vo.usermodel; import cn.hncu.bookstore.user.vo.userqueryModel; clase pública userebo implementa userebi {userdao private dao = userdaactory.getAdAoTaoTaOo () (). @Override public boolean create (userModel user) {return dao.create (usuario); } @Override public boolean Delete (String uuid) {return dao.delete (uuid); } @Override public Boolean Update (userModel user) {return dao.update (usuario); } @Override Public List <Ssermodel> getAll () {return dao.getall (); } @Override Public List <Ssermodel> GetByCondition (UserQueryModel uqm) {// TODO Auto Generado Método STUB return NULL; } @Override public usermodel getSingle (string uuid) {return dao.getSingle (uuid); }}Clase userebifactoria:
cn.hncu.bookstore.user.business.factory;
Clase userebifactoria:
paquete cn.hncu.bookstore.user.business.factory; import cn.hncu.bookstore.user.business.ebi.userebi; import cn.hncu.bookstore.user.business.ebo.userebo; clase pública userebifactory {public estatic estatic userebi getuserebi () {retorno new neweBoBo (); }}Interfaz de userdao:
cn.hncu.bookstore.user.dao.dao;
Interfaz de userdao:
paquete cn.hncu.bookstore.user.dao.dao; import java.util.list; import cn.hncu.bookstore.user.vo.usermodel; import cn.hncu.bookstore.user.vo.userQueryModel;/ * * * * @author haox * * * @version 1.0 * data module de usador de modulina de los datos del usuario de interfaz userDao { / *** Función: Crear un usuario** @param usermodel --- datos de usuario para ser creados* @return-tree significa creación exitosa, falsa medios fallido* / public boolean create (userModel user); / ** * Función: Eliminar un usuario basado en el código de identificación único del usuario UUID * * @param uuid --- Código de identificación único del usuario, cada usuario no será el mismo * @return --- Verdadero significa que la eliminación es exitosa, falsa significa que la deleción falló */ public boolean delete (string uuid); / *** Función: Modifique la información de datos del usuario** @Param User --- Nombre del parámetro de datos del usuario que debe modificarse* @return return true- significa que la modificación es exitosa, return false- significa la modificación fallida*/ publicidad booleana (usuario usermodel); / *** Función: Obtenga todos los datos del usuario** @return --- una recopilación de usermodel, es decir, los datos del usuario*/ lista pública <sermodel> getAll (); /** * Función: Búsqueda de acuerdo con ciertas condiciones de búsqueda, * <br/> * Devuelve los datos del usuario que cumplen con las condiciones de búsqueda. ** @param uqm --- Condiciones de búsqueda encapsuladas* @return ---- Conjunto de datos de usuario que cumple con las condiciones de búsqueda*/ Lista pública <Sermodel> GetByCondition (UserQueryModel uqm); / *** Función: Obtenga ciertos datos de usuario** @param uuid --- Código de identificación único del usuario* @return --- Devuelve los datos del usuario encontrados de acuerdo con este código de identificación único*/ public usermodel getSingle (string uuid);}UserDaofactory Clase:
cn.hncu.bookstore.user.dao.factory;
UserDaofactory Clase:
paquete cn.hncu.bookstore.user.dao.factory; import cn.hncu.bookstore.user.dao.dao.userdao; import cn.hncu.bookstore.user.dao.impl.userdaoseriMpl;/** * Method de factory <br/> * nueva */public class UserDaofactory {public static userdao getUserDao () {return new UserDaoseMpl (); }}Clase userDaoserImpl:
cn.hncu.bookstore.user.dao.impl;
Clase userDaoserImpl:
paquete cn.hncu.bookstore.user.dao.impl; import java.util.arrayList; import java.util.list; import cn.hncu.bookstore.user.dao.dao.userdao; import cn.hncu.bookstore.user.vo.usermodel; import 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 (user user user) {// 1 Primer deserialize (leer) la lista de datos existente <Sermodel> list = fileIoutil.ReadFormFile (file_name); // 2 Determine si el usuario ya existe y luego decida si se debe crear para (usermodel usermodel: list) {// si los uuids de los dos usuarios son iguales, el usuario es el mismo if (usermodel.getuuid (). Equals (user.getuuid ()) {return False; // El usuario ya existe, return false}}}} // 3 si el usuario no existe, el usuario. Fileioutil.write2File (list, file_name); return true; // crea correctamente, return true} @Override public boolean delete (string uuid) {// 1 primero deserialize (read) la lista de datos existente <Sermodel> list = fileioutil.readformfile (file_name); // 2 Determine si el usuario ya existe, y luego decida si se eliminará // para (int i = 0; i <list.size (); i ++) {// if (list.get (i) .getuuid (). Equals (uuid)) {// list.remove (i); // fileioutil.write2file (list, file_name); // devolver verdadero; //} //} para (usermodel usermodel: list) {// Si los uuids de 2 usuarios son iguales, el usuario es el mismo if (usermodel.getuuid (). Equals (uuid)) {list.remove (usermodel); Fileioutil.write2File (list, file_name); // Eliminar correctamente, devolver verdadero retorno verdadero; }} // 3 El usuario no existe // Eliminar fallido, devolver falso return false; } @Override public Boolean Update (userModel User) {// 1 Deserialize (Read) la primera lista de datos existente <Sermodel> list = fileioutil.readformfile (file_name); // 2 Determine si el usuario ya existe, y luego decida si se puede crear para (int i = 0; i <list.size (); i ++) {// uuid no se puede cambiar. Encuentre los datos del usuario a través de UUID, y modifique que esté bien si (list.get (i) .getuuid (). Equals (user.getuuid ())) {// modifica el usuario encontrado a usuario list.set (i, user); Fileioutil.write2File (list, file_name); // Encuentra al usuario y devuelve verdadero retorno verdadero; }} // 3 Si el usuario no existe, la modificación no puede devolver falso; } @Override Public List <Ssermodel> getAll () {return FileIoutil.ReadFormFile (file_name); } @Override Public List <Ssermodel> GetByCondition (UserQueryModel uqm) {// TODO Auto Generado Método STUB return NULL; } @Override public usermodel getSingle (string uuid) {// 1 deserialize (read) la primera lista de datos existente <sermodel> list = fileioutil.readformfile (file_name); // 2 Determine si el usuario ya existe, y si existe, devuelva al usuario para (int i = 0; i <list.size (); i ++) {if (list.get (i) .getuuid (). Equals (uuid)) {return list.get (i); }} // 3 Si el usuario no existe, devuelve nulo return null; }}Clase addpanel:
cn.hncu.bookstore.user.ui;
Clase addpanel:
/ * * AddPanel.java * * creado en __date__, __time__ */paquete cn.hncu.bookstore.user.ui; import javax.swing.jframe; import cn.hncu.bookstore.user.business.ebi.userebi; import cn.hncu.bookstore.user.business.factory.userebifactory; import cn.hncu.bookstore.user.vo.usermodel; import cn.hncu.bookstore.util.fileioutil;/** **** @aaThor Chen Chen Chen Chen Chen La clase Addpanel extiende javax.swing.jpanel {private jframe mainframe = null; / ** Crea una nueva forma addpanel*/ public addpanel (jframe mainframe) {this.mainframe = mainframe; initComponents (); myInitData (); } private void myInitData () {for (usertypeenum type: usertypeenum.values ()) {combtype.additem (type.getName ()); }} /** Este método se llama desde dentro del constructor para* inicializar el formulario. * Advertencia: no modifique este código. El contenido de este método es * siempre regenerado por el editor de formulario. */// gen-begin: initComponents // <editor-fold defaultState = "collapsed" desc = "código generado"> privado 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 (nuevo Java.awt.Dimension (800, 600)); setLayout (nulo); jlabel1.setFont (nuevo java.awt.font ("Microsoft Yahei", 1, 48)); jlabel1.setForeground (nuevo java.awt.color (204, 0, 0)); jlabel1.settext ("/u6dfb/u52a0/u7528/u6237"); agregar (jlabel1); jlabel1.setBounds (270, 30, 230, 80); jlabel2.setFont (nuevo java.awt.font ("Microsoft Yahei", 0, 18)); jlabel2.settext ("/u7528/u6237/u7c7b/u578b:"); agregar (jlabel2); jlabel2.setBounds (40, 310, 90, 30); tfdname.setFont (nuevo java.awt.font ("diálogo", 1, 18)); tfdname.setAutoscrolls (falso); agregar (tfdname); tfdname.setBounds (420, 160, 120, 30); jlabel3.setFont (nuevo java.awt.font ("Microsoft Yahei", 0, 18)); jlabel3.settext ("uuid:"); agregar (jlabel3); jlabel3.setBounds (70, 160, 50, 30); tfduuid.setFont (nuevo java.awt.font ("diálogo", 0, 11)); agregar (tfduuid); tfduuid.setBounds (140, 160, 110, 30); jlabel4.setFont (nuevo java.awt.font ("Microsoft Yahei", 0, 18)); jlabel4.settext ("/u59d3/u540d:"); agregar (jlabel4); jlabel4.setBounds (360, 160, 50, 30); agregar (tfdpwd2); tfdpwd2.setBounds (420, 240, 170, 30); jlabel5.setFont (nuevo java.awt.font ("Microsoft Yahei", 0, 18)); jlabel5.settext ("/u5bc6/u7801:"); agregar (jlabel5); jlabel5.setBounds (70, 240, 50, 30); jlabel6.setFont (nuevo java.awt.font ("Microsoft Yahei", 0, 18)); jlabel6.settext ("/u786e/u8ba4/u5bc6/u7801:"); agregar (jlabel6); jlabel6.setBounds (330, 240, 90, 30); combtype.setfont (nuevo java.awt.font ("diálogo", 1, 18)); combtype.setforeground (nuevo java.awt.color (51, 51, 255)); combtype.setmodel (nuevo javax.swing.defaultcomboBoBoxModel (nueva cadena [] {"por favor seleccione ..."})); agregar (combtype); combtype.setBounds (140, 310, 160, 30); tfdpwd.setFont (nuevo java.awt.font ("安一", 1, 18)); agregar (tfdpwd); tfdpwd.setBounds (140, 240, 160, 30); btnadd.setFont (nuevo java.awt.font ("diálogo", 1, 24)); btnadd.setforeground (nuevo 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);}}); agregar (btnadd); btnadd.setBounds (140, 430, 120, 60); btnback.setFont (nuevo java.awt.font ("diálogo", 1, 24)); btnback.setForeground (nuevo 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);}}); agregar (btnback); btnback.setBounds (470, 430, 120, 60); } // </editor-fold> // gen-end: initComponents private void back () {mainframe.setContentPane (new ListPanel (mainframe)); mainframe.validate (); } / ***Escuchar el botón*@param Haga clic en escuchar el botón de retorno* / private void btnbackActionperformed (java.awt.event.actionEvent evt) {back (); } private void btnaddactionperformed (java.awt.event.actionEvent evt) {// 1 recopilar parámetros cadena uuid = tfduuid.gettext (); Name de cadena = tfdname.gettext (); String pwd = new String (tfdpwd.getPassword ()); String pwd2 = new String (tfdpwd2.getPassword ()); if (! pwd.equals (pwd2)) {joptionPane.showMessEdialog (nulo, "Las entradas de contraseña son inconsistentes las dos veces, ¡vuelva a ingresar!"); devolver; } int type = 0; intente {type = usertypeenum.gettypeByName (combtype.getSelectedItem () .ToString ()); } Catch (Exception e) {jOptionPane.ShowMessEdialog (NULL, "¡Especifique el tipo de usuario!"); devolver; } // 2 Organizar parámetros usermodel user = new Usermodel (); user.setName (nombre); user.setpwd (pwd); user.settype (tipo); user.setuuid (uuid); // 3 Llame a la capa lógica userebi ebi = userebifactory.getuserebi (); // 4Direct a diferentes páginas de acuerdo con el resultado devuelto por la llamada if (ebi.create (usuario)) {back (); } else {joptionPane.ShowMessEdialog (NULL, "¡Este usuario ya existe!"); }} // Gen -Begin: Variables // Declaración de variables - No modifique el privado javax.swing.jbutton btnadd; Javax.swing privado. JButton Btnback; Javax.swing.jomboBOX privado Combtype; privado javax.swing.jlabel jlabel1; privado javax.swing.jlabel jlabel2; privado javax.swing.jlabel jlabel3; privado javax.swing.jlabel jlabel4; privado javax.swing.jlabel jlabel5; privado javax.swing.jlabel jlabel6; privado javax.swing.jtextfield tfdname; privado javax.swing.jpasswordfield tfdpwd; privado javax.swing.jpasswordfield tfdpwd2; privado javax.swing.jtextfield tfduuid; // Declaración de finales de variables // Gen-END: Variables}Clase ListPanel:
cn.hncu.bookstore.user.ui;
Clase ListPanel:
/ * * ListPanel.java * * creado en __date__, __time__ */paquete cn.hncu.bookstore.user.ui; import java.util.list; import javax.swing.jframe; import cn.hncu.bookstore.user.business.ebi.userebi; importar; cn.hncu.bookstore.user.business.factory.useRebifactory; import cn.hncu.bookstore.user.vo.usermodel;/*** Panel de presentación de la lista de usuarios** @author Chen Haoxiang* @version 1.0*/public class Landpanel extiende javax.swing.jpanel {privado JFRAME = JFRAME = / ** Crea un nuevo formulario listPanel*/ public listPanel (jframe mainframe) {this.mainframe = mainframe; initComponents (); myInitData (); } / *** Lea todos los usuarios y agréguelos a la lista* / private void myInitData () {userebi user = userebifactory.getUserebi (); Lista <SerModel> list = user.getall (); UserLists.setListData (list.toarray ()); } /** Este método se llama desde dentro del constructor para* inicializar el formulario. * Advertencia: no modifique este código. El contenido de este método es * siempre regenerado por el editor de formulario. */// gen-begin: initComponents // <editor-fold DefaultState = "colapsed" desc = "código generado"> privado void initComponents () {jscrollPane1 = new javax.swing.jscrollPane (); UserLists = new javax.swing.jlist (); jlabel1 = new javax.swing.jlabel (); btntoadd = new javax.swing.jbutton (); setMinimumSize (nuevo Java.awt.Dimension (800, 600)); setLayout (nulo); UserLists.SetModel (new javax.swing.abstractListModel () {String [] Strings = {""}; public int getsize () {return strings.length;} public object getElementat (int i) {return Strings [i];}}); JSCrollPane1.SetViewPortView (UserLists); agregar (jscrollPane1); JScrollPane1.setBounds (150, 150, 480, 230); jlabel1.setFont (nuevo java.awt.font ("tahoma", 1, 48)); jlabel1.setForeground (nuevo java.awt.color (204, 0, 51)); jlabel1.settext ("usuario"); jlabel1.settext ("usuario"); jlabel1.setForeground (nuevo java.awt.color (204, 0, 51)); jlabel1.settext ("usuario"); Lista "); add (jlabel1); jlabel1.setBounds (270, 30, 260, 80); btntoadd.setfont (new java.awt.font (" diálogo ", 1, 18)); btntoadd.settext ("/u6dfb/u52a0/u7528/u6237 "); btntoadd.addactionListener (new java.awt.event.actionListener () {public Void ActionPerformed (Java.awt.event.ActionEvent Evt) {btntoaddactionperformed (evt);}}); </editor-fold> // gen-end: initComponents void btntoaddactionperformed (java.awt.event.actionEvent evt) {mainframe.setContentPane (new AddPanel (mainframe)); btntoadd;Clase USERMODEL:
cn.hncu.bookstore.user.vo;
Clase USERMODEL:
Módulo de objeto de valor de usuario:
paquete cn.hncu.bookstore.user.vo; import java.io.Serializable; import cn.hncu.bookstore.common.usertypeenum;/** * @author chen haoxiang * @version 1.0 * * <br/> * Valor Objeto utilizado para guardar información del usuario <BR/> * 1. Serializable <br/> * 2. Privatize Mers Método Setter-Getters <br/> * 3. Escribir iguales y método hashcode --- use el código de identificación único clave (UUID) principal <br/> * 4. Método de toString <br/> * 5. Método de construcción de parámetros vacíos <br/> */clase pública UserModel implementa serializable {Cadena privada UUID; // Código de identificación único de usuar pwd; // contraseña de usuario public Usermodel () {}/*** Función: Obtener código de identificación único de UUID-USER** @return return-user código de identificación único*/public string getuuid () {return uuid; } / *** Función: Establecer el código de identificación único de UUID-USER* @param UUID-USER Código de identificación único Tipo de cuerda Parámetro* / public void setuuid (string uuid) {this.uUid = uuid; } / *** Función: Obtenga el nombre de usuario del usuario* @return --- name-username* / public string getName () {return name; } / *** Función: Establezca el nombre de usuario del usuario** @param name-username establecido por el usuario, string type parámetro* / public void setName (nombre de cadena) {this.name = name; } / *** Función: Obtenga el tipo de usuario:* 1 - representa el administrador, y todas las operaciones se pueden realizar* 2 - Representa a la persona que puede operar el módulo de libro* 3 - Representa a la persona que puede operar el módulo de compra* 4 10 representa la persona que puede operar el módulo de ventas* 5 - Representa a la persona que puede operar el módulo de inventario* @ @@return user el tipo* / público intent gettype () {) } / *** Función: Establezca el tipo de usuario:* 1 - denotado como administrador, todas las operaciones se pueden realizar* 2 - denotado como persona que puede operar módulos de libros* 3 - denotado como persona que puede operar módulos de compra* 4 - denotado como persona que puede operar módulos de ventas* 5 - denotado como persona que puede operar módulos de inventario* @param type -type -type-tinte de type-intintinte de type-inta de type* / type de typet: {this.type = type; } / *** Función: Obtenga la contraseña del usuario* @return String Type, contraseña del usuario* / public String getpwd () {return pwd; } / *** Función: Establezca la contraseña del usuario* @param pwd-parámetro de tipo de cuerda* / public void setpwd (string pwd) {this.pwd = pwd; } @Override public int hashcode () {final int prime = 31; int resultado = 1; resultado = prime * resultado + ((uuid == null)? 0: uuid.hashcode ()); resultado de retorno; } @Override public boolean iguales (objeto obj) {if (this == obj) return true; if (obj == null) return false; if (getClass ()! = obj.getClass ()) return false; Usermodel otro = (usermodel) obj; if (uuid == null) {if (other.uuid! = null) return false; } else if (! uuid.equals (other.uuid)) return false; devolver verdadero; } @Override public string toString () {return uuid + "," + name + "," + usertypeenum.getNameByType (type); }}UserQueryModel Clase:
cn.hncu.bookstore.user.vo;
UserQueryModel Clase:
Aunque no hay código, ¡no se puede ignorar! Esto es lo que necesitas al buscar usuarios.
Escribí la razón de la serie.
paquete cn.hncu.bookstore.user.vo;/** * * @author chen haoxiang * * @version 1.0 */public classquerQueryModel extiende usermodel {}Clase FileIoutil:
cn.hncu.bookstore.util;
Clase FileIoutil:
paquete cn.hncu.bookstore.util; import java.io.file; import java.io.fileInputStream; import java.io.filenotfoundexception; import java.io.fileOutputStream; import java.io.ioexception; import java.io.ObjectInStream; import java.io.ObjectEn java.util.ArrayList;import java.util.List;import javax.swing.JOptionPane;/** * User public data read and write class* @author Chen Haoxiang* * @version 1.0 */public class FileIoUtil { public FileIoUtil() { } /** * Read all data from the database and return it* * @param fileName: (the file name corresponding to ¡La tabla de datos) * @return registra de todas las tablas! */@SupplesSwarnings ("sin verificar") // Presione Advertencia Public Static <E> List <E> ReadFormFile (String FileName) {list <E> list = new ArrayList <E> (); archivo final archivo = nuevo archivo (nombre de archivo); ObjectInputStream in = null; if (! file.exists ()) {//joptionPane.showMessEdialog(null, "¡La tabla de datos no existe!"); lista de devolución; } try {in = new ObjectInputStream (new FileInputStream (FileName)); intente {list = (list <E>) in.readObject (); } catch (ClassNotFoundException e) {E.PrintStackTrace (); }} Catch (FileNotFoundException e) {E.PrintStackTrace (); } catch (ioException e) {E.PrintStackTrace (); } finalmente {if (in! = null) {try {in.close (); } Catch (ioException e) {lanzar nueva runtimeException ("fallado de la base de datos cierres"); }}} Lista de retorno; } / ** * Escriba una colección de lista en el nombre de archivo del archivo de datos * * @param List (la recopilación de datos que debe almacenarse) * @param FileName (el nombre del archivo al que está escrito el archivo) * / public static <E> void write2File (list <E> list, string filenUncle) {ObjectOutPutStream out = null; prueba {out = new ObjectOutputStream (new FileOutputStream (FileName)); out.writeObject (lista); } catch (FileNotFoundException e) {E.PrintStackTrace (); } catch (ioException e) {E.PrintStackTrace (); } finalmente {if (out! = null) {try {out.close (); } Catch (ioException e) {Throw New RuntimeException ("¡Falló en la base de datos!"); }}}}}}}}} Clase de librería: (incluido el método principal)
cn.hncu.bookstore;
Clase de librería:
El método principal del módulo de usuario está en esta clase:
/ * * Bookstore.java * * creado en __date__, __time__ */paquete cn.hncu.bookstore; import cn.hncu.bookstore.user.ui.listpanel;/** * * @author chen haoxiang */public class Bookstore extiende javax.swing.jframe {/** initComponents (); this.setContentPane (nuevo listPanel (this)); this.setResizable (false); // this.setDefaultCloseOperation (EXIT_ON_CLOSE); } /** Este método se llama desde dentro del constructor para* inicializar el formulario. * Advertencia: no modifique este código. El contenido de este método es * siempre regenerado por el editor de formulario. */// gen-begin: initComponents // <editor-fold defaultState = "colapsed" desc = "código generado"> privado void initComponents () {menuBar = new 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 = new javax.swing.jmenuitem (); CutMenuitem = new javax.swing.jmenuitem (); editMenu = new javax.swing.jmenu (); CutMenuitem = new javax.swing.jmenuitem (); copyMenuitem = new javax.swing.jmenuitem (); pastoruitem = new javax.swing.jmenuitem (); deletemenuitem = new javax.swing.jmenuitem (); helpMenu = new javax.swing.jmenuitem (); ContentsMenuitem = new javax.swing.jmenuitem (); AboutMenuitem = new javax.swing.jmenuitem (); setDefaultCloseOperation (javax.swing.windowconstants.exit_on_close); setMinimumSize (nuevo Java.awt.Dimension (800, 600)); fileMenu.setText ("archivo"); OpenMenuitem.settext ("abierto"); fileMenu.add (OpenMenuitem); saveMenuitem.settext ("guardar"); fileMenu.add (SaveMenuitem); saveasmenuitem.settext ("Guardar como ..."); fileMenu.add (SaveasMenuitem); ExitMenuitem.settext ("Salir"); exitMenuitem.AdDactionListener (new java.awt.event.actionListener () {public void accionperformed (java.awt.event.actionEvent evt) {exitMenuitEmactionperformed (evt);}}); fileMenu.add (ExitMenuitem); Menubar.add (Filemenu); editMenu.setText ("editar"); CutMenuitem.settext ("CUT"); editMenu.add (CutMenuitem); copyMenuitem.setText ("copia"); editMenu.add (copyMenuitem); pastoruitem.settext ("pegar"); editmenu.add (pastoruito); deletemenuitem.settext ("eliminar"); editmenu.add (deletemenuitem); Menubar.Add (EditMenu); helpMenu.settext ("Ayuda"); ContentsMenuitem.settext ("Contenido"); helpMenu.add (contenidoMenuitem); AboutMenuitem.settext ("Acerca de"); Helpmenu.add (AboutMenuitem); Menubar.add (Helpmenu); setJMenubar (Menubar); javax.swing.grouplayout diseño = new javax.swing.grouplayout (getContentPane ()); getContentPane (). setLayout (diseño); Layout.SethorizontalGroup (Layout.CreateParAllelGroup (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)); embalar(); } // </editor-fold> // gen-end: initComponents vacío privado ExitMenuTEMActionperformed (java.awt.event.actionEvent evt) {// gen-first: event_exitmenuTEmactionperformed System.exit (0); } // Gen-Last: Event_ExitMenuitEmactionperformed/** * @param args los argumentos de la línea de comandos */public static void main (string args []) {java.awt.eventqueue.invokelater (new runnable () {public void run () {new BookStore (). SetVisible (verdadero);}); } // Gen -Begin: Variables // Declaración de variables: no modifique javax.swing.jmenuitem privado sobre Menuitem; Javax.swing privado. Jmenuitem ContentsMenuitem; Javax.swing privado. JMenuitem Copymenuitem; Javax.swing privado. Jmenuitem Cutmenuitem; privado javax.swing.jmenuitem Deletemenuitem; Javax.swing privado. JMenuitem ExitMenuitem; privado javax.swing.jmenu filemenu; Javax.swing.jmenu Helpmenu; Javax.swing privado.jmenubar Menubar; privado javax.swing.jmenuitem OpenMenuitem; Javax.swing privado. Jmenuitem Pastemenuitem; Javax.swing privado.jmenuitem Saveasmenuitem; Javax.swing privado. JMenuitem SaveMenuitem; // Declaración de finales de variables // Gen-END: Variables} Eso es todo por hoy, para continuar. . .
Hay un pequeño error en la adición actual, que es que al agregar un usuario, no ingresa nada.
¡Seleccione solo el tipo de usuario y también puede crearlo! Lo arreglaré la próxima vez.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.