Java設計模塊系列之書店治理體系單機版(二)。本站提示廣大學習愛好者:(Java設計模塊系列之書店治理體系單機版(二))文章只能為提供參考,不一定能成為您想要的結果。以下是Java設計模塊系列之書店治理體系單機版(二)正文
Java-單機版的書店治理體系(演習設計模塊和思惟_系列 一 ): http://www.jb51.net/article/91004.htm
引見
小提醒:下面一點有一個目次,可以疾速定位到本身須要看的類。
明天對後面的代碼有了小小的修正,讓代碼加倍完美了一點。
至於用戶獨一標識碼uuid,會在今後修正成法式外部生成的,
如今的uuid照樣由用戶本身設置。
明天對這個法式,添加了用戶界面的表示層的一部門,增長了公共類 列舉,
上面貼出今朝我寫的這個法式的全體代碼:我會逐步的寫完這個法式的,請年夜家寧神!(須要完成的功效在這個書店治理體系的系列一可以找到,我為這個系列的文章曾經分類了,便利年夜家尋覓)
這個系列的博客是不會斷的。
如今的代碼分層:
如今的法式運轉後的圖片:
我依照從目次下面到上面的次序貼出代碼:
請留意!這個代碼次序其實不是我寫代碼的次序!
假如你們要參考我的寫,請不要依照我貼的代碼的次序。
應當先寫公共類,對象類。
再次:數據層類—>邏輯層類—>表示層類
如今法式運轉後的部門圖片:
UserTypeEnum類:
cn.hncu.bookStore.common;
UserTypeEnum類:
package cn.hncu.bookStore.common;
/**
* 功效:用戶類型的列舉!<br/>
* 界說在公共模塊。<br/>
* 變量:<br/>
* ADMIN(1,"超等治理員"),<br/>
* BOOK(2,"圖書治理員"),<br/>
* IN(3,"進貨治理員"),<br/>
* OUT(4,"發賣治理員"),<br/>
* STOCK(5,"庫存治理員");<br/>
* @author chx
* @version 1.0
*/
public enum UserTypeEnum {
ADMIN(1,"超等治理員"),
BOOK(2,"圖書治理員"),
IN(3,"進貨治理員"),
OUT(4,"發賣治理員"),
STOCK(5,"庫存治理員");
private final int type;
private final String name;
/**
* 初始化列舉變量名字
* @param type---列舉變量對應的整型數字
* @param name---列舉變量對應的String型名字
*/
private UserTypeEnum(int type, String name) {
this.type=type;
this.name=name;
}
/**
* 獲得以後列舉變量的數字
* @return---type-編號
*/
public int getType() {
return type;
}
/**
* 獲得以後列舉變量的中文名字
* @return---name-中文名字
*/
public String getName() {
return name;
}
/**
* 依據列舉變量的int數字獲得數字對應的列舉變量的中文名字
* @param type---須要傳入的int型參數
* @return ---假如存在如許的數字對應的列舉變量,就前往這個列舉變量的中文名字。
* <br/>---假如不存在如許的數字對應的列舉變量,就拋出一個異常信息。
*/
public static String getNameByType(int type){
for(UserTypeEnum userType:UserTypeEnum.values()){
if(userType.getType()==type){
return userType.getName();
}
}
throw new IllegalArgumentException("列舉中沒有對應的用戶類型:"+type);
}
/**
* 依據列舉變量的name中文名字獲得name對應的列舉變量的int型type
* @param name---須要傳入的String型名字
* @return ---假如存在如許的名字對應的列舉變量,就前往這個列舉變量對應的type-int
* <br/> ---假如不存在如許的名字對應的列舉變量,就拋出一個異常信息
*/
public static int getTypeByName(String name){
for(UserTypeEnum userType:UserTypeEnum.values()){
if(userType.getName().equals(name)){
return userType.getType();
}
}
throw new IllegalArgumentException("列舉中沒有對應的用戶類型:"+name);
}
}
UserEbi接口:
cn.hncu.bookStore.user.business.ebi;
UserEbi接口:
package cn.hncu.bookStore.user.business.ebi;
import java.util.List;
import cn.hncu.bookStore.user.vo.UserModel;
import cn.hncu.bookStore.user.vo.UserQueryModel;
/**
* 邏輯層的接口
*
* @author chx
* @version 1.0
*/
public interface UserEbi {
/**
* 功效:創立一個用戶
*
* @param userModel---將要創立的用戶數據
* @return---true表現創立勝利,false表現創立掉敗
*/
public boolean create(UserModel user);
/**
* 功效:依據用戶的獨一標識碼uuid刪除一個用戶
*
* @param uuid---用戶獨一的標識碼,每一個用戶都不會雷同
* @return---true表現刪除勝利,false表現刪除掉敗
*/
public boolean delete(String uuid);
/**
* 功效:修正用戶的數據材料
*
* @param user---須要修正的用戶數據參數名
* @return 前往true-表現修正勝利了,前往false-表現修正掉敗
*/
public boolean update(UserModel user);
/**
* 功效:獲得一切的用戶數據
*
* @return---一個UserModel聚集,也就是用戶的數據
*/
public List<UserModel> getAll();
/**
* 功效:依照必定的查找前提停止查找,
* <br/>
* 把知足查找前提的用戶數據前往。
*
* @param uqm---被封裝的查找前提
* @return---知足查找前提的用戶數據聚集
*/
public List<UserModel> getbyCondition(UserQueryModel uqm);
/**
* 功效:獲得一個肯定的用戶的數據材料
*
* @param uuid---用戶獨一標識碼
* @return ---前往按這個獨一標識碼找到的用戶數據
*/
public UserModel getSingle(String uuid);
}
UserEbo類:
cn.hncu.bookStore.user.business.ebo;
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;
import cn.hncu.bookStore.user.dao.factory.UserDaoFactory;
import cn.hncu.bookStore.user.vo.UserModel;
import cn.hncu.bookStore.user.vo.UserQueryModel;
public class UserEbo implements UserEbi{
private UserDao dao = UserDaoFactory.getUserDao();
@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
public List<UserModel> getAll() {
return dao.getAll();
}
@Override
public List<UserModel> getbyCondition(UserQueryModel uqm) {
// TODO Auto-generated method stub
return null;
}
@Override
public UserModel getSingle(String uuid) {
return dao.getSingle(uuid);
}
}
UserEbiFactory類:
cn.hncu.bookStore.user.business.factory;
UserEbiFactory類:
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 UserEbi getUserEbi(){
return new UserEbo();
}
}
UserDao接口:
cn.hncu.bookStore.user.dao.dao;
UserDao接口:
package 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 陳浩翔
*
* @version 1.0
* 用戶模塊的數據層接口
*/
public interface UserDao {
/**
* 功效:創立一個用戶
*
* @param userModel---將要創立的用戶數據
* @return---true表現創立勝利,false表現創立掉敗
*/
public boolean create(UserModel user);
/**
* 功效:依據用戶的獨一標識碼uuid刪除一個用戶
*
* @param uuid---用戶獨一的標識碼,每一個用戶都不會雷同
* @return---true表現刪除勝利,false表現刪除掉敗
*/
public boolean delete(String uuid);
/**
* 功效:修正用戶的數據材料
*
* @param user---須要修正的用戶數據參數名
* @return 前往true-表現修正勝利了,前往false-表現修正掉敗
*/
public boolean update(UserModel user);
/**
* 功效:獲得一切的用戶數據
*
* @return---一個UserModel聚集,也就是用戶的數據
*/
public List<UserModel> getAll();
/**
* 功效:依照必定的查找前提停止查找,
* <br/>
* 把知足查找前提的用戶數據前往。
*
* @param uqm---被封裝的查找前提
* @return---知足查找前提的用戶數據聚集
*/
public List<UserModel> getbyCondition(UserQueryModel uqm);
/**
* 功效:獲得一個肯定的用戶的數據材料
*
* @param uuid---用戶獨一標識碼
* @return ---前往按這個獨一標識碼找到的用戶數據
*/
public UserModel getSingle(String uuid);
}
UserDaoFactory類:
cn.hncu.bookStore.user.dao.factory;
UserDaoFactory類:
package cn.hncu.bookStore.user.dao.factory;
import cn.hncu.bookStore.user.dao.dao.UserDao;
import cn.hncu.bookStore.user.dao.impl.UserDaoSerImpl;
/**
* 工場辦法<br/>
* new 一個dao的實例
* @author 陳浩翔
*
* @version 1.0
*
*/
public class UserDaoFactory {
public static UserDao getUserDao(){
return new UserDaoSerImpl();
}
}
UserDaoSerImpl類:
cn.hncu.bookStore.user.dao.impl;
UserDaoSerImpl類:
package 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/>
* 對用戶數據處置的詳細完成類 ----完成了UserDao接口
*
* @author 陳浩翔
*
* @version 1.0
*/
public class UserDaoSerImpl implements UserDao {
private static final String FILE_NAME = "User.txt";
@Override
public boolean create(UserModel user) {
// 1先把已有的數據反序列化(讀)出來
List<UserModel> list = FileIoUtil.readFormFile(FILE_NAME);
// 2斷定該用戶能否曾經存在,再決議能否創立
for (UserModel userModel : list) {
// 假如2個用戶的uuid相等,用戶就是雷同的
if (userModel.getUuid().equals(user.getUuid())) {
return false;// 用戶曾經存在了,前往false
}
}
// 3假如用戶不存在,就創立
list.add(user);
FileIoUtil.write2file(list, FILE_NAME);
return true;// 創立勝利,前往true
}
@Override
public boolean delete(String uuid) {
// 1先把已有的數據反序列化(讀)出來
List<UserModel> list = FileIoUtil.readFormFile(FILE_NAME);
// 2斷定該用戶能否曾經存在,再決議能否刪除
// for(int i=0;i<list.size();i++){
// if(list.get(i).getUuid().equals(uuid)){
// list.remove(i);
// FileIoUtil.write2file(list, FILE_NAME);
// return true;
// }
// }
for (UserModel userModel : list) {
// 假如2個用戶的uuid相等,用戶就是雷同的
if (userModel.getUuid().equals(uuid)) {
list.remove(userModel);
FileIoUtil.write2file(list, FILE_NAME);
// 刪除勝利,前往true
return true;
}
}
// 3用戶不存在
// 刪除掉敗,前往false
return false;
}
@Override
public boolean update(UserModel user) {
// 1先把已有的數據反序列化(讀)出來
List<UserModel> list = FileIoUtil.readFormFile(FILE_NAME);
// 2斷定該用戶能否曾經存在,再決議能否創立
for (int i = 0; i < list.size(); i++) {
// uuid是不克不及改的,經由過程uuid來找到誰人用戶數據,再修正就ok了
if (list.get(i).getUuid().equals(user.getUuid())) {
// 將找到的用戶修正成user
list.set(i, user);
FileIoUtil.write2file(list, FILE_NAME);
// 找到用戶,前往true
return true;
}
}
// 3若該用戶不存在,則修正掉敗
return false;
}
@Override
public List<UserModel> getAll() {
return FileIoUtil.readFormFile(FILE_NAME);
}
@Override
public List<UserModel> getbyCondition(UserQueryModel uqm) {
// TODO Auto-generated method stub
return null;
}
@Override
public UserModel getSingle(String uuid) {
// 1先把已有的數據反序列化(讀)出來
List<UserModel> list = FileIoUtil.readFormFile(FILE_NAME);
// 2斷定該用戶能否曾經存在,存在就前往誰人用戶
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getUuid().equals(uuid)) {
return list.get(i);
}
}
// 3若該用戶不存在,前往null
return null;
}
}
AddPanel類:
cn.hncu.bookStore.user.ui;
AddPanel類:
/*
* AddPanel.java
*
* Created on __DATE__, __TIME__
*/
package cn.hncu.bookStore.user.ui;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import cn.hncu.bookStore.common.UserTypeEnum;
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;
/**
*
* @author 陳浩翔
*/
public class AddPanel extends javax.swing.JPanel {
private JFrame mainFrame = null;
/** Creates new form AddPanel */
public AddPanel(JFrame mainFrame) {
this.mainFrame = mainFrame;
initComponents();
myInitData();
}
private void myInitData() {
for (UserTypeEnum type : UserTypeEnum.values()) {
combType.addItem(type.getName());
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
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("微軟雅黑", 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("微軟雅黑", 0, 18));
jLabel2.setText("\u7528\u6237\u7c7b\u578b:");
add(jLabel2);
jLabel2.setBounds(40, 310, 90, 30);
tfdName.setFont(new java.awt.Font("Dialog", 1, 18));
tfdName.setAutoscrolls(false);
add(tfdName);
tfdName.setBounds(420, 160, 120, 30);
jLabel3.setFont(new java.awt.Font("微軟雅黑", 0, 18));
jLabel3.setText("uuid:");
add(jLabel3);
jLabel3.setBounds(70, 160, 50, 30);
tfdUuid.setFont(new java.awt.Font("Dialog", 0, 11));
add(tfdUuid);
tfdUuid.setBounds(140, 160, 110, 30);
jLabel4.setFont(new java.awt.Font("微軟雅黑", 0, 18));
jLabel4.setText("\u59d3\u540d:");
add(jLabel4);
jLabel4.setBounds(360, 160, 50, 30);
add(tfdPwd2);
tfdPwd2.setBounds(420, 240, 170, 30);
jLabel5.setFont(new java.awt.Font("微軟雅黑", 0, 18));
jLabel5.setText("\u5bc6\u7801:");
add(jLabel5);
jLabel5.setBounds(70, 240, 50, 30);
jLabel6.setFont(new java.awt.Font("微軟雅黑", 0, 18));
jLabel6.setText("\u786e\u8ba4\u5bc6\u7801:");
add(jLabel6);
jLabel6.setBounds(330, 240, 90, 30);
combType.setFont(new java.awt.Font("Dialog", 1, 18));
combType.setForeground(new java.awt.Color(51, 51, 255));
combType.setModel(new javax.swing.DefaultComboBoxModel(
new String[] { "請選擇..." }));
add(combType);
combType.setBounds(140, 310, 160, 30);
tfdPwd.setFont(new java.awt.Font("宋體", 1, 18));
add(tfdPwd);
tfdPwd.setBounds(140, 240, 160, 30);
btnAdd.setFont(new java.awt.Font("Dialog", 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);
}
});
add(btnAdd);
btnAdd.setBounds(140, 430, 120, 60);
btnBack.setFont(new java.awt.Font("Dialog", 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);
}
});
add(btnBack);
btnBack.setBounds(470, 430, 120, 60);
}// </editor-fold>
//GEN-END:initComponents
private void back() {
mainFrame.setContentPane(new ListPanel(mainFrame));
mainFrame.validate();
}
/**
*監聽前往按鈕
* @param 前往按鈕的點擊監聽
*/
private void btnBackActionPerformed(java.awt.event.ActionEvent evt) {
back();
}
private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {
//1搜集參數
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.showMessageDialog(null, "兩次暗碼輸出紛歧致,請從新輸出!");
return;
}
int type = 0;
try {
type = UserTypeEnum.getTypeByName(combType.getSelectedItem()
.toString());
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "請指定用戶類型!");
return;
}
//2組織參數
UserModel user = new UserModel();
user.setName(name);
user.setPwd(pwd);
user.setType(type);
user.setUuid(uuid);
//3挪用邏輯層
UserEbi ebi = UserEbiFactory.getUserEbi();
//4依據挪用前往成果導向分歧頁面
if (ebi.create(user)) {
back();
} else {
JOptionPane.showMessageDialog(null, "該用戶曾經存在!");
}
}
//GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JButton btnAdd;
private javax.swing.JButton btnBack;
private javax.swing.JComboBox combType;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JTextField tfdName;
private javax.swing.JPasswordField tfdPwd;
private javax.swing.JPasswordField tfdPwd2;
private javax.swing.JTextField tfdUuid;
// End of variables declaration//GEN-END:variables
}
ListPanel類:
cn.hncu.bookStore.user.ui;
ListPanel類:
/*
* ListPanel.java
*
* Created on __DATE__, __TIME__
*/
package cn.hncu.bookStore.user.ui;
import java.util.List;
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;
/**
* 表示層-用戶列外面板
*
* @author 陳浩翔
* @version 1.0
*/
public class ListPanel extends javax.swing.JPanel {
private JFrame mainFrame = null;
/** Creates new form ListPanel */
public ListPanel(JFrame mainFrame) {
this.mainFrame = mainFrame;
initComponents();
myInitData();
}
/**
* 讀取一切用戶並添加進列表
*/
private void myInitData() {
UserEbi user = UserEbiFactory.getUserEbi();
List<UserModel> list = user.getAll();
userLists.setListData(list.toArray());
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
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 Object 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("User List");
add(jLabel1);
jLabel1.setBounds(270, 30, 260, 80);
btnToAdd.setFont(new java.awt.Font("Dialog", 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);
}
});
add(btnToAdd);
btnToAdd.setBounds(60, 420, 150, 50);
}// </editor-fold>
//GEN-END:initComponents
private void btnToAddActionPerformed(java.awt.event.ActionEvent evt) {
mainFrame.setContentPane(new AddPanel(mainFrame));
mainFrame.validate();
}
//GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JButton btnToAdd;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JList userLists;
// End of variables declaration//GEN-END:variables
}
UserModel類:
cn.hncu.bookStore.user.vo;
UserModel類:
用戶值對象模塊:
package cn.hncu.bookStore.user.vo;
import java.io.Serializable;
import cn.hncu.bookStore.common.UserTypeEnum;
/**
* @author 陳浩翔
* @version 1.0
*
* <br/>
* 用於保留用戶信息的值對象<br/>
* 1、可序列化<br/>
* 2、公有化一切變量成員,補setter-getters辦法<br/>
* 3、寫equals和hashCode辦法----用主鍵(uuid)獨一標識碼<br/>
* 4、toString辦法<br/>
* 5,空參結構辦法<br/>
*/
public class UserModel implements Serializable{
private String uuid;//用戶獨一標識碼
private String name;//用戶名
private int type;//用戶類型
private String pwd;//用戶暗碼
public UserModel() {
}
/**
* 功效:獲得uuid-用戶獨一的標識碼
*
* @return 前往uuid-用戶獨一的標識碼
*/
public String getUuid() {
return uuid;
}
/**
* 功效:設置uuid-用戶獨一的標識碼
* @param uuid-用戶獨一的標識碼-String型參數
*/
public void setUuid(String uuid) {
this.uuid = uuid;
}
/**
* 功效:獲得用戶的用戶名
* @return---name-用戶名
*/
public String getName() {
return name;
}
/**
* 功效:設置用戶的用戶名
*
* @param name--用戶設置的用戶名,String型參數
*/
public void setName(String name) {
this.name = name;
}
/**
* 功效:獲得用戶的類型:
* 1——表現為admin,可以停止全體操作
* 2——表現為能操作圖書模塊的人員
* 3——表現為能操作進貨模塊的人員
* 4——表現為能操作發賣模塊的人員
* 5——表現為能操作庫存模塊的人員
* @return 用戶的類型
*/
public int getType() {
return type;
}
/**
* 功效:設置用戶的類型:
* 1——表現為admin,可以停止全體操作
* 2——表現為能操作圖書模塊的人員
* 3——表現為能操作進貨模塊的人員
* 4——表現為能操作發賣模塊的人員
* 5——表現為能操作庫存模塊的人員
* @param type--用戶的類型-int型參數
*/
public void setType(int type) {
this.type = type;
}
/**
*功效:獲得用戶的暗碼
* @return String型,用戶的暗碼
*/
public String getPwd() {
return pwd;
}
/**
* 功效:設置用戶的暗碼
* @param pwd--String型參數
*/
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
UserModel other = (UserModel) obj;
if (uuid == null) {
if (other.uuid != null)
return false;
} else if (!uuid.equals(other.uuid))
return false;
return true;
}
@Override
public String toString() {
return uuid + "," + name + "," + UserTypeEnum.getNameByType(type);
}
}
UserQueryModel類:
cn.hncu.bookStore.user.vo;
UserQueryModel類:
固然沒有代碼,但不克不及不寫!這是查找用戶時須要的。
緣由我在系列一寫了。
package cn.hncu.bookStore.user.vo;
/**
*
* @author 陳浩翔
*
* @version 1.0
*/
public class UserQueryModel extends UserModel{
}
FileIoUtil類:
cn.hncu.bookStore.util;
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;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
/**
* 用戶的公用數據讀取寫入類
* @author 陳浩翔
*
* @version 1.0
*/
public class FileIoUtil {
public FileIoUtil() {
}
/**
* 從數據庫中讀取一切的數據並前往出來
*
* @param fileName:(數據表對應的文件名字)
* @return 一切表的記載!
*/
@SuppressWarnings("unchecked")//壓正告
public static<E> List<E> readFormFile(String fileName){
List<E> list = new ArrayList<E>();
final File file = new File(fileName);
ObjectInputStream in =null;
if(!file.exists()){
//JOptionPane.showMessageDialog(null, "數據表不存在!");
return list;
}
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();
}finally{
if(in!=null){
try {
in.close();
} catch (IOException e) {
throw new RuntimeException("數據庫封閉掉敗");
}
}
}
return list;
}
/**
* 寫入一個list聚集進入數據文件fileName
*
* @param list(須要存儲的數據聚集)
* @param fileName(寫入到哪一個文件的文件名字)
*/
public static<E> void write2file(List<E> list, String fileName){
ObjectOutputStream out = null;
try {
out = new ObjectOutputStream(new FileOutputStream(fileName));
out.writeObject(list);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(out!=null){
try {
out.close();
} catch (IOException e) {
throw new RuntimeException("數據庫封閉掉敗!");
}
}
}
}
}
BookStore類:(含main辦法)
cn.hncu.bookStore;
BookStore類:
用戶模塊的main辦法在這個類中:
/*
* BookStore.java
*
* Created on __DATE__, __TIME__
*/
package cn.hncu.bookStore;
import cn.hncu.bookStore.user.ui.ListPanel;
/**
*
* @author 陳浩翔
*/
public class BookStore extends javax.swing.JFrame {
/** Creates new form BookStore */
public BookStore() {
initComponents();
this.setContentPane(new ListPanel(this));
this.setResizable(false);//不克不及縮放
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
menuBar = new javax.swing.JMenuBar();
fileMenu = new javax.swing.JMenu();
openMenuItem = new javax.swing.JMenuItem();
saveMenuItem = new javax.swing.JMenuItem();
saveAsMenuItem = new javax.swing.JMenuItem();
exitMenuItem = new javax.swing.JMenuItem();
editMenu = new javax.swing.JMenu();
cutMenuItem = new javax.swing.JMenuItem();
copyMenuItem = new javax.swing.JMenuItem();
pasteMenuItem = new javax.swing.JMenuItem();
deleteMenuItem = new javax.swing.JMenuItem();
helpMenu = new javax.swing.JMenu();
contentsMenuItem = new javax.swing.JMenuItem();
aboutMenuItem = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setMinimumSize(new java.awt.Dimension(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(new 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("Paste");
editMenu.add(pasteMenuItem);
deleteMenuItem.setText("Delete");
editMenu.add(deleteMenuItem);
menuBar.add(editMenu);
helpMenu.setText("Help");
contentsMenuItem.setText("Contents");
helpMenu.add(contentsMenuItem);
aboutMenuItem.setText("About");
helpMenu.add(aboutMenuItem);
menuBar.add(helpMenu);
setJMenuBar(menuBar);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
getContentPane());
getContentPane().setLayout(layout);
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));
pack();
}// </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 the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new BookStore().setVisible(true);
}
});
}
//GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JMenuItem aboutMenuItem;
private javax.swing.JMenuItem contentsMenuItem;
private javax.swing.JMenuItem copyMenuItem;
private javax.swing.JMenuItem cutMenuItem;
private javax.swing.JMenuItem deleteMenuItem;
private javax.swing.JMenu editMenu;
private javax.swing.JMenuItem exitMenuItem;
private javax.swing.JMenu fileMenu;
private javax.swing.JMenu helpMenu;
private javax.swing.JMenuBar menuBar;
private javax.swing.JMenuItem openMenuItem;
private javax.swing.JMenuItem pasteMenuItem;
private javax.swing.JMenuItem saveAsMenuItem;
private javax.swing.JMenuItem saveMenuItem;
// End of variables declaration//GEN-END:variables
}
明天就寫到這裡的,未完待續。。。
今朝的添加有一個小bug,就是添加用戶時,甚麼都不輸出,
只選擇用戶類型,也能創立!下次我會修復的。
以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。