下载链接https://download.csdn.net/download/RONNIE_Zz/12675313
项目功能
随着经济的发展,企业正向着大型化、规模化发展,而对于大中型企业,员工、职称等跟工资管理有关的信息随之急剧增加。在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。如何设计一个小型企业工资的数据库管理系统,由计算机代替人工执行一系列诸如增加新员工,删除旧员工,工资查询,统计等操作。这样就使办公人员可以轻松快捷地完成工资管理的任务。实现工资的集中管理。
功能:可供财务人员对本单位的人员以及工资进行增加、删除、修改、查询,对人事的管理及工资发放中的应发工资合计等项目由系统自动进行计算;同时系统还可对人事及工资管理情况进行多角度查询
每个子功能介绍
基础功能:登录与增查删改
可以选择登录方式:员工或者管理员(账密默认为admin,123456)
查询分为员工查询和管理员查询,员工只可以根据自己的信息查询,不具备修改的能力,管理员有多种查询功能,在各个模块之间进行操作时,下面有实时的信息显示
管理员具有添加员工,部门等,以及可以添加管理员的功能,修改员工信息,部门信息,设定工资信息。
进阶功能与特色功能:遍历信息与统计
访问数据库,遍历信息,生成表格。根据选择分析并统计数据
关键代码
java swing mysql实现的员工工资管理系统项目源码
登录界面,判断使用权限,输出对应的内容
@SuppressWarnings("unchecked")
// //GEN-BEGIN:initComponents
private void initComponents() {
jComboBox1 = new javax.swing.JComboBox();
username = new javax.swing.JTextField();
jPasswordField1 = new javax.swing.JPasswordField();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
jLabel4 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("登录界面");
jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "管理员", "员工" }));
jComboBox1.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
if(e.getStateChange() == ItemEvent.SELECTED){
if("员工".equals(e.getItem())){
jButton1.setText("查询工资");
jLabel2.hide();
username.hide();
jPasswordField1.hide();
jLabel3.hide();
jPasswordField1.hide();
}else{
jButton1.setText("登录");
jLabel2.show();
username.show();
jPasswordField1.show();
jLabel3.show();
jPasswordField1.show();
}
}
}
});
//username.setText("quan");
jLabel1.setText("身份:");
jLabel2.setText("用户名:");
jLabel3.setText("密码:");
jButton1.setText("登录");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jButton2.setText("退出");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
jLabel4.setForeground(new java.awt.Color(255, 0, 0));
jLabel4.setText("注:员工可以匿名登录");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(80, 80, 80)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel1)
.addComponent(jLabel3)
.addComponent(jLabel2))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(username, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jComboBox1, javax.swing.GroupLayout.Alignment.LEADING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(18, 18, 18)
.addComponent(jLabel4))))
.addGroup(layout.createSequentialGroup()
.addGap(110, 110, 110)
.addComponent(jButton1)
.addGap(39, 39, 39)
.addComponent(jButton2)))
.addContainerGap(54, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(65, 65, 65)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1)
.addComponent(jLabel4))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(username, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(35, 35, 35)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addContainerGap(102, Short.MAX_VALUE))
);
pack();
}// //GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO add your handling code here:
status = (String) jComboBox1.getSelectedItem();
name = username.getText();
String password = jPasswordField1.getText();
if(status.equals("管理员")){
if(name.equals("")){
JOptionPane.showMessageDialog(null, "用户名不能为空!!");
}else if(password.equals("")){
JOptionPane.showMessageDialog(null,"密码不能为空!!");
}else{
String sql = "select username from userlist where status = '"+ status +"' and username = '"+ name +"' and password = '"+ password +"'";
//String sql = "select * from userlist";
System.out.println(sql);
DBConn db = new DBConn();
if (db.Check(sql) != 0){
new MainFrame().setVisible(true);
this.hide();
}else {
JOptionPane.showMessageDialog(null, "用户名与密码不对!!");
}
}
}else{
new SalarySearch().setVisible(true);
}
}//GEN-LAST:event_jButton1ActionPerformed
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
// TODO add your handling code here:
int selection = JOptionPane.showConfirmDialog(this,
"是否退出?", "退出提示", JOptionPane.OK_CANCEL_OPTION,
JOptionPane.WARNING_MESSAGE);
if (selection == JOptionPane.OK_OPTION) {
System.exit(0);
}
}//GEN-LAST:event_jButton2ActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Login().setVisible(true);
}
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
}
数据库使用代码,建立对应的数据库文件
/*
Navicat MySQL Data Transfer
Source Server : localhost
Source Server Version : 50523
Source Host : localhost:3306
Source Database : salarydb
Target Server Type : MYSQL
Target Server Version : 50523
File Encoding : 65001
Date: 2013-07-03 20:47:40
*/
SET FOREIGN_KEY_CHECKS=0;
– Table structure fordepartment
DROP TABLE IF EXISTSdepartment;
CREATE TABLEdepartment(
IDvarchar(20) COLLATE utf8_unicode_ci NOT NULL,
Namevarchar(25) COLLATE utf8_unicode_ci NOT NULL,
Directorvarchar(25) COLLATE utf8_unicode_ci NOT NULL,
Numberint(16) NOT NULL,
PRIMARY KEY (ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
– Records of department
INSERT INTOdepartmentVALUES (‘ks001’, ‘经理室’, ‘赢政’, ‘10’);
INSERT INTOdepartmentVALUES (‘ks002’, ‘财务室’, ‘刘邦’, ‘6’);
INSERT INTOdepartmentVALUES (‘ks003’, ‘军机部’, ‘李鸿章’, ‘6’);
INSERT INTOdepartmentVALUES (‘ks004’, ‘外交部’, ‘张仪’, ‘8’);
INSERT INTOdepartmentVALUES (‘ks005’, ‘技术科’, ‘朱元璋’, ‘10’);
INSERT INTOdepartmentVALUES (‘ks006’, ‘董事会’, ‘李世民’, ‘10’);
– Table structure foremployee
DROP TABLE IF EXISTSemployee;
CREATE TABLEemployee(
IDvarchar(10) COLLATE utf8_unicode_ci NOT NULL,
namevarchar(25) COLLATE utf8_unicode_ci NOT NULL,
sexchar(2) COLLATE utf8_unicode_ci NOT NULL,
ageint(6) NOT NULL,
departmentvarchar(50) COLLATE utf8_unicode_ci NOT NULL,
positionvarchar(25) COLLATE utf8_unicode_ci NOT NULL,
phonevarchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
timedatetime DEFAULT NULL,
addressvarchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (ID)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
– Records of employee
INSERT INTOemployeeVALUES (‘0001’, ‘赢政’, ‘男’, ‘37’, ‘经理室’, ‘经理’, ‘10086’, ‘0201-01-01 00:00:00’, ‘咸阳’);
INSERT INTOemployeeVALUES (‘0002’, ‘刘邦’, ‘男’, ‘40’, ‘技术科’, ‘技术长’, ‘10087910’, ‘2001-05-06 00:00:00’, ‘长安’);
INSERT INTOemployeeVALUES (‘0003’, ‘武则天’, ‘女’, ‘30’, ‘财务室’, ‘经理’, ‘10088’, ‘1999-08-07 00:00:00’, ‘长安’);
INSERT INTOemployeeVALUES (‘0004’, ‘刘秀’, ‘男’, ‘46’, ‘军机部’, ‘副部长’, ‘123548788’, ‘2013-05-07 00:00:00’, ‘桂林’);
INSERT INTOemployeeVALUES (‘0005’, ‘西施’, ‘女’, ‘23’, ‘财务室’, ‘会计’, ‘10089’, ‘2001-02-03 00:00:00’, ‘越国’);
INSERT INTOemployeeVALUES (‘0006’, ‘李清照’, ‘女’, ‘25’, ‘财务室’, ‘出纳’, ‘125478’, ‘2012-03-04 00:00:00’, ‘宋国’);
INSERT INTOemployeeVALUES (‘0007’, ‘杨玉环’, ‘女’, ‘29’, ‘财务室’, ‘会计’, ‘125478’, ‘2010-02-04 00:00:00’, ‘长安’);
INSERT INTOemployeeVALUES (‘0008’, ‘孙权’, ‘男’, ‘35’, ‘外交部’, ‘部长’, ‘150478’, ‘2005-05-04 00:00:00’, ‘江东’);
INSERT INTOemployeeVALUES (‘0009’, ‘李世民’, ‘男’, ‘54’, ‘董事会’, ‘会长’, ‘100865’, ‘1998-05-08 00:00:00’, ‘西安’);
INSERT INTOemployeeVALUES (‘0010’, ‘项羽’, ‘男’, ‘40’, ‘经理室’, ‘副经理’, ‘1008670’, ‘2000-02-05 00:00:00’, ‘彭城’);
INSERT INTOemployeeVALUES (‘0011’, ‘李鸿章’, ‘男’, ‘52’, ‘军机部’, ‘部长’, ‘1008699’, ‘2001-05-08 00:00:00’, ‘北京’);
INSERT INTOemployeeVALUES (‘0012’, ‘张仪’, ‘男’, ‘44’, ‘外交部’, ‘部长’, ‘10089’, ‘2002-02-04 00:00:00’, ‘魏国’);
INSERT INTOemployeeVALUES (‘0013’, ‘朱元璋’, ‘男’, ‘35’, ‘技术科’, ‘部长’, ‘100896’, ‘2013-05-07 00:00:00’, ‘南京’);
INSERT INTOemployeeVALUES (‘0014’, ‘貂蝉’, ‘女’, ‘25’, ‘经理室’, ‘助理’, ‘10086972’, ‘2005-05-04 00:00:00’, ‘洛阳’);
INSERT INTOemployeeVALUES (‘0015’, ‘李渊’, ‘男’, ‘55’, ‘董事会’, ‘董事’, ‘25897’, ‘2001-02-05 00:00:00’, ‘长安’);
– Table structure forsalary
DROP TABLE IF EXISTSsalary;
CREATE TABLEsalary(
salaryIDint(4) NOT NULL AUTO_INCREMENT,
IDvarchar(10) COLLATE utf8_unicode_ci NOT NULL,
namevarchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
basepayint(10) DEFAULT NULL,
welfareint(10) DEFAULT NULL,
rewardint(10) DEFAULT NULL,
insuranceint(10) DEFAULT NULL,
fundsint(10) DEFAULT NULL,
monthvarchar(25) COLLATE utf8_unicode_ci NOT NULL,
remarkvarchar(25) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (salaryID,ID)
) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
– Records of salary
INSERT INTOsalaryVALUES (‘1’, ‘0001’, ‘赢政’, ‘3000’, ‘100’, ‘100’, ‘100’, ‘500’, ‘1月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘13’, ‘0002’, ‘刘邦’, ‘3000’, ‘200’, ‘100’, ‘100’, ‘400’, ‘1月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘15’, ‘0003’, ‘武则天’, ‘2500’, ‘100’, ‘200’, ‘100’, ‘300’, ‘1月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘16’, ‘0004’, ‘刘秀’, ‘2900’, ‘100’, ‘150’, ‘250’, ‘200’, ‘1月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘17’, ‘0005’, ‘西施’, ‘2800’, ‘100’, ‘100’, ‘100’, ‘300’, ‘1月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘18’, ‘0006’, ‘李清照’, ‘2700’, ‘120’, ‘150’, ‘100’, ‘300’, ‘1月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘19’, ‘0007’, ‘杨玉环’, ‘2680’, ‘200’, ‘150’, ‘100’, ‘300’, ‘1月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘20’, ‘0008’, ‘孙权’, ‘2900’, ‘100’, ‘200’, ‘100’, ‘500’, ‘1月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘21’, ‘0009’, ‘李世民’, ‘2870’, ‘200’, ‘100’, ‘100’, ‘300’, ‘1月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘22’, ‘0010’, ‘项羽’, ‘2600’, ‘200’, ‘100’, ‘100’, ‘300’, ‘1月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘23’, ‘0011’, ‘李鸿章’, ‘2800’, ‘200’, ‘100’, ‘100’, ‘300’, ‘1月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘24’, ‘0012’, ‘张仪’, ‘2900’, ‘200’, ‘150’, ‘100’, ‘500’, ‘1月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘25’, ‘0013’, ‘朱元璋’, ‘2600’, ‘250’, ‘200’, ‘100’, ‘400’, ‘1月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘26’, ‘0001’, ‘赢政’, ‘3000’, ‘100’, ‘200’, ‘100’, ‘300’, ‘2月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘27’, ‘0001’, ‘赢政’, ‘3000’, ‘250’, ‘200’, ‘100’, ‘400’, ‘3月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘28’, ‘0002’, ‘刘邦’, ‘3000’, ‘250’, ‘150’, ‘100’, ‘400’, ‘2月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘29’, ‘0002’, ‘刘邦’, ‘3000’, ‘300’, ‘150’, ‘100’, ‘500’, ‘3月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘30’, ‘0003’, ‘武则天’, ‘2900’, ‘200’, ‘150’, ‘100’, ‘300’, ‘2月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘31’, ‘0003’, ‘武则天’, ‘2800’, ‘250’, ‘120’, ‘100’, ‘500’, ‘3月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘33’, ‘0004’, ‘刘秀’, ‘2580’, ‘500’, ‘200’, ‘100’, ‘300’, ‘2月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘35’, ‘0004’, ‘刘秀’, ‘2900’, ‘200’, ‘150’, ‘100’, ‘300’, ‘3月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘37’, ‘0005’, ‘西施’, ‘2900’, ‘200’, ‘100’, ‘100’, ‘300’, ‘2月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘39’, ‘0005’, ‘西施’, ‘2800’, ‘200’, ‘150’, ‘100’, ‘300’, ‘3月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘40’, ‘0006’, ‘李清照’, ‘2900’, ‘200’, ‘100’, ‘100’, ‘300’, ‘2月’, ‘未结算’);
INSERT INTOsalaryVALUES (‘41’, ‘0006’, ‘李清照’, ‘2900’, ‘200’, ‘100’, ‘100’, ‘300’, ‘3月’, ‘未结算’);
– Table structure foruserlist
DROP TABLE IF EXISTSuserlist;
CREATE TABLEuserlist(
statusvarchar(20) COLLATE utf8_unicode_ci NOT NULL,
usernamevarchar(20) COLLATE utf8_unicode_ci NOT NULL,
passwordvarchar(20) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (username)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
– Records of userlist
INSERT INTOuserlistVALUES (‘管理员’, ‘admin’, ‘123456’);
INSERT INTOuserlistVALUES (‘管理员’, ‘quan’, ‘1’);
INSERT INTOuserlistVALUES (‘管理员’, ‘wufeng’, ‘123456’);
– Table structure forview_salary
DROP TABLE IF EXISTSview_salary;
CREATE TABLEview_salary(
IDint(10) NOT NULL AUTO_INCREMENT,
工号varchar(10) COLLATE utf8_unicode_ci NOT NULL,
姓名varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
部门varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
职位varchar(25) COLLATE utf8_unicode_ci DEFAULT NULL,
总工资int(10) DEFAULT NULL,
月份varchar(10) COLLATE utf8_unicode_ci NOT NULL,
备注varchar(10) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (ID)
) ENGINE=InnoDB AUTO_INCREMENT=42 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
– Records of view_salary
INSERT INTOview_salaryVALUES (‘1’, ‘0001’, ‘赢政’, ‘经理室’, ‘经理’, ‘2600’, ‘1月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘9’, ‘0002’, ‘刘邦’, ‘技术室’, ‘技术长’, ‘2800’, ‘1月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘11’, ‘0003’, ‘武则天’, ‘财务室’, ‘经理’, ‘2400’, ‘1月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘12’, ‘0004’, ‘刘秀’, ‘军机部’, ‘大王’, ‘2700’, ‘1月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘13’, ‘0005’, ‘西施’, ‘财务室’, ‘会计’, ‘2600’, ‘1月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘14’, ‘0006’, ‘李清照’, ‘财务室’, ‘出纳’, ‘2570’, ‘1月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘15’, ‘0007’, ‘杨玉环’, ‘财务室’, ‘会计’, ‘2630’, ‘1月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘16’, ‘0008’, ‘孙权’, ‘外交部’, ‘部长’, ‘2600’, ‘1月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘17’, ‘0009’, ‘李世民’, ‘董事会’, ‘会长’, ‘2770’, ‘1月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘18’, ‘0010’, ‘项羽’, ‘经理室’, ‘副经理’, ‘2500’, ‘1月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘19’, ‘0011’, ‘李鸿章’, ‘军机部’, ‘部长’, ‘2700’, ‘1月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘20’, ‘0012’, ‘张仪’, ‘外交部’, ‘部长’, ‘2650’, ‘1月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘21’, ‘0013’, ‘朱元璋’, ‘技术科’, ‘部长’, ‘2550’, ‘1月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘22’, ‘0001’, ‘赢政’, ‘经理室’, ‘经理’, ‘2900’, ‘2月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘23’, ‘0001’, ‘赢政’, ‘经理室’, ‘经理’, ‘2950’, ‘3月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘24’, ‘0002’, ‘刘邦’, ‘技术室’, ‘技术长’, ‘2900’, ‘2月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘25’, ‘0002’, ‘刘邦’, ‘技术室’, ‘技术长’, ‘2850’, ‘3月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘26’, ‘0003’, ‘武则天’, ‘财务室’, ‘经理’, ‘2850’, ‘2月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘27’, ‘0003’, ‘武则天’, ‘财务室’, ‘经理’, ‘2570’, ‘3月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘35’, ‘0004’, ‘刘秀’, ‘军机部’, ‘副部长’, ‘2850’, ‘3月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘36’, ‘0004’, ‘刘秀’, ‘军机部’, ‘副部长’, ‘2750’, ‘2月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘37’, ‘0005’, ‘西施’, ‘财务室’, ‘会计’, ‘2800’, ‘2月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘39’, ‘0005’, ‘西施’, ‘财务室’, ‘会计’, ‘2750’, ‘3月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘40’, ‘0006’, ‘李清照’, ‘财务室’, ‘出纳’, ‘2800’, ‘2月’, ‘未结算’);
INSERT INTOview_salaryVALUES (‘41’, ‘0006’, ‘李清照’, ‘财务室’, ‘出纳’, ‘2800’, ‘3月’, ‘未结算’);
特色遍历功能
/*
To change this template, choose Tools | Templates
and open the template in the editor.
*/
/*
SalaryShow.java
Created on 2013-6-24, 9:28:40
*/
package code;
import java.awt.Toolkit;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
/**
*
@author Administrator
*/
public class SalaryShow extends javax.swing.JFrame {
/** Creates new form SalaryShow */
private Toolkit tk = Toolkit.getDefaultToolkit();
int x = tk.getScreenSize().width / 2 - 250;
int y = tk.getScreenSize().height / 2 - 250;
DefaultTableModel dtm = null;
public SalaryShow() {
initTable();
initComponents();
setLocation(x,y);
}
private void initTable(){
String head[] = {“工号”,“姓名”,“部门”,“职位”,“总工资”,“月份”,“备注”};
Object obj[][] = new Object[0][0];
dtm = new DefaultTableModel(obj,head);
String sql = “select distinct 工号,姓名,部门,职位,总工资,月份,备注 from view_salary”;
try{
DBConn db = new DBConn();
Vector v;
ResultSet rs = db.Search(sql);
while (rs.next()) {
v = new Vector();
v.add(rs.getString(1));
v.add(rs.getString(2));
v.add(rs.getString(3));
v.add(rs.getString(4));
v.add(rs.getString(5));
v.add(rs.getString(6));
v.add(rs.getString(7));
dtm.addRow(v);
}
db.close();
} catch (SQLException ex) {
System.out.println(ex);
}
}
/** This method is called from within the constructor to
/**
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new SalaryShow().setVisible(true);
}
});
}
*/
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JTable jTable1;
private javax.swing.JLabel title;
// End of variables declaration//GEN-END:variables
@param args the command line arguments
initialize the form.
WARNING: Do NOT modify this code. The content of this method is
always regenerated by the Form Editor.
*/
@SuppressWarnings(“unchecked”)
// //GEN-BEGIN:initComponents
private void initComponents() {
title = new javax.swing.JLabel();
jSeparator1 = new javax.swing.JSeparator();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle(“员工工资一览表”);
title.setText(“员工工资一览表”);
jTable1.setModel(dtm);
jScrollPane1.setViewportView(jTable1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(209, 209, 209)
.addComponent(title))
.addGroup(layout.createSequentialGroup()
.addGap(105, 105, 105)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 323, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
.addGap(27, 27, 27)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 467, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(24, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addComponent(title, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 303, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(39, Short.MAX_VALUE))
);
pack();
}// //GEN-END:initComponents
}
统计功能
/*
To change this template, choose Tools | Templates
and open the template in the editor.
*/
/*
Statistics.java
Created on 2013-6-23, 14:14:39
*/
package code;
import java.awt.Toolkit;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
@author Administrator
*/
public class Statistics extends javax.swing.JFrame {
/** Creates new form Statistics */
private Toolkit tk = Toolkit.getDefaultToolkit();
int x = tk.getScreenSize().width / 2 - 180;
int y = tk.getScreenSize().height / 2 - 180;
DefaultComboBoxModel dcm;
String[] head = {“部门”, “负责人”, “总人数”, “总工资”};
Object[][] obj = new Object[0][0];
DefaultTableModel dtm = new DefaultTableModel(obj, head);
public Statistics() {
initComboBox();
initComponents();
setTitle(“信息统计”);
setLocation(x,y);
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
}
///初始化下拉列表
private void initComboBox(){
Vector v = new Vector();
DBConn db = new DBConn();
try{
ResultSet rs = db.Search(“select distinct name from department”);
while(rs.next()){
v.addElement(rs.getString(“name”)); //添加到向量尾部,大小加1
}
dcm = new DefaultComboBoxModel(v);
}catch(SQLException ex){
ex.printStackTrace();
}finally{
db.close();
}
}
private void initTable(String sql){
try {
// String[] head = {“部门”, “负责人”, “总人数”, “总工资”};
// Object[][] obj = new Object[0][0];
dtm = new DefaultTableModel(obj, head);
Vector v;
DBConn db = new DBConn();
ResultSet rs = db.Search(sql);
while (rs.next()) {
v = new Vector();
v.add(rs.getString(1));
v.add(rs.getString(2));
v.add(rs.getString(3));
v.add(rs.getString(4));
dtm.addRow(v);
jTable1.setModel(dtm);
}
db.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
/** This method is called from within the constructor to
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO add your handling code here:
String name = (String) jname.getSelectedItem();
int index = jseason.getSelectedIndex();
String sql = null;
if(index == 1){
sql = “select 部门,director,number,sum(总工资) from view_salary,department where " +
“department.name=部门 and 月份 in (‘1月’,‘2月’,‘3月’) and 部门=’”+ name +”’ group by 部门,director,number ";
System.out.println(sql);
}else if(index == 2){
sql = “select 部门,director,number,sum(总工资) from view_salary,department where " +
“department.name=部门 and 月份 in (‘4月’,‘5月’,‘6月’) and 部门=’”+ name +”’ group by 部门,director,number ";
System.out.println(sql);
}else if(index == 3){
sql = “select 部门,director,number,sum(总工资) from view_salary,department where " +
“department.name=部门 and 月份 in (‘7月’,‘8月’,‘9月’) and 部门=’”+ name +”’ group by 部门,director,number ";
System.out.println(sql);
}else if(index == 4){
sql = “select 部门,director,number,sum(总工资) from view_salary,department where " +
“department.name=部门 and 月份 in (‘10月’,‘11月’,‘12月’) and 部门=’”+ name +”’ group by 部门,director,number ";
System.out.println(sql);
}else{
JOptionPane.showMessageDialog(null, “请选择季度”);
}
initTable(sql);
}//GEN-LAST:event_jButton1ActionPerformed
/**
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Statistics().setVisible(true);
}
});
}
*/
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JTable jTable1;
private javax.swing.JComboBox jname;
private javax.swing.JComboBox jseason;
// End of variables declaration//GEN-END:variables
@param args the command line arguments
initialize the form.
WARNING: Do NOT modify this code. The content of this method is
always regenerated by the Form Editor.
*/
@SuppressWarnings(“unchecked”)
// //GEN-BEGIN:initComponents
private void initComponents() {
jname = new javax.swing.JComboBox();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jSeparator1 = new javax.swing.JSeparator();
jseason = new javax.swing.JComboBox();
jButton1 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jname.setModel(dcm);
jLabel1.setText(“部门名称:”);
jLabel2.setText(“季度:”);
jseason.setModel(new javax.swing.DefaultComboBoxModel(new String[] { “–请选择季度–”, “第一季度”, “第二季度”, “第三季度”, “第四季度” }));
jButton1.setText(“查询”);
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
jTable1.setModel(dtm);
jScrollPane1.setViewportView(jTable1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(44, 44, 44)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel2)
.addGap(28, 28, 28)
.addComponent(jseason, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(39, 39, 39)
.addComponent(jButton1))
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jname, 0, 190, Short.MAX_VALUE)
.addGap(189, 189, 189))))
.addGroup(layout.createSequentialGroup()
.addGap(26, 26, 26)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 399, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 378, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(56, 56, 56)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(19, 19, 19)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jseason, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2)
.addComponent(jButton1))
.addGap(20, 20, 20)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 228, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(50, Short.MAX_VALUE))
);
pack();
}// //GEN-END:initComponents
}
结果截图