主要学习 增,删,改,查
1) 用户层 ,逻辑层 ,数据层的调用;
2) 数据的收集
3) 数据的封装
4) java对象的调用
5)枚举的实现
6)多态和重组
7)工具类的构造
8)文件的读写
逻辑层: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;
public interface UserEbi {
public boolean create(UserModel user);
public boolean delete(String uuid);
public boolean update(UserModel user);
public List<UserModel> getAll();
public UserModel getSingle(String uuid);
public List<UserModel> getBycondition(UserQueryModel upm);
}
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{
public boolean create(UserModel user) {
if(user.getName()!=null && user.getName().trim().length()<=0){
return false;
}
UserDao dao =UserDaoFactory.getUserDao();
return dao.create(user);
}
public boolean delete(String uuid) {
UserDao dao=UserDaoFactory.getUserDao();
return dao.delete(uuid);
}
public List<UserModel> getAll() {
UserDao dao=UserDaoFactory.getUserDao();
return dao.getAll();
}
public List<UserModel> getBycondition(UserQueryModel uqm) {
UserDao dao=UserDaoFactory.getUserDao();
return dao.getBycondition(uqm);
}
public UserModel getSingle(String uuid) {
UserDao dao=UserDaoFactory.getUserDao();
return dao.getSingle(uuid);
}
public boolean update(UserModel user) {
UserDao dao=UserDaoFactory.getUserDao();
return dao.update(user);
}
}
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();
}
}
数据层: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 <a href="mailto:729627398@qq.com">LZP</a>
* Aug 21, 2015
*/
public interface UserDao {
/**
* 如果数据库中不存在该user对象,则创建一个新的。如果存在,则直接返回false
* @param user 将要被创建的用户对象
* @return 如果创建成功则返回true,否则返回false
*/
public boolean create(UserModel user);
public boolean delete(String uuid);
public boolean update(UserModel user);
public List<UserModel> getAll();
public UserModel getSingle(String uuid);
public List<UserModel> getBycondition(UserQueryModel uqm);
}
factory中的UserDaoFactory
package cn.hncu.bookStore.user.dao.factory;
import cn.hncu.bookStore.user.dao.dao.UserDao;
import cn.hncu.bookStore.user.dao.impl.UserDaoImpl;
public class UserDaoFactory {
public static UserDao getUserDao(){
return new UserDaoImpl();
}
}
实现类impl中UserDaoFactory
/**
*
*/
package cn.hncu.bookStore.user.dao.impl;
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 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;
/**
* @author <a href="mailto:729627398@qq.com">廖ZP</a>
* <br>Aug 21, 2015
*/
public class UserDaoImpl implements UserDao {
private final String FILE_NAME="User.txt";
@SuppressWarnings("unchecked")
public boolean create(UserModel user) {
List<UserModel> list = getAll();
if(list!=null){
//遍历list,如果其中存在user则返回false,否则把user存入数据库
for(UserModel u:list){
if(u.getUuid().equals(user.getUuid())){
return false;
}
}
}
list.add(user);
//把更新后的list存入数据库
FileIOUtil.write2File(FILE_NAME, list);
return false;
}
public boolean delete(String uuid) {
List<UserModel> list =getAll();
for(int i=0;i<list.size();i++){
final UserModel user=list.get(i);
if(user.getUuid().equals(uuid)){
list.remove(i);
FileIOUtil.write2File(FILE_NAME, list);
return true;
}
}
return false;
}
@SuppressWarnings("unchecked")
public List<UserModel> getAll() {
List<?> list = FileIOUtil.readFromFile(FILE_NAME);
return (List<UserModel>)list;
}
public List<UserModel> getBycondition(UserQueryModel uqm) {
//1从后台把所有的数据集读取出来
List<UserModel> list = getAll();
List<UserModel> ret = new ArrayList<UserModel>();//存放结果集
if(uqm==null){
return list;
}
//2利用卫条件来进行筛选
//3筛选剩下的就是查询结果集
for(UserModel user:list){
//卫条件,判断uuid
if( uqm.getUuid()!=null && uqm.getUuid().trim().length()>0){//先验证查询条件有效
if(!uqm.getUuid().equals(user.getUuid()) ){ //再进行精确查询
continue;
}
}
//卫条件,判断用户名
if( uqm.getName()!=null && uqm.getName().trim().length()>0){//先验证查询条件有效
if(!user.getName().contains(uqm.getName().trim()) ){ //再进行模糊查询
continue;
}
}
//卫条件,判断用户类型,int型
if(uqm.getType()>0){ //先验证查询条件有效,大于0才代表有输入
if( uqm.getType()!=user.getType() ){
continue;
}
}
ret.add(user);
}
return ret;
}
public UserModel getSingle(String uuid) {
List<UserModel> list=getAll();
for(int i=0;i<list.size();i++){
final UserModel user = list.get(i);
if(user.getUuid().equals(uuid)){
return user;
}
}
return null;
}
public boolean update(UserModel user) {
List<UserModel> list=getAll();
for(int i=0;i<list.size();i++){
final UserModel user0=list.get(i);
if(user0.getUuid().equals(user.getUuid())){
list.set(i,user);
FileIOUtil.write2File(FILE_NAME, list);
return true;
}
}
return false;
}
public static void main(String[] args) {
UserDaoImpl dao = new UserDaoImpl();
dao.create(new UserModel("001","Jack",1,"1234"));
dao.create(new UserModel("002","汉字",2,"1234"));
List<UserModel> list = dao.getAll();
System.out.println(list);
}
}
用户层:ui
增加面板 AddPanel
package cn.hncu.bookStore.user.ui;
import java.awt.GridBagLayout;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Rectangle;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import cn.hncu.bookStore.user.business.ebi.UserEbi;
import cn.hncu.bookStore.user.business.factory.UserEbiFactory;
import cn.hncu.bookStore.user.constance.UserTypeEnum;
import cn.hncu.bookStore.user.vo.UserModel;
import cn.hncu.bookStore.util.PanelUtil;
public class AddPanel extends JPanel {
private static final long serialVersionUID = 1L;
private JLabel jLabel = null;
private JLabel jLabel1 = null;
private JLabel jLabel2 = null;
private JLabel jLabel3 = null;
private JLabel jLabel4 = null;
private JLabel jLabel5 = null;
private JButton btnadd = null;
private JButton btnback = null;
private JTextField textUuid = null;
private JTextField textName = null;
private JTextField textPwd = null;
private JTextField textPwd2 = null;
private JComboBox combType = null;
/**
* This is the default constructor
*/
private JFrame jFrame=null;
public AddPanel(JFrame jFrame) {
this.jFrame=jFrame;
initialize();
}
public AddPanel() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
jLabel5 = new JLabel();
jLabel5.setBounds(new Rectangle(77, 204, 83, 33));
jLabel5.setText("用户类型:");
jLabel4 = new JLabel();
jLabel4.setBounds(new Rectangle(431, 146, 76, 36));
jLabel4.setText("确认密码:");
jLabel3 = new JLabel();
jLabel3.setBounds(new Rectangle(79, 146, 80, 31));
jLabel3.setText("密码:");
jLabel2 = new JLabel();
jLabel2.setBounds(new Rectangle(430, 80, 76, 41));
jLabel2.setText("姓名:");
jLabel1 = new JLabel();
jLabel1.setBounds(new Rectangle(81, 87, 74, 33));
jLabel1.setText("uuid:");
jLabel = new JLabel();
jLabel.setBounds(new Rectangle(268, 19, 146, 46));
jLabel.setFont(new Font("Dialog", Font.BOLD, 24));
jLabel.setText("增加列表");
this.setSize(800, 600);
this.setLayout(null);
this.setFont(new Font("Dialog", Font.PLAIN, 24));
this.add(jLabel, null);
this.add(jLabel1, null);
this.add(jLabel2, null);
this.add(jLabel3, null);
this.add(jLabel4, null);
this.add(jLabel5, null);
this.add(getBtnadd(), null);
this.add(getBtnback(), null);
this.add(getTextUuid(), null);
this.add(getTextName(), null);
this.add(getTextPwd(), null);
this.add(getTextPwd2(), null);
this.add(getCombType(), null);
}
/**
* This method initializes btnadd
*
* @return javax.swing.JButton
*/
private JButton getBtnadd() {
if (btnadd == null) {
btnadd = new JButton();
btnadd.setBounds(new Rectangle(61, 274, 150, 65));
btnadd.setText("增加");
btnadd.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
//1 收集数据
String uuid = textUuid.getText();
String name = textName.getText();
if(name.trim().length()<=0){
JOptionPane.showMessageDialog(null, "用户名不能为空!");
return;
}
String pwd = textPwd.getText();
String pwd2 = textPwd2.getText();
//要判断两次密码是否一致
if(!pwd.equals(pwd2)){
JOptionPane.showMessageDialog(null, "您输入的两次密码不一致,请重新输入...");
return;
}
//用户类型
String selStr = combType.getSelectedItem().toString();
int type = UserTypeEnum.getTypeByName(selStr);
//2 组织数据
UserModel user = new UserModel();
user.setUuid(uuid);
user.setName(name);
user.setPwd(pwd);
user.setType(type);
//3 调用逻辑层ebi
UserEbi ebi = UserEbiFactory.getUserEbi();
boolean success = ebi.create(user);
//4 根据逻辑层的返回结果,选择转到不同的结果页面
if(success){
PanelUtil.changePanel(jFrame, new ListPanel(jFrame));
}else{
JOptionPane.showMessageDialog(null, "该用户已经存在");
}
}
});
}
return btnadd;
}
/**
* This method initializes btnback
*
* @return javax.swing.JButton
*/
private JButton getBtnback() {
if (btnback == null) {
btnback = new JButton();
btnback.setBounds(new Rectangle(406, 274, 137, 63));
btnback.setText("返回");
btnback.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
jFrame.getContentPane().removeAll();
jFrame.getContentPane().add(new ListPanel(jFrame));
jFrame.getContentPane().validate();
jFrame.getContentPane().repaint();
}
});
}
return btnback;
}
/**
* This method initializes textUuid
*
* @return javax.swing.JTextField
*/
private JTextField getTextUuid() {
if (textUuid == null) {
textUuid = new JTextField();
textUuid.setBounds(new Rectangle(180, 90, 127, 34));
}
return textUuid;
}
/**
* This method initializes textName
*
* @return javax.swing.JTextField
*/
private JTextField getTextName() {
if (textName == null) {
textName = new JTextField();
textName.setBounds(new Rectangle(530, 82, 122, 38));
}
return textName;
}
/**
* This method initializes textPwd
*
* @return javax.swing.JTextField
*/
private JTextField getTextPwd() {
if (textPwd == null) {
textPwd = new JTextField();
textPwd.setBounds(new Rectangle(180, 148, 135, 32));
}
return textPwd;
}
/**
* This method initializes textPwd2
*
* @return javax.swing.JTextField
*/
private JTextField getTextPwd2() {
if (textPwd2 == null) {
textPwd2 = new JTextField();
textPwd2.setBounds(new Rectangle(531, 148, 123, 32));
}
return textPwd2;
}
/**
* This method initializes combType
*
* @return javax.swing.JComboBox
*/
private JComboBox getCombType() {
if (combType == null) {
combType = new JComboBox();
combType.setBounds(new Rectangle(183, 210, 137, 40));
//从枚举对象中把各种用户类型添加到该组合框控件
for(UserTypeEnum type: UserTypeEnum.values()){
combType.addItem( type.getName());
}
}
return combType;
}
} // @jve:decl-index=0:visual-constraint="43,9"
删除类 DeletePanel
package cn.hncu.bookStore.user.ui;
import java.awt.GridBagLayout;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Rectangle;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JButton;
import cn.hncu.bookStore.user.business.ebi.UserEbi;
import cn.hncu.bookStore.user.business.factory.UserEbiFactory;
import cn.hncu.bookStore.user.constance.UserTypeEnum;
import cn.hncu.bookStore.user.vo.UserModel;
import cn.hncu.bookStore.util.PanelUtil;
public class DeletePanel extends JPanel {
private static final long serialVersionUID = 1L;
private JLabel jLabel = null;
private JLabel jLabel1 = null;
private JTextField textUuid = null;
private JLabel jLabel2 = null;
private JTextField textName = null;
private JComboBox ComeUser = null;
private JLabel jLabel3 = null;
private JButton btnUser = null;
private JButton btnBack = null;
private JFrame jFrame=null;
private UserModel initUser=null;
/**
* This is the default constructor
*/
public DeletePanel(JFrame jFrame,String uuid) {
this.jFrame=jFrame;
initUser=UserEbiFactory.getUserEbi().getSingle(uuid);
initialize();
}
public DeletePanel() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
jLabel3 = new JLabel();
jLabel3.setBounds(new Rectangle(93, 196, 67, 40));
jLabel3.setText("用户类型:");
jLabel2 = new JLabel();
jLabel2.setBounds(new Rectangle(399, 102, 72, 48));
jLabel2.setText("姓名:");
jLabel1 = new JLabel();
jLabel1.setBounds(new Rectangle(95, 112, 50, 30));
jLabel1.setText("uuid:");
jLabel = new JLabel();
jLabel.setBounds(new Rectangle(248, 19, 160, 53));
jLabel.setFont(new Font("Dialog", Font.BOLD, 24));
jLabel.setText("删除用户");
this.setSize(800, 600);
this.setLayout(null);
this.add(jLabel, null);
this.add(jLabel1, null);
this.add(getTextUuid(), null);
this.add(jLabel2, null);
this.add(getTextName(), null);
this.add(getComeUser(), null);
this.add(jLabel3, null);
this.add(getBtnUser(), null);
this.add(getBtnBack(), null);
}
/**
* This method initializes textUuid
*
* @return javax.swing.JTextField
*/
private JTextField getTextUuid() {
if (textUuid == null) {
textUuid = new JTextField();
textUuid.setBounds(new Rectangle(165, 109, 130, 42));
//初始化数据
String uuid=initUser.getUuid();
textUuid.setText(uuid);
textUuid.setEditable(false);
}
return textUuid;
}
/**
* This method initializes textName
*
* @return javax.swing.JTextField
*/
private JTextField getTextName() {
if (textName == null) {
textName = new JTextField();
textName.setBounds(new Rectangle(489, 106, 133, 44));
// 数据初始化
String name=initUser.getName();
textName.setText(name);
}
return textName;
}
/**
* This method initializes ComeUser
*
* @return javax.swing.JComboBox
*/
private JComboBox getComeUser() {
if (ComeUser == null) {
ComeUser = new JComboBox();
ComeUser.setBounds(new Rectangle(172, 194, 128, 45));
//初始化数据
for(UserTypeEnum type : UserTypeEnum.values()){
ComeUser.addItem(type.getName());
if(type.getType()==initUser.getType()){
ComeUser.setSelectedItem(type.getName());
}
}
}
return ComeUser;
}
/**
* This method initializes btnUser
*
* @return javax.swing.JButton
*/
private JButton getBtnUser() {
if (btnUser == null) {
btnUser = new JButton();
btnUser.setBounds(new Rectangle(92, 275, 148, 64));
btnUser.setText("删除");
btnUser.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
//1.手机参数
//2.组织参数
// 3.调用逻辑层ebi
UserEbi ebi=UserEbiFactory.getUserEbi();
boolean success=ebi.delete(textUuid.getText());
//4.根据逻辑层的返回结果,选择转到不用的结果页面
if(success){
PanelUtil.changePanel(jFrame, new ListPanel(jFrame));
}else{
JOptionPane.showMessageDialog(null,"该用户已经不存在。。");
}
}
});
}
return btnUser;
}
/**
* This method initializes btnBack
*
* @return javax.swing.JButton
*/
private JButton getBtnBack() {
if (btnBack == null) {
btnBack = new JButton();
btnBack.setBounds(new Rectangle(381, 276, 158, 66));
btnBack.setText("返回");
btnBack.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
PanelUtil.changePanel(jFrame, new ListPanel(jFrame));
}
});
}
return btnBack;
}
}
用户列表 listPanel
package cn.hncu.bookStore.user.ui;
import java.awt.GridBagLayout;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JList;
import javax.swing.JButton;
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.PanelUtil;
import java.awt.Font;
import java.util.List;
public class ListPanel extends JPanel {
private static final long serialVersionUID = 1L;
private JLabel jLabel = null;
private JScrollPane jScrollPane = null;
private JList jList = null;
private JButton btnToAdd = null;
private List<UserModel> list=null;
private JFrame jFrame=null;
private JButton btnToUpdate = null;
private JButton btnToDelete = null;
private JButton btnQuery = null;
public ListPanel(JFrame jFrame) {
this.jFrame=jFrame;
initialize();
//调用逻辑层,把原有的用户载到list当中
list = UserEbiFactory.getUserEbi().getAll();
initialize();
}
public ListPanel() {
super();
initialize();
}
public ListPanel(JFrame jFrame, List<UserModel> ret) {//专用于显示查询结果的ListPanel
this.jFrame = jFrame;
list = ret;
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
jLabel = new JLabel();
jLabel.setBounds(new Rectangle(270, 12, 163, 44));
jLabel.setFont(new Font("Dialog", Font.BOLD, 24));
jLabel.setText("用户列表");
this.setSize(800, 600);
this.setLayout(null);
this.add(jLabel, null);
this.add(getJScrollPane(), null);
this.add(getBtnToAdd(), null);
this.add(getBtnToUpdate(), null);
this.add(getBtnToDelete(), null);
this.add(getBtnQuery(), null);
}
/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new Rectangle(205, 75, 416, 316));
jScrollPane.setViewportView(getJList());
}
return jScrollPane;
}
/**
* This method initializes jList
*
* @return javax.swing.JList
*/
private JList getJList() {
if (jList == null) {
jList = new JList();
//把从逻辑层载入的数据list放到控件中显示
if(list!=null){
jList.setListData(list.toArray());
}
}
return jList;
}
/**
* This method initializes btnToAdd
*
* @return javax.swing.JButton
*/
private JButton getBtnToAdd() {
if (btnToAdd == null) {
btnToAdd = new JButton();
btnToAdd.setBounds(new Rectangle(95, 428, 129, 65));
btnToAdd.setText("转到增加");
btnToAdd.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
jFrame.getContentPane().removeAll();
jFrame.getContentPane().add(new AddPanel(jFrame));
jFrame.getContentPane().validate();
jFrame.getContentPane().repaint();
}
});
}
return btnToAdd;
}
/**
* This method initializes btnToUpdate
*
* @return javax.swing.JButton
*/
private JButton getBtnToUpdate() {
if (btnToUpdate == null) {
btnToUpdate = new JButton();
btnToUpdate.setBounds(new Rectangle(288, 431, 124, 68));
btnToUpdate.setText("转到修改");
btnToUpdate.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
UserModel user = (UserModel) jList.getSelectedValue();
if(user==null){
JOptionPane.showMessageDialog(null,"请选择要修改的用户。。");
return;
}
PanelUtil.changePanel(jFrame, new UpDatePanel(jFrame,user.getUuid()));
}
});
}
return btnToUpdate;
}
/**
* This method initializes btnToDelete
*
* @return javax.swing.JButton
*/
private JButton getBtnToDelete() {
if (btnToDelete == null) {
btnToDelete = new JButton();
btnToDelete.setBounds(new Rectangle(455, 433, 132, 68));
btnToDelete.setText("转到删除");
btnToDelete.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
UserModel user= (UserModel) jList.getSelectedValue();
if(user==null){
JOptionPane.showMessageDialog(null,"请选择要删除的用户。。");
return;
}
PanelUtil.changePanel(jFrame, new DeletePanel(jFrame,user.getUuid())); }
});
}
return btnToDelete;
}
/**
* This method initializes btnQuery
*
* @return javax.swing.JButton
*/
private JButton getBtnQuery() {
if (btnQuery == null) {
btnQuery = new JButton();
btnQuery.setBounds(new Rectangle(620, 438, 123, 67));
btnQuery.setText("转到查询");
btnQuery.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
PanelUtil.changePanel(jFrame, new QueryPanel(jFrame));
}
});
}
return btnQuery;
}
}
查询列表 QueryPanel
package cn.hncu.bookStore.user.ui;
import java.awt.GridBagLayout;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Rectangle;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JButton;
import cn.hncu.bookStore.user.business.ebi.UserEbi;
import cn.hncu.bookStore.user.business.factory.UserEbiFactory;
import cn.hncu.bookStore.user.constance.UserTypeEnum;
import cn.hncu.bookStore.user.vo.UserModel;
import cn.hncu.bookStore.user.vo.UserQueryModel;
import cn.hncu.bookStore.util.PanelUtil;
public class QueryPanel extends JPanel {
private static final long serialVersionUID = 1L;
private JLabel jLabel = null;
private JLabel jLabel1 = null;
private JLabel jLabel2 = null;
private JLabel jLabel3 = null;
private JTextField textUuid = null;
private JTextField textName = null;
private JComboBox ComUser = null;
private JButton btnQuery = null;
private JButton btnBack = null;
private JFrame jFrame=null;
/**
* This is the default constructor
*/
public QueryPanel(JFrame jFrame) {
this.jFrame=jFrame;
initialize();
}
public QueryPanel() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
jLabel3 = new JLabel();
jLabel3.setBounds(new Rectangle(178, 133, 77, 30));
jLabel3.setText("用户列表:");
jLabel2 = new JLabel();
jLabel2.setBounds(new Rectangle(450, 70, 67, 33));
jLabel2.setText("姓名:");
jLabel1 = new JLabel();
jLabel1.setBounds(new Rectangle(178, 70, 72, 30));
jLabel1.setText("uuid:");
jLabel = new JLabel();
jLabel.setBounds(new Rectangle(328, 14, 177, 40));
jLabel.setText("查询列表");
this.setSize(800, 600);
this.setLayout(null);
this.add(jLabel, null);
this.add(jLabel1, null);
this.add(jLabel2, null);
this.add(jLabel3, null);
this.add(getTextUuid(), null);
this.add(getTextName(), null);
this.add(getComUser(), null);
this.add(getBtnQuery(), null);
this.add(getBtnBack(), null);
}
/**
* This method initializes textUuid
*
* @return javax.swing.JTextField
*/
private JTextField getTextUuid() {
if (textUuid == null) {
textUuid = new JTextField();
textUuid.setBounds(new Rectangle(274, 69, 83, 35));
}
return textUuid;
}
/**
* This method initializes textName
*
* @return javax.swing.JTextField
*/
private JTextField getTextName() {
if (textName == null) {
textName = new JTextField();
textName.setBounds(new Rectangle(529, 71, 122, 32));
}
return textName;
}
/**
* This method initializes ComUser
*
* @return javax.swing.JComboBox
*/
private JComboBox getComUser() {
if (ComUser == null) {
ComUser = new JComboBox();
ComUser.setBounds(new Rectangle(274, 133, 97, 31));
ComUser.addItem("请选择。。");
for(UserTypeEnum type:UserTypeEnum.values()){
ComUser.addItem(type.getName());
}
return ComUser;
}
return ComUser;
}
/**
* This method initializes btnQuery
*
* @return javax.swing.JButton
*/
private JButton getBtnQuery() {
if (btnQuery == null) {
btnQuery = new JButton();
btnQuery.setBounds(new Rectangle(186, 220, 157, 62));
btnQuery.setText("查询");
btnQuery.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
//收集数据
String uuid=textUuid.getText();
String name=textName.getText();
// 用户类型
int type=0;
if(ComUser.getSelectedIndex()>0){
String selStr=ComUser.getSelectedItem().toString();
type=UserTypeEnum.getTypeByName(selStr);
}
//组织数据(封装的查询条件,值对象)
UserQueryModel uqm=new UserQueryModel();
uqm.setUuid(uuid);
uqm.setName(name);
uqm.setType(type);
// 调用逻辑层
UserEbi ebi=UserEbiFactory.getUserEbi();
List<UserModel> ret=ebi.getBycondition(uqm);
//根据逻辑层的返回结果,选择转到不同的结果页面
PanelUtil.changePanel(jFrame,new ListPanel(jFrame,ret));
}
});
}
return btnQuery;
}
/**
* This method initializes btnBack
*
* @return javax.swing.JButton
*/
private JButton getBtnBack() {
if (btnBack == null) {
btnBack = new JButton();
btnBack.setBounds(new Rectangle(436, 217, 155, 66));
btnBack.setText("返回");
btnBack.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
PanelUtil.changePanel(jFrame,new ListPanel(jFrame));
}
});
}
return btnBack;
}
}
更新列表 UpDatePanel
package cn.hncu.bookStore.user.ui;
import java.awt.GridBagLayout;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import cn.hncu.bookStore.user.business.ebi.UserEbi;
import cn.hncu.bookStore.user.business.factory.UserEbiFactory;
import cn.hncu.bookStore.user.constance.UserTypeEnum;
import cn.hncu.bookStore.user.vo.UserModel;
import cn.hncu.bookStore.util.PanelUtil;
public class UpDatePanel extends JPanel {
private static final long serialVersionUID = 1L;
private JLabel jLabel = null;
private JLabel jLabel1 = null;
private JLabel jLabel2 = null;
private JLabel jLabel3 = null;
private JLabel jLabel4 = null;
private JLabel jLabel5 = null;
private JButton btnUpdate = null;
private JButton btnBack = null;
private JTextField txtUuid = null;
private JTextField txtName = null;
private JTextField txtPwd = null;
private JTextField txtPwd2 = null;
private JComboBox comUser = null;
private JFrame jFrame=null;
private UserModel initUser=null;
/**
* This is the default constructor
*/
public UpDatePanel() {
super();
initialize();
}
public UpDatePanel(JFrame jFrame,String uuid) {
this.jFrame=jFrame;
initUser = UserEbiFactory.getUserEbi().getSingle(uuid);
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
jLabel5 = new JLabel();
jLabel5.setBounds(new Rectangle(82, 205, 107, 48));
jLabel5.setText("用户类型:");
jLabel4 = new JLabel();
jLabel4.setBounds(new Rectangle(432, 144, 93, 34));
jLabel4.setText("确认密码:");
jLabel3 = new JLabel();
jLabel3.setBounds(new Rectangle(84, 150, 103, 31));
jLabel3.setText("密码:");
jLabel2 = new JLabel();
jLabel2.setBounds(new Rectangle(438, 87, 86, 34));
jLabel2.setText("姓名:");
jLabel1 = new JLabel();
jLabel1.setBounds(new Rectangle(84, 93, 99, 29));
jLabel1.setText("UUid");
jLabel = new JLabel();
jLabel.setBounds(new Rectangle(278, 17, 168, 52));
jLabel.setText("修改列表");
this.setSize(800, 600);
this.setLayout(null);
this.add(jLabel, null);
this.add(jLabel1, null);
this.add(jLabel2, null);
this.add(jLabel3, null);
this.add(jLabel4, null);
this.add(jLabel5, null);
this.add(getBtnUpdate(), null);
this.add(getBtnBack(), null);
this.add(getTxtUuid(), null);
this.add(getTxtName(), null);
this.add(getTxtPwd(), null);
this.add(getTxtPwd2(), null);
this.add(getComUser(), null);
}
/**
* This method initializes btnUpdate
*
* @return javax.swing.JButton
*/
private JButton getBtnUpdate() {
if (btnUpdate == null) {
btnUpdate = new JButton();
btnUpdate.setBounds(new Rectangle(114, 285, 136, 66));
btnUpdate.setText("修改");
btnUpdate.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
//1 收集数据
String uuid = txtUuid.getText();
String name = txtName.getText();
if(name.trim().length()<=0){
JOptionPane.showMessageDialog(null, "用户名不能为空!");
return;
}
String pwd = new String(txtPwd.getText());
String pwd2 = new String(txtPwd2.getText());
//要判断两次密码是否一致
if(!pwd.equals(pwd2)){
JOptionPane.showMessageDialog(null, "您输入的两次密码不一致,请重新输入...");
return;
}
//用户类型
String selStr = comUser.getSelectedItem().toString();
int type = UserTypeEnum.getTypeByName(selStr);
//2 组织数据
UserModel user = new UserModel();
user.setUuid(uuid);
user.setName(name);
user.setPwd(pwd);
user.setType(type);
//3 调用逻辑层ebi
UserEbi ebi = UserEbiFactory.getUserEbi();
boolean success = ebi.update(user);
//4 根据逻辑层的返回结果,选择转到不同的结果页面
if(success){
PanelUtil.changePanel(jFrame, new ListPanel(jFrame));
}else{
JOptionPane.showMessageDialog(null, "该用户已经不存在");
}
}
});
}
return btnUpdate;
}
/**
* This method initializes btnBack
*
* @return javax.swing.JButton
*/
private JButton getBtnBack() {
if (btnBack == null) {
btnBack = new JButton();
btnBack.setBounds(new Rectangle(408, 283, 156, 67));
btnBack.setText("返回");
btnBack.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
PanelUtil.changePanel(jFrame, new ListPanel(jFrame));
}
});
}
return btnBack;
}
/**
* This method initializes txtUuid
*
* @return javax.swing.JTextField
*/
private JTextField getTxtUuid() {
if (txtUuid == null) {
txtUuid = new JTextField();
txtUuid.setBounds(new Rectangle(210, 94, 110, 30));
//初始化数据
String uuid=initUser.getUuid();
txtUuid.setText(uuid);
txtUuid.setEditable(false);
}
return txtUuid;
}
/**
* This method initializes txtName
*
* @return javax.swing.JTextField
*/
private JTextField getTxtName() {
if (txtName == null) {
txtName = new JTextField();
txtName.setBounds(new Rectangle(548, 88, 113, 28));
String name=initUser.getName();
txtName.setText(name);
}
return txtName;
}
/**
* This method initializes txtPwd
*
* @return javax.swing.JTextField
*/
private JTextField getTxtPwd() {
if (txtPwd == null) {
txtPwd = new JTextField();
txtPwd.setBounds(new Rectangle(208, 150, 118, 31));
String pwd=initUser.getPwd();
txtPwd.setText(pwd);
}
return txtPwd;
}
/**
* This method initializes txtPwd2
*
* @return javax.swing.JTextField
*/
private JTextField getTxtPwd2() {
if (txtPwd2 == null) {
txtPwd2 = new JTextField();
txtPwd2.setBounds(new Rectangle(553, 143, 112, 29));
String pwd2=initUser.getPwd();
txtPwd2.setText(pwd2);
}
return txtPwd2;
}
/**
* This method initializes comUser
*
* @return javax.swing.JComboBox
*/
private JComboBox getComUser() {
if (comUser == null) {
comUser = new JComboBox();
comUser.setBounds(new Rectangle(212, 209, 121, 48));
for(UserTypeEnum type : UserTypeEnum.values()){
comUser.addItem(type.getName());
if(type.getType()==initUser.getType()){
comUser.setSelectedItem(type.getName());
}
}
}
return comUser;
}
}
用户模板 UserModel
/**
*
*/
package cn.hncu.bookStore.user.vo;
import java.io.Serializable;
import cn.hncu.bookStore.user.constance.UserTypeEnum;
/**
* @author <a href="mailto:729627398@qq.com">廖ZP</a>
* <br>Aug 21, 2015
*/
public class UserModel implements Serializable{
private static final long serialVersionUID = 1L;
private String uuid;
private String name;
private int type;
private String pwd;
public UserModel(String uuid, String name, int type, String pwd) {
super();
this.uuid = uuid;
this.name = name;
this.type = type;
this.pwd = pwd;
}
public UserModel(){
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getPwd() {
return pwd;
}
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;
final 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() {
String strType = UserTypeEnum.getNameByType(type);
return "{"+uuid+","+name+","+strType+"}";
}
}
用户查询模板 UserQueryModel
/**
*
*/
package cn.hncu.bookStore.user.vo;
/**
* @author <a href="mailto:729627398@qq.com">廖ZP</a>
* <br>Aug 21, 2015
*/
public class UserQueryModel extends UserModel {
private static final long serialVersionUID = 1L;
}
工具类 util
工具类 FileIOUtil
</pre><pre class="java" name="code">package cn.hncu.bookStore.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;
/*
代码抽取步骤:
1)先不考虑怎么写,把类似的代码拷到一起分析
2)观察其中的变化部分和不变化的部分
3)把这段代码中 用到的 前面定义的变量 抽取成方法的参数
4)把 留给后面使用的 将在这段代码中新建的变量 定义成方法的返回值
*/
public class FileIOUtil {
private FileIOUtil(){//工具类,把默认构造方法关闭(私有)
}
public static List<?> readFromFile(String fileName){
File file = new File(fileName);
if(!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
ObjectInputStream input = null;
try {
FileInputStream fin = new FileInputStream(file);
input = new ObjectInputStream(fin);
List<?> list =(List<?>)input.readObject();
if(list==null){
list = new ArrayList<Object>();
}
return list;
}catch (Exception e) {
System.out.println("文件读取结束...");
}finally{
if(input!=null){
try {
input.close();
} catch (IOException e) {
throw new RuntimeException("文件关闭失败");
}
}
}
return new ArrayList<Object>();
}
public static boolean write2File(String fileName, List<?> list){
File file = new File(fileName);
ObjectOutputStream output = null;
try {
output = new ObjectOutputStream(new FileOutputStream(file));
output.writeObject(list);
}catch (Exception e) {
return false;
}finally{
if(output!=null){
try {
output.close();
} catch (IOException e) {
throw new RuntimeException("文件关闭失败");
}
}
}
return true;
}
}
工具类 PanelUtil
</pre><pre class="java" name="code">package cn.hncu.bookStore.util;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class PanelUtil {
private PanelUtil(){
}
public static void changePanel(JFrame jFrame, JPanel jPanel){
jFrame.getContentPane().removeAll();
jFrame.getContentPane().add(jPanel);
jFrame.getContentPane().validate();
jFrame.getContentPane().repaint();
}
}
枚举类 UserTypeEnum
package cn.hncu.bookStore.user.constance;
public enum UserTypeEnum {
ADMIN(1,"超级管理员"),BOOK(2,"图书管理员"),
IN(3,"进货管理员"),OUT(4,"销售管理员"),STOCK(5,"库存管理员");
private final int type;
private final String name;
private UserTypeEnum(int type, String name){
this.type = type;
this.name = name;
}
public int getType(){
return type;
}
public String getName() {
return name;
}
//查询
public static String getNameByType(int type){
for(UserTypeEnum userType:UserTypeEnum.values()){
if(userType.getType()==type){
return userType.getName();
}
}
throw new IllegalArgumentException("No such type:"+type+" in UserTypeEnum");
}
public static int getTypeByName(String name){
for(UserTypeEnum userType: UserTypeEnum.values()){
if(userType.getName().equalsIgnoreCase(name)){
return userType.getType();
}
}
throw new IllegalArgumentException("No such name:"+name+" in UserTypeEnum");
}
public static void main(String[] args) {
//System.out.println(UserTypeEnum.OUT.getType());
String name = UserTypeEnum.getNameByType(3);
System.out.println(name);
int type = UserTypeEnum.getTypeByName("图书管理员");
System.out.println(type);
}
}
图书管理 bookStore
package cn.hncu.bookStore;
import java.awt.event.KeyEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Event;
import java.awt.BorderLayout;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.KeyStroke;
import java.awt.Point;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JMenuItem;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JFrame;
import javax.swing.JDialog;
import cn.hncu.bookStore.user.ui.ListPanel;
import cn.hncu.bookStore.user.ui.UpDatePanel;
import cn.hncu.bookStore.util.PanelUtil;
import java.awt.Dimension;
import javax.swing.JButton;
import java.awt.Rectangle;
public class bookStore {
private JFrame jFrame = null;
private JPanel jContentPane = null;
private JMenuBar jJMenuBar = null;
private JMenu fileMenu = null;
private JMenu editMenu = null;
private JMenu helpMenu = null;
private JMenuItem exitMenuItem = null;
private JMenuItem aboutMenuItem = null;
private JMenuItem cutMenuItem = null;
private JMenuItem copyMenuItem = null;
private JMenuItem pasteMenuItem = null;
private JMenuItem saveMenuItem = null;
private JDialog aboutDialog = null;
private JPanel aboutContentPane = null;
private JLabel aboutVersionLabel = null;
private ListPanel listPanel = null;
private JButton jButton = null;
/**
* This method initializes listPanel
*
* @return cn.hncu.bookStore.user.ui.ListPanel
*/
private ListPanel getListPanel() {
if (listPanel == null) {
listPanel = new ListPanel(getJFrame());
}
return listPanel;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
bookStore application = new bookStore();
application.getJFrame().setVisible(true);
}
});
}
/**
* This method initializes jFrame
*
* @return javax.swing.JFrame
*/
private JFrame getJFrame() {
if (jFrame == null) {
jFrame = new JFrame();
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setJMenuBar(getJJMenuBar());
jFrame.setSize(800, 600);
jFrame.setContentPane(getJContentPane());
jFrame.setTitle("Application");
}
return jFrame;
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
//※把ListPanel加入到内容空格当中
jContentPane.add(new ListPanel(jFrame));
}
return jContentPane;
}
/**
* This method initializes jJMenuBar
*
* @return javax.swing.JMenuBar
*/
private JMenuBar getJJMenuBar() {
if (jJMenuBar == null) {
jJMenuBar = new JMenuBar();
jJMenuBar.add(getFileMenu());
jJMenuBar.add(getEditMenu());
jJMenuBar.add(getHelpMenu());
}
return jJMenuBar;
}
/**
* This method initializes jMenu
*
* @return javax.swing.JMenu
*/
private JMenu getFileMenu() {
if (fileMenu == null) {
fileMenu = new JMenu();
fileMenu.setText("File");
fileMenu.add(getSaveMenuItem());
fileMenu.add(getExitMenuItem());
}
return fileMenu;
}
/**
* This method initializes jMenu
*
* @return javax.swing.JMenu
*/
private JMenu getEditMenu() {
if (editMenu == null) {
editMenu = new JMenu();
editMenu.setText("Edit");
editMenu.add(getCutMenuItem());
editMenu.add(getCopyMenuItem());
editMenu.add(getPasteMenuItem());
}
return editMenu;
}
/**
* This method initializes jMenu
*
* @return javax.swing.JMenu
*/
private JMenu getHelpMenu() {
if (helpMenu == null) {
helpMenu = new JMenu();
helpMenu.setText("Help");
helpMenu.add(getAboutMenuItem());
}
return helpMenu;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getExitMenuItem() {
if (exitMenuItem == null) {
exitMenuItem = new JMenuItem();
exitMenuItem.setText("Exit");
exitMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
}
return exitMenuItem;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getAboutMenuItem() {
if (aboutMenuItem == null) {
aboutMenuItem = new JMenuItem();
aboutMenuItem.setText("About");
aboutMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JDialog aboutDialog = getAboutDialog();
aboutDialog.pack();
Point loc = getJFrame().getLocation();
loc.translate(20, 20);
aboutDialog.setLocation(loc);
aboutDialog.setVisible(true);
}
});
}
return aboutMenuItem;
}
/**
* This method initializes aboutDialog
*
* @return javax.swing.JDialog
*/
private JDialog getAboutDialog() {
if (aboutDialog == null) {
aboutDialog = new JDialog(getJFrame(), true);
aboutDialog.setTitle("About");
aboutDialog.setContentPane(getAboutContentPane());
}
return aboutDialog;
}
/**
* This method initializes aboutContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getAboutContentPane() {
if (aboutContentPane == null) {
aboutContentPane = new JPanel();
aboutContentPane.setLayout(new BorderLayout());
aboutContentPane.add(getAboutVersionLabel(), BorderLayout.CENTER);
}
return aboutContentPane;
}
/**
* This method initializes aboutVersionLabel
*
* @return javax.swing.JLabel
*/
private JLabel getAboutVersionLabel() {
if (aboutVersionLabel == null) {
aboutVersionLabel = new JLabel();
aboutVersionLabel.setText("Version 1.0");
aboutVersionLabel.setHorizontalAlignment(SwingConstants.CENTER);
}
return aboutVersionLabel;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getCutMenuItem() {
if (cutMenuItem == null) {
cutMenuItem = new JMenuItem();
cutMenuItem.setText("Cut");
cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,
Event.CTRL_MASK, true));
}
return cutMenuItem;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getCopyMenuItem() {
if (copyMenuItem == null) {
copyMenuItem = new JMenuItem();
copyMenuItem.setText("Copy");
copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,
Event.CTRL_MASK, true));
}
return copyMenuItem;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getPasteMenuItem() {
if (pasteMenuItem == null) {
pasteMenuItem = new JMenuItem();
pasteMenuItem.setText("Paste");
pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,
Event.CTRL_MASK, true));
}
return pasteMenuItem;
}
/**
* This method initializes jMenuItem
*
* @return javax.swing.JMenuItem
*/
private JMenuItem getSaveMenuItem() {
if (saveMenuItem == null) {
saveMenuItem = new JMenuItem();
saveMenuItem.setText("Save");
saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,
Event.CTRL_MASK, true));
}
return saveMenuItem;
}
}