// 项目目标:建立员工管理系统第一个版本。! [# k' s3 w$ Y, F" V
// 实现图形用户界面的员工信息查询、增、删、改;与数据库建立,并将修改结果时时保存到数据库。: i# m/ }" R8 r* H2 J( x* ~ R+ q
// 模块:1.GUI界面 2.数据库连接 3.查询 4.增、5删 6改(操作数据库) import java.sql.*;
3 r5 l6 P8 ~6 u6 rimport java.awt.*;; A4 R3 O6 U: s5 f$ ?, ^8 N# |
import java.awt.event.*; import javax.swing.*; public class EmpManageSys implements ActionListener {5 ~; N5 A3 q* N4 p) S; s
Connection con;$ t. L" g& i" ?9 w& J
Statement stmt;
" `% [& F6 Q$ e7 N. l' [ hString sql;
/ f, K/ {6 s1 M7 ~* x- a# D/ ]ResultSet rs;
7 s0 f9 r3 r; e) Y' E6 Q4 bStringBuffer sb = new StringBuffer(); JTextField jtf2 = new JTextField("张飞",10); JTextField jtf3 = new JTextField(10); JTextField jtf4 = new JTextField(10); JTextField jtf7 = new JTextField(10); JTextField jtf5 = new JTextField(10); JTextField jtf6 = new JTextField(10); JTextField jtf8 = new JTextField(10); JTextField jtf9 = new JTextField(10); JTextArea jta10 = new JTextArea(50, 40); public void actionPerformed(ActionEvent e) {
4 W" Y$ N& U( m3 C8 Q$ ^! ~4 d+ NString str = e.getActionCommand();
7 j" e1 D. R/ I8 c' t# ~9 Rif ("查询".equals(str)) { //if check the button of 查询,then go to method of searchEmp()4 z2 |% D* ~. t/ E8 y* J
searchEmp();
1 U* U; c. t% ]7 j. a+ N4 Y& K} else if ("增加".equals(str)) { //if check the button of 增加,then go to method of addEmp()
) L5 [3 @4 k( J9 a! zaddEmp();
9 @* i- A5 k' b4 G) @} else if ("修改".equals(str)) { //if check the button of 修改,then go to method of alterEmp()
8 I: i0 A& c8 U4 Y7 B4 LalterEmp();) G7 r5 a2 }: l
} else if ("撤除".equals(str)) { //if check the button of 撤除,then go to method of deleteEmp()
, {) h4 b/ X2 ~1 K4 R$ w( `deleteEmp();4 c1 i6 k2 K4 b) v: f
}5 e2 L4 @* T" b9 D
} //this is the constructor. EmpManageSys() {. K3 B6 u( F& }9 P9 K7 [1 A
createGUI();0 f j: a" j9 A0 A" c' J
connectToDataBase();
7 b5 Y5 N! c) \// searchEmp();( g+ _) n& x2 |; w- ?
// addEmp();: K/ _5 l( k2 K+ c% U3 e9 C
// deleteEmp();8 H9 i" o( M/ e5 x, r6 R! a# j4 Y/ I
alterEmp();" j9 z3 l) K9 q+ r+ n8 `! _
} //connect to the database by using the method getConnection from the class of JdbcUtil. //You can find the class of JdbcUtil at the button of this page. public Connection connectToDataBase() {( j- Y+ ^5 G' D; q
con = JdbcUtil.getConnection();
: A4 m# h8 B2 K/ A4 I8 RSystem.out.println(con);/ D5 R3 E( H5 N; c0 x1 L1 ~, k
return con; } public void searchEmp() {
8 L; c; ?( z+ P! Q6 k4 Ijta10.setText("");
7 [5 @/ J. d; w9 r2 ftry {
) g! m8 B! T" X+ |5 ystmt = con.createStatement();8 _* X, ^1 W' \$ Y
// sql = "select * from Mstar where id=" + jtf3.getText();1 l0 h) b* `7 m! _
// sql1="select * from sd100343 where ="+jtf3.getText();; B6 E# `3 k( f; [! p4 M1 o
sql = "select * from Mstar where chineseName="9 |7 `# [4 Y7 u& x w: w1 [
+ jtf2.getText().toLowerCase().trim() + "or id="
- f2 `* }0 e; @0 c+ jtf3.getText().toLowerCase().trim() + "or engName="6 J6 D5 Y( h4 w9 G
+ jtf4.getText().toLowerCase().trim() + "or UNIT="4 A+ m" Y+ |7 Z
+ jtf5.getText().toLowerCase().trim() + "or TEAM="
$ m/ _; C- I, L+ k+ jtf6.getText().toLowerCase().trim() + "or Phone="
) {# u0 Y7 D8 M* N$ p0 `' O. q+ jtf7.getText().toLowerCase().trim() + "or region="
; F' U* ^' Y7 [$ ?! \$ S; F: f+ jtf8.getText().toLowerCase().trim() + "or busStation="
9 B9 ]3 p; F+ M3 i/ m# f# P! D+ jtf9.getText().toLowerCase().trim();) O* d4 M6 P0 P0 O$ Z* M
stmt.executeQuery(sql);
- N* @1 J& [* F4 b \6 trs = stmt.getResultSet();( A1 b' ^, ^: A3 _" I$ e! v8 R- W
ResultSetMetaData meta = rs.getMetaData();$ O6 W0 @) N# y9 R, G
int cols = meta.getColumnCount();
0 ^5 F0 v0 o0 j" Y1 ^3 Vwhile (rs.next()) {
: @/ ?8 C- {) [7 [5 vfor (int i = 1; i <= cols; i++) {' Y) Y4 ?/ Q7 j: n2 G* `( y
sb.append(" " + meta.getColumnName(i) + " =");5 C. T4 `3 S" {# s% C
sb.append(rs.getString(i));
0 s/ Q! H7 d2 I# g# \% d}
- K" }$ |9 J9 |9 G; D, U' Rsb.append("\n");3 Y! y7 U0 g# j2 m3 \1 H# D5 Q" l
jta10.setText(sb.toString());
% @9 e& T3 K% b, Y- w+ S7 i}
- J/ `% O5 P, K} catch (SQLException e11) {
) g8 T x3 S- A8 j5 `4 E" Be11.printStackTrace();/ N/ H4 E0 D% c' m; O
} } public void addEmp() {; G7 i) @/ T! i. X1 |) R
try {* O/ N* v0 ^& v% E! ]
stmt = con.createStatement();/ N& A+ U2 o J: J& }3 Q( C
sql = "update Mstar values(" + jtf2.getText() + jtf3.getText()4 c% M, `7 ^8 S5 v* |6 r
+ jtf4.getText() + jtf5.getText() + jtf6.getText()
6 E; R9 _( i' J7 k1 k: V8 s3 m6 O+ jtf7.getText() + jtf8.getText() + jtf9.getText() + ")";
# o, L; p6 D, b; a/ j% w0 \int i = stmt.getUpdateCount();
6 z, j! \5 T7 e( E4 Gif ((jtf2.getText() != null) && (jtf4.getText() != null); _ |" B* E$ K
&& (jtf6.getText() != null) && (jtf7.getText() != null)) {
7 g8 | p! E5 {1 ^stmt.executeUpdate(sql);
( ~6 c& G, I3 {* L' u2 {jta10.setText("添加记录成功" + i + "条");
- g, y7 j% C5 r} else {" P- }( m# c* h: R
jta10.setText("带*号项为添加记录时不能为空");- \$ q9 W& T. t
}
) q( a8 |+ j; N7 v( _} catch (SQLException e1) {( V4 ?: k% v: e- N5 W5 b, @
e1.printStackTrace();6 ]3 {: G) U8 @6 V6 c# u
}
0 L# e6 g) ~6 z1 o4 S} public void deleteEmp() {
3 ]% a) f3 ~- G2 @searchEmp();3 o! g7 b: s$ q+ n2 U
try {3 _8 X$ z l7 {1 N
stmt = con.createStatement();
# }6 t! O+ u( W4 r5 U) ksql = "delete from Mstar where chineseName=") F1 t6 i$ S/ e/ N# n
+ jtf2.getText().toLowerCase().trim() + "or id="7 U& M6 h& X3 Y7 ^
+ jtf3.getText().toLowerCase().trim() + "or engName="
% \$ w+ G0 r# o% b* o; e+ jtf4.getText().toLowerCase().trim() + "or UNIT="
. g" Y3 r9 b) E0 Y+ jtf5.getText().toLowerCase().trim() + "or TEAM="
; M1 U& l$ T; [* L+ jtf6.getText().toLowerCase().trim() + "or Phone="
) X' I7 N4 M, }7 e4 ]0 V+ w+ jtf7.getText().toLowerCase().trim() + "or region="
5 f0 _ N' m; }+ B/ l8 T- j$ Y+ jtf8.getText().toLowerCase().trim() + "or busStation="
; J' t$ z6 a; g" t. s& [# q( t' C& t+ jtf9.getText().toLowerCase().trim();) Q* T8 p2 X2 X
stmt.executeUpdate(sql);' Z" P3 Z9 Q9 ^, _7 O. C% o
int i = stmt.getUpdateCount();, x: i8 W0 J# W6 i% a
jta10.setText("撤除操作成功" + i + "条");! f0 P' z9 J3 o& P4 k5 _% z
} catch (SQLException e) {4 Q6 u5 B1 s) @! `
e.printStackTrace();
1 X8 O4 s2 q# \, Q0 S- N V} } public void alterEmp() {+ F$ ^, H9 h* F4 l9 `
searchEmp();9 f' R# D+ N$ t2 L l
sql = "update Mstar set chineseName="
0 n* N: r9 r; C! s+ jtf2.getText().toLowerCase().trim() + "and id="
- B7 o4 _7 s# N: O. K+ jtf3.getText().toLowerCase().trim() + "and engName="
' y0 {! c* b$ I$ k/ K4 N2 j+ jtf4.getText().toLowerCase().trim() + "and UNIT="
6 Y: |' V; @7 R$ C; Y( C' H5 e/ `. }+ jtf5.getText().toLowerCase().trim() + "and TEAM="
3 D6 K7 `6 {( K! z0 T+ f/ k8 z) W+ jtf6.getText().toLowerCase().trim() + "and Phone="
2 Z. n# M/ I3 j2 y; t5 Z& ~; o+ jtf7.getText().toLowerCase().trim() + "and region="5 l" M* D1 B( f* i2 |
+ jtf8.getText().toLowerCase().trim() + "and busStation="# f* z" M) S# D$ Z1 s4 @! f; m+ e
+ jtf9.getText().toLowerCase().trim(); int i = 0;5 q' O" q# S( m: L2 k
try {1 P' _' f* K$ i; G) [1 Q
stmt.executeUpdate(sql);8 W% C4 a3 p5 Z4 Y* s" ^% B0 p; [5 e
i = stmt.getUpdateCount();# p3 b, K0 B h2 f* G
} catch (SQLException e) {8 v' }8 L0 I! A
e.printStackTrace();0 A2 @5 |( ~1 I; p+ G
}6 u. C: G, R( O, L
jta10.setText("修改操作成功" + i + "条");
) V& b5 c; m: w6 d+ \8 w7 {} public void createGUI() { ]6 g) W1 a& k. g4 k3 E# |
JFrame jf = new JFrame("员工信息管理系统");
# \3 Y% k+ J: W5 Q$ ~jf.setLayout(new GridLayout(2, 1));; J) Q! X. w2 ]& K" v0 A
// jf.setLayout(new GridLayout(10,2));
. h& g: |+ I: ~0 V: v9 PJPanel jp00 = new JPanel(new GridLayout(5, 4)); JPanel jp1 = new JPanel();
1 a! ~. U( r+ \* n/ C+ d+ K: SJButton jb11 = new JButton("查询");7 g% K1 {+ }- H- [, n
jb11.addActionListener(this);
" t" ^/ [( C7 g* y$ p( A$ LJButton jb12 = new JButton("增加");
' U T; E7 J) R# L- L+ mjb12.addActionListener(this);
; d L4 a9 v5 L2 d1 Fjp1.add(jb11);) Q& N: n; y9 Z, K/ {2 J
jp1.add(jb12);9 i+ w8 ?2 v7 D( g" q6 n
jp00.add(jp1);2 H2 y7 ^% M, o3 K8 w
JPanel jp11 = new JPanel();6 Y& e' Y6 Z0 J1 R7 X
JButton jb111 = new JButton("修改");
0 n/ M: g: T) `' @) Ejb111.addActionListener(this);
r# n' H6 e2 A/ L; r7 U+ GJButton jb112 = new JButton("撤除");
2 ~ d6 s# J8 _1 f/ B& ~jb112.addActionListener(this);/ r# b, T0 ] M5 E( A
jp11.add(jb111);7 @ ^/ i6 N8 `# V& ?
jp11.add(jb112);
7 F+ \6 V$ ?/ v/ vjp00.add(jp11);6 T1 X0 B( [: l9 \; P7 D
JPanel jp2 = new JPanel();4 j7 T8 a9 v4 y0 O
JLabel jl2 = new JLabel("中 文 名 * ");
6 @; u) S+ h3 P \- f$ Wjp2.add(jl2);
' u/ X! O) l; ^/ j2 `0 Fjp2.add(jtf2);5 ~7 C9 n; h, p q1 Q9 T: L
jp00.add(jp2);
9 Z3 ]" A- H2 D$ E% ?. \# VJPanel jp3 = new JPanel();4 s( O9 a/ N/ `1 Q' P9 {5 x4 l
JLabel jl3 = new JLabel("工 号 ");3 h$ Y1 f5 ^$ p1 O4 q9 Y
jp3.add(jl3);2 G% H' R# _* C- @; c& ~
jp3.add(jtf3);0 U0 O% z. z. T8 L" M
jp00.add(jp3);/ y, ?$ v% O; [. w( ^4 b1 U. ~
JPanel jp4 = new JPanel();
! v6 L. Z" X5 R; xJLabel jl4 = new JLabel("EngName*");/ u# L* `: W# _* m
jp4.add(jl4);
6 t8 k; P& ~) @3 _jp4.add(jtf4);$ E' T, L E6 z/ o+ m# ^# A
jp00.add(jp4);
! s/ R2 j& K1 T" _8 oJPanel jp5 = new JPanel();! m o5 y- f# L5 O, i
JLabel jl5 = new JLabel("UNIT ");
' V2 j3 d9 G9 ?) b5 W* y7 V! U/ h6 k8 ~jp5.add(jl5);
3 M$ [* A7 n9 H" [' K: j' rjp5.add(jtf5);
: O* J6 _2 P3 A* ~% Yjp00.add(jp5);
x+ t A3 M K' {2 t: S, g- IJPanel jp6 = new JPanel();2 ~9 Z) e7 f, p6 ?
JLabel jl6 = new JLabel("TEAM* ");- p K5 Y/ \7 K+ q# |
jp6.add(jl6);
: O+ k& f6 q9 u- [7 v6 I9 Jjp6.add(jtf6);
2 t6 E* A5 G# L- K2 I& \" Hjp00.add(jp6);
3 n& {2 N6 H1 A2 h4 F8 eJPanel jp7 = new JPanel();* |: U$ n+ r+ U) p: {& C+ `
JLabel jl7 = new JLabel("Phone* ");
* o$ G7 J" u6 J' } H& Qjp7.add(jl7);
6 h+ D; J, L7 |* A p4 `. n+ I& M8 tjp7.add(jtf7);4 |' L4 [* p4 C0 _: x
jp00.add(jp7);0 t: E4 P$ i) w% t7 }. s8 j! X
JPanel jp8 = new JPanel();
) c, @0 j6 a% ^& @0 J6 kJLabel jl8 = new JLabel("区域 ");
2 s. r' v3 G& v) L9 xjp8.add(jl8);. j5 b6 p# H4 h* S4 p
jp8.add(jtf8);1 Q1 \; z# j5 q2 x
jp00.add(jp8);
' I& T( f, ^, I8 w% w) ]JPanel jp9 = new JPanel();, F8 c, R. J8 y
JLabel jl9 = new JLabel("公交站 ");& Z: z7 d1 S. G" [! j
jp9.add(jl9);6 Z7 m( X5 ^7 i9 S
jp9.add(jtf9);
2 i9 k) g: `/ n Gjp00.add(jp9);+ z6 R5 C& d9 p& C
jf.add(jp00);
% z4 J' G$ u0 |( aJPanel jp01 = new JPanel();
" b/ l+ I ^. ^, ]8 `" U. Xjta10.setText("--用户使用手册-- \n1、查询:选择一个字段,如 EngName 在文本框中输入相应内容,点击查询\n2、增加:在各个文本框中输入相应内容后,点击增加。\n3、修改:先查询到你要的记录,在更改相应内容,点击修改。\n4、撤除:类似于修改操作");
! ^# i' U! S" b# Z; Rjp01.add(jta10);* G' \5 b. Y! P: ?: X' X
jf.add(jp01);$ P+ ~$ I6 p8 F3 t
jf.setSize(700, 500);
( [% O7 @; N( S4 \jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
1 J7 P; x# w. D' V! gjf.setVisible(true); } public static void main(String[] args) {
2 e/ [6 b" f ]2 knew EmpManageSys();, {' a0 [, @7 |) @8 `3 I
}
) u. U4 F l, a$ N6 Z} 5 I3 }- ]" P% g2 E
|