资源描述
企业工资管理系统〔MySQL+Java〕
本代码仅供初学者参考使用,相互学习,共同进步,让优秀成为一种习惯。
软件下载:
开发语言:Java
开发工具:eclipse
数据库软件:MySQL
数据库驱动:
驱动下载地址:
以下是代码和界面截图,共7个类。
1. DB1 欢送界面
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class DB1 extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
JFrame frame = new JFrame("欢送进入工资管理系统");
JLabel label = new JLabel("", JLabel.CENTER);
JButton button1 = new JButton("进入系统");
JButton button2 = new JButton("退出系统");
void Create() {
JPanel pcontentPane = (JPanel) frame.getContentPane();
pcontentPane.add(label);
pcontentPane.setLayout(new FlowLayout());
pcontentPane.add(button1);
pcontentPane.add(button2);
pcontentPane.setBackground(Color.gray);
pcontentPane.setVisible(true);
button1.addActionListener(this);
button2.addActionListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setBounds(500, 300, 300, 150);
frame.setResizable(false);
frame.setVisible(true);
}
public static void main(String[] args) {
DB1 dome = new DB1();
dome.Create();
}
public void actionPerformed(ActionEvent e) {
if (button1.equals(e.getSource())) {
DL dl = new DL();
dl.create();
frame.dispose();
}
if (button2.equals(e.getSource())) {// 退出
System.exit(0);
}
}
}
1. DL 登陆界面
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import com.mysql.jdbc.PreparedStatement;
@SuppressWarnings("serial")
class DL extends JFrame implements ActionListener
{
JFrame frame = new JFrame("职工/管理员登陆");
JLabel label1 = new JLabel("用户名");
JLabel label2 = new JLabel("密码");
JButton logonButton1 = new JButton("管理员登录");
JButton logonButton2 = new JButton("职工登录");
JButton cancelButton = new JButton("退出");
JTextField username = new JTextField(9);
JPasswordField password = new JPasswordField(9);
static String t1;
static String t2;
void create()
{
JPanel p = (JPanel) frame.getContentPane();
@SuppressWarnings("unused")
JPanel p1 = new JPanel();
p.setLayout(new FlowLayout());
p.add(label1);
p.setSize(5, 5);
p.setLocation(4, 8);
p.add(username);
p.setSize(100, 200);
p.setLocation(800, 800);
p.add(label2);
p.setSize(50, 20);
p.setLocation(40, 80);
p.add(password);
p.setSize(100, 20);
p.setLocation(80, 120);
p.add(logonButton1);
p.add(logonButton2);
p.add(cancelButton);
p.setBackground(Color.gray);
p.setVisible(true);
logonButton1.addActionListener(this);
logonButton2.addActionListener(this);
cancelButton.addActionListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setBounds(500, 300, 500, 220);
frame.setVisible(true);
}
@SuppressWarnings("deprecation")
public void actionPerformed(ActionEvent e)
{
t1 = username.getText();
t2 = password.getText();
if(e.getSource()==logonButton1)
{
if( username.getText().equals("admin") == true
&& (password.getText().equals("admin") == true))
{
JOptionPane.showMessageDialog(this, "登录成功!");
GZGLZJM gz = new GZGLZJM();
gz.create();
frame.dispose();
}
else {
JOptionPane.showMessageDialog(null, "输入用户名或密码错误!");
}
}
if (e.getSource()==logonButton2)
{
try {
Connection con;
Statement ps;
ResultSet rs;
String sql = null;
Class.forName("org.gjt.mm.mysql.Driver");
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
con = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/management","root","hellomysql");
sql="select * from worker where num='"+t1+"' and password='"+t2+"'";
ps=(PreparedStatement) con.prepareStatement(sql);
rs = ps.executeQuery(sql);
if(rs.next())
{
if(rs.getString("num").equals(t1) && rs.getString("password").equals(t2))
{
YGGLZJM yg = new YGGLZJM();
yg.create();
frame.dispose();
JOptionPane.showMessageDialog(this, "登录成功!");
this.dispose();
}
}
else {
JOptionPane.showMessageDialog(this, "输入用户名或密码错误!");
}
}catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
if (cancelButton.equals(e.getSource())) // 退出
{
System.exit(0);
}
}
}
2. GZGL 工资管理界面
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.JTextField;
@SuppressWarnings("serial")
public class GZGL extends JFrame implements ActionListener {
JFrame f = new JFrame("员工工资管理");
JButton b1 = new JButton("录入");
JButton b2 = new JButton("修改");
JButton b3 = new JButton("删除");
JButton b4 = new JButton("查询所有");
JButton b5 = new JButton("返回");
JTextField tf1 = new JTextField(6);
JTextField tf2 = new JTextField(4);
JTextField tf3 = new JTextField(4);
JTextField tf4 = new JTextField(4);
JTextField tf5 = new JTextField(4);
JTextField tf6 = new JTextField(4);
JTextField tf7 = new JTextField(6);
JTextField tf8 = new JTextField(6);
JTextField tf9 = new JTextField(4);
JTextField tf10= new JTextField(4);
JTextField tf11= new JTextField(6);
JTextField tf12= new JTextField(6);
String[] cloum = { "职工号", "根本工资", "津贴", "奖金","保险","房贷","总工资"};
Object[][] row = new Object[50][7];
JTable table = new JTable(row, cloum);
JScrollPane scrollpane = new JScrollPane(table);
JSplitPane splitpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
void create() {
JPanel p = (JPanel) f.getContentPane();
p.setLayout(new FlowLayout());
p.add(scrollpane);
p.add(splitpane);
JPanel p1 = new JPanel();
p1.add(b1);
p1.add(b2);
p1.add(b3);
p1.add(b4);
p1.add(b5);
JPanel p2 = new JPanel();
p2.setBackground(Color.gray);
p2.add(scrollpane);
@SuppressWarnings("unused")
JPanel p3 = new JPanel();
p.setLayout(new FlowLayout());
p.add(new JLabel(""));
p.add(new JLabel("职工号"));
p.add(tf1);
p.add(new JLabel("根本工资"));
p.add(tf2);
p.add(new JLabel("津贴"));
p.add(tf3);
p.add(new JLabel("奖金"));
p.add(tf4);
p.add(new JLabel("保险"));
p.add(tf5);
p.add(new JLabel("房贷"));
p.add(tf6);
p.add(new JLabel("总工资"));
p.add(tf7);
p.add(new JLabel("姓名"));
p.add(tf8);
p.add(new JLabel("性别"));
p.add(tf9);
p.add(new JLabel("年龄"));
p.add(tf10);
p.add(new JLabel("部门"));
p.add(tf11);
p.add(new JLabel("职业"));
p.add(tf12);
splitpane.add(p1, JSplitPane.TOP);
splitpane.add(p2, JSplitPane.BOTTOM);
splitpane.setDividerLocation(50);
p.setBackground(Color.gray);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
f.setBounds(500, 100, 500, 600);
f.setResizable(false);// 可以调整界面大小
f.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (b1.equals(e.getSource())) { // 录入
Connection con;
Statement sql;
try {
Class.forName("org.gjt.mm.mysql.Driver");
} catch (ClassNotFoundException e1) {
System.out.println("" + e1);
}
try {
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/management","root","hellomysql");
sql = con.createStatement();
String insertStr = "INSERT INTO salary (worker_num,basic_pay,welfare,bonus,insurance,housing_fund,payment)VALUES('"+tf1.getText()+"','"+tf2.getText()+"','"+tf3.getText()+"','"+tf4.getText()+"','"+tf5.getText()+"','"+tf6.getText()+"','"+tf7.getText()+"');";
sql.executeUpdate(insertStr);
String insertStr1 = "INSERT INTO worker (num,name,sex,age,dep,occup,password)VALUES('"+tf1.getText()+"','"+tf8.getText()+"','"+tf9.getText()+"','"+tf10.getText()+"','"+tf11.getText()+"','"+tf12.getText()+"','"+tf1.getText()+"');";
sql.executeUpdate(insertStr1);
con.close();
JOptionPane.showMessageDialog(this, "入录成功!");
} catch (SQLException e1) {
JOptionPane.showMessageDialog(this, "入录失败!");
}
}
if (b2.equals(e.getSource())) {// 修改
Connection con;
Statement sql;
try {
Class.forName("org.gjt.mm.mysql.Driver");
} catch (ClassNotFoundException e1) {
System.out.println("" + e1);
}
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/management","root","hellomysql");
sql = con.createStatement();
String updateStr = "UPDATE salary SET basic_pay='"+tf2.getText()+"',welfare='"+tf3.getText()+"',bonus='"+tf4.getText()+"',insurance='"+tf5.getText()+"',housing_fund='"+tf6.getText()+"',payment='"+tf7.getText()+"'where worker_num='"+tf1.getText()+"';";
sql.executeUpdate(updateStr);
String updateStr1 = "UPDATE worker SET name='"+tf8.getText()+"',sex='"+tf9.getText()+"',age='"+tf10.getText()+"',dep='"+tf11.getText()+"',occup='"+tf12.getText()+"'where num='"+tf1.getText()+"';";
sql.executeUpdate(updateStr1);
JOptionPane.showMessageDialog(this, "修改成功!");
con.close();
} catch (SQLException e1) {
JOptionPane.showMessageDialog(this, "信息不存在!");
}
}
if (b3.equals(e.getSource())) {// 删除
Connection con;
Statement sql;
@SuppressWarnings("unused")
ResultSet rs;
try {
Class.forName("org.gjt.mm.mysql.Driver");
} catch (ClassNotFoundException e1) {
System.out.println("" + e1);
}
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/management","root","hellomysql");
sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
sql.executeUpdate("DELETE FROM salary where worker_num='"+tf1.getText()+"';");
sql.executeUpdate("DELETE FROM worker where num='"+tf1.getText()+"';");
JOptionPane.showMessageDialog(this, "删除成功!");
con.close();
} catch (SQLException e1) {
JOptionPane.showMessageDialog(this, "删除失败!");
}
}
if (b4.equals(e.getSource())) {// 查询全部
Connection con;
Statement sql;
ResultSet rs;
try {
Class.forName("org.gjt.mm.mysql.Driver");
} catch (ClassNotFoundException e1) {
JOptionPane.showMessageDialog(this, "连接数据库失败!");
}
try {
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/management","root","hellomysql");
sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
if (b4.equals(e.getSource())) {
for (int i = 0; i < 50; i++)
for (int j = 0; j < 4; j++)
table.setValueAt("", i, j);
rs = sql.executeQuery("select * from salary");
int k = -1;
while (rs.next()) {
++k;
String no = rs.getString(1);
String jb = rs.getString(2);
String jt = rs.getString(3);
String jj = rs.getString(4);
String bx = rs.getString(5);
String zf = rs.getString(6);
String sum= rs.getString(7);
table.setValueAt(no, k, 0);
table.setValueAt(jb, k, 1);
table.setValueAt(jt, k, 2);
table.setValueAt(jj, k, 3);
table.setValueAt(bx, k, 4);
table.setValueAt(zf, k, 5);
table.setValueAt(sum,k, 6);
}
}
} catch (SQLException e1) {
JOptionPane.showMessageDialog(this, "查询失败!");
}
}
if (b5.equals(e.getSource())) {// 返回
GZGLZJM gl=new GZGLZJM();
gl.create();
f.dispose();
}
}
}
3. GZGLZJM 工资管理主界面
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
class GZGLZJM extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
JFrame f = new JFrame("工资管理系统");
JButton b1 = new JButton("工资管理");
JButton b2 = new JButton("员工信息管理");
JButton b3 = new JButton("返回");
void create() {
JPanel p = (JPanel) f.getContentPane();
p.setLayout(new FlowLayout());
p.add(b1);
p.add(b2);
p.add(b3);
p.setBackground(Color.gray);
p.setVisible(true);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
f.setBounds(500, 300, 500, 200);
f.setResizable(false);
f.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (b3.equals(e.getSource())) {// 返回
DL d = new DL();
d.create();
f.dispose();
}
if (b2.equals(e.getSource())) {// 员工信息管理
YGGL yg = new YGGL();
yg.create();
f.dispose();
}
if (b1.equals(e.getSource())) {// 员工工资管理
GZGL gz = new GZGL();
gz.create();
f.dispose();
}
}
}
4. XGMM 修改密码
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
@SuppressWarnings("serial")
class XGMM extends DL implements ActionListener
{
JFrame frame = new JFrame("密码修改");
JLabel label1 = new JLabel("原密码");
JLabel label2 = new JLabel("新密码");
JButton Button1 = new JButton("确定");
JButton cancelButton = new JButton("返回");
JPasswordField password = new JPasswordField(9);
JPasswordField newpassword = new JPasswordField(9);
void create()
{
JPanel p = (JPanel) frame.getContentPane();
p.setLayout(new FlowLayout());
p.add(label1);
p.setSize(5, 5);
p.setLocation(4, 8);
p.add(password);
p.setSize(100, 200);
p.setLocation(600, 600);
p.add(label2);
p.setSize(50, 20);
p.setLocation(40, 80);
p.add(newpassword);
p.setSize(100, 20);
p.setLocation(80, 120);
p.add(Button1);
p.add(cancelButton);
p.setBackground(Color.cyan);
p.setVisible(true);
Button1.addActionListener(this);
cancelButton.addActionListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setBounds(200, 100, 500, 220);
frame.setVisible(true);
展开阅读全文