|
// 项目目标:建立员工管理系统第一个版本。! H9 [8 A8 A0 i% N7 R
// 实现图形用户界面的员工信息查询、增、删、改;与数据库建立,并将修改结果时时保存到数据库。
! }' c# H$ t% L; S9 ]// 模块:1.GUI界面 2.数据库连接 3.查询 4.增、5删 6改(操作数据库) import java.sql.*;
- P0 Z% E- I! v) simport java.awt.*;
: T# \8 S1 s3 j0 m. E: l, yimport java.awt.event.*; import javax.swing.*; public class EmpManageSys implements ActionListener {
N% m0 W6 j: N: bConnection con; I7 y ^) v+ l# Q* z e
Statement stmt;
1 [& A& e( z: P( ~+ S- e6 q9 u% dString sql;
1 R" g8 M8 k% O+ G6 fResultSet rs;' V3 i8 P) D. f3 c* A2 S
StringBuffer 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) { y. ?" J- J/ ` L) q
String str = e.getActionCommand();: i- O' ? t a! R$ |1 G4 `
if ("查询".equals(str)) { //if check the button of 查询,then go to method of searchEmp()
' E/ @" t A5 }0 L' ?5 M1 b. xsearchEmp();5 D; S8 \2 N3 I1 k% F
} else if ("增加".equals(str)) { //if check the button of 增加,then go to method of addEmp()9 [: ^4 g8 |5 A* i* ~4 |
addEmp();
^4 m2 l; [1 v9 L" u7 R} else if ("修改".equals(str)) { //if check the button of 修改,then go to method of alterEmp()4 h- g' `2 S3 m$ T2 P+ ^9 h* G
alterEmp();8 B$ U) g( G$ I+ u8 t
} else if ("撤除".equals(str)) { //if check the button of 撤除,then go to method of deleteEmp()
/ R7 V1 }9 `) |deleteEmp();
2 n& N5 m& q! J3 t}' e* j$ x6 B2 Y/ z4 o
} //this is the constructor. EmpManageSys() {
: H- }# R/ w' t# `$ D) F! QcreateGUI();, B& y1 o" W5 U% p5 H1 Z, |
connectToDataBase();% I1 a: O9 [' Y2 K0 [
// searchEmp();
: r6 m/ ]4 O6 k% F# y// addEmp();
1 b5 B% r5 V/ {% G! ?+ G. a// deleteEmp();# M4 F; _" D/ ]1 }. X5 \3 X
alterEmp();
# N, O8 z4 y. `+ t$ v} //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() {
; i: N+ K B }+ o/ W& Jcon = JdbcUtil.getConnection();
& S5 i5 q. o/ i0 }" k- \System.out.println(con);+ N% a: A1 h* Q$ S" n+ g$ w1 E
return con; } public void searchEmp() {
' s/ M* ?8 Q+ b- r# \- Vjta10.setText("");6 m" u/ C9 \$ @; M
try {. P g) D! X2 ?
stmt = con.createStatement();! m: {5 C% h8 d) B) f( ^
// sql = "select * from Mstar where id=" + jtf3.getText();( P* a, T/ z% p/ O
// sql1="select * from sd100343 where ="+jtf3.getText();
5 ~5 G" d' k) @7 W( Bsql = "select * from Mstar where chineseName="
) K0 r6 R' a# O! f" t: \, Z+ jtf2.getText().toLowerCase().trim() + "or id="
1 [" X( c- Q- Q: B# k/ ]) h+ jtf3.getText().toLowerCase().trim() + "or engName="
" j4 `: ~5 D* o) T, j+ jtf4.getText().toLowerCase().trim() + "or UNIT="" Z# M3 d3 Z) ]1 ~: ]; y
+ jtf5.getText().toLowerCase().trim() + "or TEAM="# g6 x9 P! L0 F
+ jtf6.getText().toLowerCase().trim() + "or Phone="( L( {6 _5 y* d: T
+ jtf7.getText().toLowerCase().trim() + "or region="
4 O3 ~- b6 W3 u3 [+ jtf8.getText().toLowerCase().trim() + "or busStation="
- f1 v7 n3 a6 d* Q+ jtf9.getText().toLowerCase().trim();
& i7 T. J* A' Z8 r- N3 _stmt.executeQuery(sql);
+ D$ M$ T2 w- {6 y" h: C; W8 L9 drs = stmt.getResultSet();
( I) X* V* g4 ?8 DResultSetMetaData meta = rs.getMetaData(); x; C1 n" r& Y( G) C- D
int cols = meta.getColumnCount();
0 S9 t( l8 B7 f; j; k0 r: Iwhile (rs.next()) {
# H; k& p( U5 efor (int i = 1; i <= cols; i++) {
9 f% i$ S0 [9 U1 @& `sb.append(" " + meta.getColumnName(i) + " =");0 }, c, o2 F, T. s! c, q. N
sb.append(rs.getString(i));- {0 p- {8 i$ z3 }* Q& k% M! S
}
# g( e. o' T. a% S0 C& ^sb.append("\n");
. i) b, r# ]3 u0 R2 [% w, Bjta10.setText(sb.toString());
% e; X( r2 s) `; P8 r/ k( x1 ~}/ H- z* I- I3 i
} catch (SQLException e11) {
# h' p+ i" `% J. Se11.printStackTrace();
. i* x. r+ S, k# z$ A} } public void addEmp() {
, |& T) W0 P" rtry {5 w; A9 r' {8 f0 ^8 ]
stmt = con.createStatement();& o# R4 a; h" ~& G! `/ P# D; y
sql = "update Mstar values(" + jtf2.getText() + jtf3.getText()
' L5 T" m1 p( _- y- I$ c8 A+ jtf4.getText() + jtf5.getText() + jtf6.getText()
7 u1 {# S% T. ?6 n6 f9 M& q* G+ jtf7.getText() + jtf8.getText() + jtf9.getText() + ")";9 h- N1 ~& D! [
int i = stmt.getUpdateCount();: b6 ^" M( ]$ }) [9 a6 v4 I0 \) ~
if ((jtf2.getText() != null) && (jtf4.getText() != null)" s! s8 v% l" K/ q8 D
&& (jtf6.getText() != null) && (jtf7.getText() != null)) {
; c6 H8 p$ Q3 f7 ~! z2 {8 Fstmt.executeUpdate(sql);9 X$ A( |& V9 \5 m
jta10.setText("添加记录成功" + i + "条");- l" Z) e0 n0 b$ p# Y2 H2 [
} else {' m" ^' E4 B; Z) L z. S- Z" Y9 f
jta10.setText("带*号项为添加记录时不能为空");! a- n: x8 |) k! H8 V
}
3 k) i0 x; N% c$ K$ e/ l0 e L} catch (SQLException e1) {
q8 g9 s( V$ D3 o# F4 ]0 ce1.printStackTrace();
1 [ x4 t. l7 k- P( G}0 [9 l' u1 W& H7 v5 h/ a
} public void deleteEmp() {
0 n3 b2 W& F+ K' {; xsearchEmp();
- Z( n+ Q+ i4 J/ S: Rtry {2 n3 b. }* J0 S9 ? S8 @
stmt = con.createStatement();7 j; A! n) T4 k' N) S3 x$ k
sql = "delete from Mstar where chineseName="- t p0 n0 Y. x
+ jtf2.getText().toLowerCase().trim() + "or id="& i" G* V3 H# V
+ jtf3.getText().toLowerCase().trim() + "or engName="* Y/ b, A( I/ V' _% m
+ jtf4.getText().toLowerCase().trim() + "or UNIT="; K3 N5 ]. i7 ?7 p
+ jtf5.getText().toLowerCase().trim() + "or TEAM="
0 v& K. H9 ^( N# i* B5 j: k4 t+ jtf6.getText().toLowerCase().trim() + "or Phone="+ j2 {7 V$ R! `% _
+ jtf7.getText().toLowerCase().trim() + "or region="
+ j* }* N3 m: U n7 u9 M- D& _+ jtf8.getText().toLowerCase().trim() + "or busStation="% J ^: j2 f! q4 n/ v9 \
+ jtf9.getText().toLowerCase().trim();
& g6 K( W, P% C6 F3 rstmt.executeUpdate(sql);
' j! ~/ y7 v2 Z0 S: q. Fint i = stmt.getUpdateCount();; K4 J0 j' x0 V5 t0 u: M4 P I
jta10.setText("撤除操作成功" + i + "条");& l/ g$ f p8 {4 x; q) a2 }
} catch (SQLException e) {. R) V) t( X3 E# z' E' W
e.printStackTrace();3 C! d! m) c' U( o3 t# M6 T7 b
} } public void alterEmp() {3 L& J- k( x" U( H2 r. v
searchEmp();( \- B Z- S% o7 z* v% {
sql = "update Mstar set chineseName="6 D( v- h2 J" i" }
+ jtf2.getText().toLowerCase().trim() + "and id="
$ `# Z, z/ c4 y0 m0 [+ jtf3.getText().toLowerCase().trim() + "and engName="3 k2 A, W0 R: t5 }! T0 ]) P
+ jtf4.getText().toLowerCase().trim() + "and UNIT="" Y. P. q9 q: O
+ jtf5.getText().toLowerCase().trim() + "and TEAM="* s4 `! s$ _4 l2 P1 B/ c
+ jtf6.getText().toLowerCase().trim() + "and Phone="
9 D( B/ E. ` y: m% i+ jtf7.getText().toLowerCase().trim() + "and region="
' O" K9 x, g3 N$ B& J+ jtf8.getText().toLowerCase().trim() + "and busStation="
8 z+ Y% P8 Z0 ]5 e' [9 G" X P+ jtf9.getText().toLowerCase().trim(); int i = 0;
' O/ X4 ^' d& u( Ktry {
0 o! @2 Z7 @7 w0 p- H. }' z7 ]6 Nstmt.executeUpdate(sql);& H! @& H2 J( A
i = stmt.getUpdateCount();5 `4 K1 k3 C' J# I
} catch (SQLException e) {5 t0 ]0 U. O0 L$ @' d
e.printStackTrace();+ R% K- ~" h& Y9 {/ ^$ t
}2 G/ n) t: E7 y8 Y1 @3 @
jta10.setText("修改操作成功" + i + "条");: \0 p$ w+ x$ [( |6 Z/ ?, V" P
} public void createGUI() {) s" {- i- J q/ M2 m7 T
JFrame jf = new JFrame("员工信息管理系统");
4 C+ e9 c* f9 Xjf.setLayout(new GridLayout(2, 1));% V. G2 o6 H; Z% J) L9 ~! _
// jf.setLayout(new GridLayout(10,2));
9 c+ w7 ~$ ~/ s# S1 P0 w! t5 F* ZJPanel jp00 = new JPanel(new GridLayout(5, 4)); JPanel jp1 = new JPanel();
$ g$ J8 O' Z4 M! `3 pJButton jb11 = new JButton("查询");, X9 @' k k/ @+ a+ k! q3 s$ t
jb11.addActionListener(this);( D/ C5 b4 s. O) R. C- ^
JButton jb12 = new JButton("增加");
& n7 ?' p9 b0 F9 ?9 n1 I. a5 R% |jb12.addActionListener(this);
/ B6 y( m, m0 y. _2 Djp1.add(jb11);
7 e1 @' L5 b+ {% W& K- yjp1.add(jb12);" D3 R0 Z& k2 G4 ?
jp00.add(jp1);
# K; N% R" l. I- @JPanel jp11 = new JPanel();/ D J8 q* X2 P/ ~) I% H+ p
JButton jb111 = new JButton("修改");, Y3 S' M! H3 K1 f; ^; [) i
jb111.addActionListener(this);
! e" r' N4 _! q0 YJButton jb112 = new JButton("撤除");
' m9 B8 m$ y: v! \$ L, H7 Jjb112.addActionListener(this);* E X& J, y# I3 Q
jp11.add(jb111);
7 W; b! Q+ }4 E5 Y$ gjp11.add(jb112);# d" x% K- P0 j
jp00.add(jp11);
! L; r2 k! C6 o+ l1 \5 jJPanel jp2 = new JPanel();4 n! ^7 y7 \( k/ Z
JLabel jl2 = new JLabel("中 文 名 * ");
- \7 ~ X; K& [2 {, ^ rjp2.add(jl2);5 o/ k/ g: N0 T& N. [# U3 G. Y
jp2.add(jtf2);
8 i' u {& ~2 L+ ]' U. A. ^jp00.add(jp2);
- _6 R9 X: `3 vJPanel jp3 = new JPanel();
; Z! m2 [ M" S& v3 A7 l1 N1 QJLabel jl3 = new JLabel("工 号 ");; X3 A8 F+ U8 H# W$ v0 P% N9 X* x
jp3.add(jl3);
& n/ o9 g9 ^2 f* m3 b& P# ujp3.add(jtf3);7 X+ ~# Z, o5 }4 k" R
jp00.add(jp3);; I$ L* s# Y" j. ^, r& v2 \" j
JPanel jp4 = new JPanel();" E8 V& G% L; o( U. K* n9 o
JLabel jl4 = new JLabel("EngName*");& i7 I5 w. T* t# [
jp4.add(jl4);
" a+ X; X, J: {5 A F I3 i/ kjp4.add(jtf4);: N( |9 {/ S7 [
jp00.add(jp4);' P4 Y6 n" C( O( l8 F; e
JPanel jp5 = new JPanel();
+ Z; H5 t* w) y7 zJLabel jl5 = new JLabel("UNIT ");
* X* {- s( J* @2 k: rjp5.add(jl5);
1 m9 [& y& ^0 njp5.add(jtf5);# X! g9 J% W0 q; ?& q6 m
jp00.add(jp5);: h! [# n! J/ r& s
JPanel jp6 = new JPanel();
% o/ V6 O/ H/ d \JLabel jl6 = new JLabel("TEAM* ");, b- s1 c6 D Z, e& x0 I
jp6.add(jl6);
# u- d/ w+ e* a( d0 Yjp6.add(jtf6);4 K/ Z" F4 |& Z- o
jp00.add(jp6);
4 c S+ w6 q& f7 V. Z* VJPanel jp7 = new JPanel();. f7 B5 K* W0 {" R9 d; L
JLabel jl7 = new JLabel("Phone* ");
4 ]& v# P, C( o* _* ijp7.add(jl7);
* q+ a" x! f. k2 M: v0 bjp7.add(jtf7);4 u: E; G/ }9 o& _& r
jp00.add(jp7);2 J& [. }' y2 ~. k. Z2 I4 P
JPanel jp8 = new JPanel();
: d4 p( q/ q9 h+ n6 \' j& ]/ PJLabel jl8 = new JLabel("区域 ");
) S4 @" f1 x6 f0 {# h/ }jp8.add(jl8);
! ~* G8 F) ?& @+ _3 ]jp8.add(jtf8);' ~: d: c6 j! Y8 o8 B
jp00.add(jp8);
# i" x% J; U: {7 t8 L& g. P% D. [8 bJPanel jp9 = new JPanel();
3 |! n! d, X; u( v1 iJLabel jl9 = new JLabel("公交站 ");
0 [4 }# `( s4 I8 J; j" rjp9.add(jl9);, k3 q: U7 w/ x) }% A" _
jp9.add(jtf9);
G( T6 ]. Y+ w/ j5 {, Ijp00.add(jp9);/ b2 d- f; p: c
jf.add(jp00);2 c, {$ |) J6 }( w/ H* S% X: Q9 G
JPanel jp01 = new JPanel();
, ?& P- R; E1 \! T7 j% c9 R- Sjta10.setText("--用户使用手册-- \n1、查询:选择一个字段,如 EngName 在文本框中输入相应内容,点击查询\n2、增加:在各个文本框中输入相应内容后,点击增加。\n3、修改:先查询到你要的记录,在更改相应内容,点击修改。\n4、撤除:类似于修改操作");8 ^* ^& e7 T! K* b6 l3 q( D! |
jp01.add(jta10);
' q) B2 j- }) |! W3 J9 A/ Gjf.add(jp01);
" x0 h4 C% V( }6 }; A2 F8 {jf.setSize(700, 500);- s* I( y) H) G
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);8 b1 ?5 f& U3 t: S. d
jf.setVisible(true); } public static void main(String[] args) {
7 i2 F# [" s: F8 Snew EmpManageSys();! @8 W" Y6 Y, I! t+ g
}
+ V, ~6 n6 B8 G) x2 R} 6 I. @, G: m B7 L- W- \# |
|