目录
1.系统运行环境
运行环境:Java8 + MySQL8
开发工具:eclipse/idea
2.系统功能介绍
(下面介绍的功能肯定都有,没有介绍的功能肯定没有!)
系统采用模拟MVC三层进行开发,这样方便项目进行修改或者二次开发!
数据库:三张表
功能:一种角色管理员
管理员登录:可以办理开房、退房、换房业务
房间信息的增删改查
顾客信息的查删
3.项目结构和问题略讲
3.1 乱码问题
系统开发时的编码为GBK,因此导入eclipse时,也需要eclipse工作空间的编码为GBK
修改编码:点击Window->Preference->General->workplace,然后选择默认编码方式 GBK。
错误做法:开始将系统导入,出现乱码的问题,然后去修改eclipse的编码,这样有的 时候并不能修乱码的问题!需要将项目删除掉,然后修改eclipse的工作空 间编码,再次导入系统才能修改掉乱码!
3.2 如何将GBK编码系统修改为UTF-8编码的系统?
需要靠我们勤劳的双手,嘿嘿嘿......
将系统文件复制一份,然后将eclipse的工作空间编码修改为UTF-8,导入系统;eclipse里面文件与原来文件进行一一比对,修改
Ctrl +c 和ctrl + v
除此之外,我目前还不知道如何一步修改,嘿嘿嘿......
3.3项目结构
com.system.bean包:实体包,在有些情况下也写成entity或者pojo,相当于model持 久层
com.system.dao包:操作数据库的JDBC包,相当于model持久层
com.system.util包:工具包
com.system.view包:swing类包,相当于view视图层
com.system.service包:业务处理包,相当于model持久层
com.system.test包:测试包,和项目无关
mvc设计模式中:m是指业务模型,v是指用户界面,c则是控制器
你想问:这不是没有控制器层?
我:阿巴阿巴......确实没有
3.4 项目修改
在com.system.util包下面的DB类中,里面包含的一些数据库连接的基本信息,PASS变量需要修改成自己的数据库密码
3.5 项目运行
在com.system.view包下面的Login类,main函数就在这个类里面,然后点击右键就可以运行
3.6 代码片段
public class Login extends JFrame {
private JPanel contentPane;
private JTextField usernameField;
private JPasswordField passwordField;
private JTextField checkField;
// 验证码
private CheckUtil checkCode;
// 生成的验证码图片
private BufferedImage image1;
// 保存验证码字符
private String code;
/**
* Launch the application.
* 创作:码不停手
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Login frame = new Login();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Login() {
setTitle("酒店管理系统");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 798, 600);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JPanel panel = new JPanel();
panel.setBackground(Color.BLACK);
panel.setBounds(0, 0, 389, 561);
contentPane.add(panel);
panel.setLayout(null);
JLabel lblNewLabel = new JLabel("New label");
lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel.setIcon(new ImageIcon(Login.class.getResource("/images/welcome.jpg")));
lblNewLabel.setBounds(0, 0, 389, 440);
panel.add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("酒店管理系统");
lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_1.setFont(new Font("微软雅黑", Font.BOLD, 18));
lblNewLabel_1.setForeground(Color.WHITE);
lblNewLabel_1.setBounds(91, 480, 166, 35);
panel.add(lblNewLabel_1);
JPanel panel_1 = new JPanel();
panel_1.setBackground(Color.WHITE);
panel_1.setBounds(388, 0, 394, 561);
contentPane.add(panel_1);
panel_1.setLayout(null);
JLabel lblNewLabel_2 = new JLabel("用户名:");
lblNewLabel_2.setFont(new Font("微软雅黑", Font.BOLD, 16));
lblNewLabel_2.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_2.setBounds(39, 186, 86, 36);
panel_1.add(lblNewLabel_2);
JLabel lblNewLabel_2_1 = new JLabel("密 码:");
lblNewLabel_2_1.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_2_1.setFont(new Font("微软雅黑", Font.BOLD, 16));
lblNewLabel_2_1.setBounds(39, 263, 86, 36);
panel_1.add(lblNewLabel_2_1);
JLabel lblNewLabel_3 = new JLabel("登 录");
lblNewLabel_3.setForeground(Color.BLUE);
lblNewLabel_3.setFont(new Font("微软雅黑", Font.BOLD, 18));
lblNewLabel_3.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_3.setBounds(81, 84, 186, 52);
panel_1.add(lblNewLabel_3);
usernameField = new JTextField();
usernameField.setBounds(122, 188, 198, 36);
panel_1.add(usernameField);
usernameField.setColumns(10);
passwordField = new JPasswordField();
passwordField.setBounds(122, 265, 198, 36);
panel_1.add(passwordField);
JLabel lblNewLabel_2_1_1 = new JLabel("验证码:");
lblNewLabel_2_1_1.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_2_1_1.setFont(new Font("微软雅黑", Font.BOLD, 16));
lblNewLabel_2_1_1.setBounds(39, 335, 86, 36);
panel_1.add(lblNewLabel_2_1_1);
checkField = new JTextField();
checkField.setBounds(122, 337, 93, 36);
panel_1.add(checkField);
checkField.setColumns(10);
JButton btnNewButton = new JButton("登录");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String username = usernameField.getText();
String passwword = passwordField.getText();
String checkCode = checkField.getText();
if ("".equals(username) || "".equals(passwword) || "".equals(checkCode)) {
JOptionPane.showMessageDialog(null, "请输入完整的信息!");
} else {
if (!code.equals(checkCode)) {
JOptionPane.showMessageDialog(null, "验证码输入有误!");
} else {
DeskService deskService = new DeskServiceImpl();
Desk desk = new Desk();
desk.setdName(username);
desk.setdPassword(passwword);
boolean flag = deskService.LoginDeskService(desk);
if (flag) {
JOptionPane.showMessageDialog(null, "登录成功!");
setVisible(false);
new BG().setVisible(true);
} else {
JOptionPane.showMessageDialog(null, "登录失败,请检查用户名和密码!");
}
}
}
}
});
btnNewButton.setBackground(SystemColor.activeCaption);
btnNewButton.setFont(new Font("微软雅黑", Font.BOLD, 14));
btnNewButton.setBounds(39, 424, 93, 36);
panel_1.add(btnNewButton);
JButton btnNewButton_1 = new JButton("退出");
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(1);
}
});
btnNewButton_1.setFont(new Font("微软雅黑", Font.BOLD, 14));
btnNewButton_1.setBackground(SystemColor.activeCaption);
btnNewButton_1.setBounds(227, 424, 93, 36);
panel_1.add(btnNewButton_1);
JLabel lblNewLabel_4 = new JLabel("");
lblNewLabel_4.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
checkCode = new CheckUtil();
// 获取画布
image1 = checkCode.getBuffImg();
// 获取随机数
code = checkCode.getCode();
ImageIcon icon = new ImageIcon(image1, "jpeg");
lblNewLabel_4.setIcon(icon);
}
});
checkCode = new CheckUtil();
// 获取画布
image1 = checkCode.getBuffImg();
// 获取随机数
code = checkCode.getCode();
ImageIcon icon = new ImageIcon(image1, "jpeg");
lblNewLabel_4.setIcon(icon);
lblNewLabel_4.setBounds(227, 335, 120, 46);
panel_1.add(lblNewLabel_4);
}
}
运行截图:
4.下载地址
点击下载