说明
此系统同时支持mysql,sqlserver,有javaswing窗体和C#窗体两套代码
数据库文件
网吧管理系统
数据库设计
关系模型
网吧管理员(主键,用户名,密码,名称,性别,年龄)
会员(主键,用户名,密码,身份证,姓名,性别,会员等级,余额,累计充值)
电脑(主键,编号,品牌,位置,配置,附带配件)
上机记录表(主键,机位编号,记录时间,费用元,姓名,会员等级,性别,身份证,上机时间,下机时间,总余额,实用余额,剩余余额,状态)
数据字典
网吧管理员表
字段名 | 字段 | 数据类型 | 约束 | 描述 |
主键 | id | varchar(40) | primary key; | 唯一标识 |
用户名 | username | varchar(20) | not null;unique; | 不可为空;字段唯一; |
密码 | password | varchar(20) | ||
名称 | name | varchar(18) | not null;unique; | 不可为空;字段唯一; |
性别 | gender | varchar(10) | not null; | 不可为空; |
年龄 | age | int |
会员表
字段名 | 字段 | 数据类型 | 约束 | 描述 |
主键 | id | varchar(40) | primary key; | 唯一标识 |
用户名 | username | varchar(20) | not null;unique; | 不可为空;字段唯一; |
密码 | password | varchar(20) | ||
身份证 | idnum | varchar(18) | not null; | 不可为空; |
姓名 | name | varchar(18) | not null;unique; | 不可为空;字段唯一; |
性别 | gender | varchar(10) | ||
会员等级 | levels | int | ||
余额 | yue | double | ||
累计充值 | chongz | double |
电脑表
字段名 | 字段 | 数据类型 | 约束 | 描述 |
主键 | id | varchar(40) | primary key; | 唯一标识 |
编号 | name | varchar(18) | not null;unique; | 不可为空;字段唯一; |
品牌 | brand | varchar(32) | not null;unique; | 不可为空;字段唯一; |
位置 | position | varchar(255) | ||
配置 | peizhi | varchar(255) | ||
附带配件 | other | varchar(255) |
上机记录表表
字段名 | 字段 | 数据类型 | 约束 | 描述 |
主键 | id | varchar(40) | primary key; | 唯一标识 |
机位编号 | computerId | varchar(255) | ||
记录时间 | createtime | datetime | not null; | new Date() |
费用元 | fee | double | ||
姓名 | name | varchar(18) | not null;unique; | 不可为空;字段唯一; |
会员等级 | levels | int | ||
性别 | gender | varchar(10) | ||
身份证 | idnum | varchar(18) | not null; | 不可为空; |
上机时间 | intime | datetime | ||
下机时间 | endtime | datetime | ||
总余额 | money | double | ||
实用余额 | m2 | double | ||
剩余余额 | m3 | double | money-m2 | |
状态 | status | varchar(255) |
部分代码
package com.codeying.frame;
import com.codeying.dao.*;
import com.codeying.entity.*;
import com.codeying.utils.JdbcUtils;
import com.codeying.utils.Utils;
import com.mysql.jdbc.StringUtils;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import java.util.Date;
public class FormAdminAdd extends JInternalFrame {
private JPanel jContentPane;
private JTextField tb_id = new JTextField();
private JLabel label_username = new JLabel("用户名");
private JTextField tb_username= new JTextField();
private JLabel label_password = new JLabel("密码");
private JTextField tb_password= new JTextField();
private JLabel label_name = new JLabel("名称");
private JTextField tb_name= new JTextField();
private JLabel label_gender = new JLabel("性别");
private JComboBox tb_gender = new JComboBox();
private JLabel label_age = new JLabel("年龄");
private JTextField tb_age= new JTextField();
private JButton btn = new JButton("添加");
private URL imgURL ;
private BtnListener btnListener;
public FormAdminAdd (){
init();
}
//按钮点击事件
public class BtnListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
Admin entityValue = new Admin ();
entityValue.setId(Utils.newId());
String id;//主键
String username;//用户名
String password;//密码
String name;//名称
String gender;//性别
Integer age;//年龄
//不可为空字段
if (StringUtils.isNullOrEmpty(tb_username .getText().trim()))
{
JOptionPane.showMessageDialog(null, "用户名 不可为空");return;
}
//不可为空字段
if (StringUtils.isNullOrEmpty(tb_name .getText().trim()))
{
JOptionPane.showMessageDialog(null, "名称 不可为空");return;
}
if (StringUtils.isNullOrEmpty((String)(tb_gender .getSelectedItem())))//检查下拉框是否为空
{
JOptionPane.showMessageDialog(null, "性别 不可为空");return;
}
//校验输入合法,获取输入值
id = Utils.newId();
entityValue.setId (id);
username = tb_username .getText().trim();
if(FormAdminAdd .illegalAdd(null,"username",username)){
JOptionPane.showMessageDialog(null, "用户名 : 已存在!");return;
}
entityValue.setUsername (username);
password = tb_password .getText().trim() ;
entityValue.setPassword (password);//字符串
name = tb_name .getText().trim();
if(FormAdminAdd .illegalAdd(null,"name",name)){
JOptionPane.showMessageDialog(null, "名称 : 已存在!");return;
}
entityValue.setName (name);
gender = (String)(tb_gender .getSelectedItem());
entityValue.setGender ( gender );//下拉框
age = Utils.strToInt(tb_age .getText().trim());//int
if(!StringUtils.isNullOrEmpty(tb_age .getText().trim()) && age==null){
JOptionPane.showMessageDialog(null, Utils.DIGIT_ERROR);return;
}
entityValue.setAge (age);
//提交
int res = AdminDao.me().insert(entityValue);
if(res==1){
JOptionPane.showMessageDialog(null, "添加成功!");
}else{
JOptionPane.showMessageDialog(null, "添加失败");
}
}
}
//初始化界面
public void init(){
//设置下拉框
tb_gender .addItem("");
tb_gender .addItem("男");
tb_gender .addItem("女");
//设置主窗体
this.setSize(296, 450);
this.setTitle("添加网吧管理员");//窗体名
this.setResizable(true);
this.setClosable(true);
this.setMaximizable(true);
this.setIconifiable(true);
int x = 29,y = 1;
label_username .setBounds(new Rectangle(x, y, 71, 19));
tb_username .setBounds(new Rectangle(x+90, y, 124, 23));
y+=30;
label_password .setBounds(new Rectangle(x, y, 71, 19));
tb_password .setBounds(new Rectangle(x+90, y, 124, 23));
y+=30;
label_name .setBounds(new Rectangle(x, y, 71, 19));
tb_name .setBounds(new Rectangle(x+90, y, 124, 23));
y+=30;
label_gender .setBounds(new Rectangle(x, y, 71, 19));
tb_gender .setBounds(new Rectangle(x+90, y, 124, 23));
y+=30;
label_age .setBounds(new Rectangle(x, y, 71, 19));
tb_age .setBounds(new Rectangle(x+90, y, 124, 23));
y+=30;
btn.setBounds(new Rectangle(130, y, 100, 26));
getRootPane().setDefaultButton(btn);// 设置回车键
jContentPane = new JPanel();// 新建jPanel面板
jContentPane.setLayout(null);
jContentPane.setBackground(new Color(255, 255, 255));
setContentPane(jContentPane);
jContentPane.add(label_username);
jContentPane.add(tb_username);
jContentPane.add(label_password);
jContentPane.add(tb_password);
jContentPane.add(label_name);
jContentPane.add(tb_name);
jContentPane.add(label_gender);
jContentPane.add(tb_gender);
jContentPane.add(label_age);
jContentPane.add(tb_age);
jContentPane.add(btn);
btnListener = new BtnListener();
btn.addActionListener(btnListener);
}
//唯一判断
public static boolean illegalAdd(String id,String key,String val){
Admin entityValue = AdminDao.me().getBy(key,val);
if(entityValue == null){
return false;//不重复
}else {
if(id==null){
return true;//非法
}else {
if(id.equals(entityValue.getId())){
return false;
}
return true;//合法
}
}
}
}
系统截图