// 项目目标:建立员工管理系统第一个版本。) h( A/ m' s: Z& {2 p3 q
// 实现图形用户界面的员工信息查询、增、删、改;与数据库建立,并将修改结果时时保存到数据库。7 P" h! U( K0 }0 Z
// 模块:1.GUI界面 2.数据库连接 3.查询 4.增、5删 6改(操作数据库) import java.sql.*;" `$ z; L: v! Q3 T1 R
import java.awt.*;
1 z' V$ k2 U9 M& q; i7 eimport java.awt.event.*; import javax.swing.*; public class EmpManageSys implements ActionListener { h2 \% Q. B, m0 c' b
Connection con;
( l, R" ]$ o% @6 M9 Y" YStatement stmt;
, J$ P7 D" g% H! w" E YString sql;
* x) T; V; e9 f0 |2 t0 TResultSet rs;8 h/ C7 R9 ]# L- ]7 W; g8 [( F$ L
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) {
( w& b2 u& `% ~! _String str = e.getActionCommand();
: I2 `* L5 ?7 X9 w4 t6 h' S( i1 kif ("查询".equals(str)) { //if check the button of 查询,then go to method of searchEmp()
2 O+ t$ A. e) T4 N0 VsearchEmp();" N8 I' x8 w0 C
} else if ("增加".equals(str)) { //if check the button of 增加,then go to method of addEmp()
4 ]9 x) j" {4 l7 IaddEmp();
3 c+ J6 M- B/ c, z} else if ("修改".equals(str)) { //if check the button of 修改,then go to method of alterEmp()* Z' J1 `" n9 C$ n4 i& ? ]
alterEmp();
; H. w# w2 v% h3 x( _} else if ("撤除".equals(str)) { //if check the button of 撤除,then go to method of deleteEmp()
- ]. d; F5 X$ q8 d3 j- BdeleteEmp();/ g H' F, b' M: F
}+ N/ Y( n. I, E. C, o0 p' C
} //this is the constructor. EmpManageSys() {6 X7 M) L* D2 H' r' Z
createGUI();9 o! z$ B! p8 }
connectToDataBase();
( T9 d3 i6 i- R- t// searchEmp();; M& p/ d9 A- m. f! \
// addEmp();
0 H' o9 X* Q" r3 W8 N! Y// deleteEmp();! I H8 L+ x2 a# \: i
alterEmp();
; q0 ~4 [+ P2 `/ 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() {
1 m" B1 g! {! q2 A9 P0 v0 Ccon = JdbcUtil.getConnection();
$ Q I$ {) @ U' y- @7 m4 YSystem.out.println(con);# T4 E6 C. J8 r' z4 l7 v2 k- ]
return con; } public void searchEmp() {2 B8 T; U* N2 v( g
jta10.setText("");
9 V9 a) C) x. rtry {
) M3 f. E( Y* Y! t/ U% L, ^, N; xstmt = con.createStatement();
, x: i- J; r: p$ o9 F% \) [# K// sql = "select * from Mstar where id=" + jtf3.getText();
" _/ M8 S! |0 z: }2 F7 ]8 ]9 k// sql1="select * from sd100343 where ="+jtf3.getText();
8 c' F; U; J) A2 ?8 W4 \sql = "select * from Mstar where chineseName="
% A$ ^* j4 s- y, L+ jtf2.getText().toLowerCase().trim() + "or id=". ]' y* N4 {2 A
+ jtf3.getText().toLowerCase().trim() + "or engName="/ [, Y; o# Y' M4 u
+ jtf4.getText().toLowerCase().trim() + "or UNIT=" h- s. H/ N0 E# l! }) U
+ jtf5.getText().toLowerCase().trim() + "or TEAM="
* ?5 M7 l; a9 ]: x5 N+ jtf6.getText().toLowerCase().trim() + "or Phone="5 N8 h; s. }: t5 c4 {: \
+ jtf7.getText().toLowerCase().trim() + "or region=") @- f5 J3 a: K- |; q0 w: M
+ jtf8.getText().toLowerCase().trim() + "or busStation=", F) d# v ?7 j% f% i
+ jtf9.getText().toLowerCase().trim();
- M2 E/ J% Z# s) Y E6 j2 lstmt.executeQuery(sql);
, i1 Y m0 n% b2 |+ Rrs = stmt.getResultSet();2 N& @& h3 i) F* Z6 w0 x
ResultSetMetaData meta = rs.getMetaData();( Z" Z! R7 q) K
int cols = meta.getColumnCount();% x; L0 F% s6 k0 [1 }9 Z- Y# T( A2 t5 |
while (rs.next()) {( B2 Z6 i8 i, V1 H# C1 S
for (int i = 1; i <= cols; i++) {+ l: x" U, H. P [8 f$ f$ v6 f! f
sb.append(" " + meta.getColumnName(i) + " =");" ^# {! ^4 h$ G& G% B4 I. D$ Z
sb.append(rs.getString(i));
6 R8 a* S8 E3 x1 n& ?& x}
( ^) C+ b4 x+ _% ssb.append("\n");& Y% J% a) P9 y8 g3 k) z
jta10.setText(sb.toString());
3 }" l8 f$ I' J+ e3 x" j( r# b}8 e8 L: f% z7 K# m [
} catch (SQLException e11) {
+ X7 ?! x6 l" C% S4 Q; c Ve11.printStackTrace();
3 ~6 U7 ^2 S+ q: V: X7 K9 Y} } public void addEmp() {
4 }7 S* U) o) I' K2 ]: u; @try {$ C& \. f9 u' ?( ?. S; \
stmt = con.createStatement();
' z, n1 x/ e C$ Y( V$ g5 U nsql = "update Mstar values(" + jtf2.getText() + jtf3.getText()
2 ]9 Y. c. O& f* L6 J, ]+ jtf4.getText() + jtf5.getText() + jtf6.getText()+ a V" a. E9 B; l
+ jtf7.getText() + jtf8.getText() + jtf9.getText() + ")";
0 U( [; p8 g3 N! ^* t. e/ Iint i = stmt.getUpdateCount();1 Z+ F" t* l$ M" |
if ((jtf2.getText() != null) && (jtf4.getText() != null)
) C7 I o' _. P8 o&& (jtf6.getText() != null) && (jtf7.getText() != null)) {: m2 b( R& \; v
stmt.executeUpdate(sql);
& Q* g5 f! ^0 o! i" Ojta10.setText("添加记录成功" + i + "条");3 P' V2 j) c8 J. m2 p
} else { l$ ^0 V# [# T0 |
jta10.setText("带*号项为添加记录时不能为空");& s7 z& K, Q2 Z e- R" k% C0 }
}
# W% |: C A: G7 t) g( N1 `} catch (SQLException e1) {- m* i9 z# L. h0 _! B; `
e1.printStackTrace();6 j4 S# x5 I! k& n: |- s) l* C( r
}, {6 t, q! z; X/ Q; v
} public void deleteEmp() {( I6 z4 P: ~- O0 D+ X' Z
searchEmp(); A( y) ^! A( _6 z
try {
- W: M, g: j L+ r1 Y4 ystmt = con.createStatement();
- z6 W/ {) e6 i9 a5 Rsql = "delete from Mstar where chineseName="2 Q. C; q& _% y* Z2 e
+ jtf2.getText().toLowerCase().trim() + "or id="7 i2 Z, s5 \ N; D; p4 W! j' V8 b) L0 Q
+ jtf3.getText().toLowerCase().trim() + "or engName="
8 [1 m% V) j: d5 H, M; X" Y+ jtf4.getText().toLowerCase().trim() + "or UNIT="9 y- n( Z* ^' T% B% c' W
+ jtf5.getText().toLowerCase().trim() + "or TEAM="9 D1 a+ S8 p5 G: M4 m0 t2 ?
+ jtf6.getText().toLowerCase().trim() + "or Phone="
& D4 K% J+ H% F; m, N* Y- ~+ jtf7.getText().toLowerCase().trim() + "or region="1 y5 a3 X7 k& ^: }- a+ V
+ jtf8.getText().toLowerCase().trim() + "or busStation="
& P# C$ \. S/ C+ jtf9.getText().toLowerCase().trim();0 H0 q2 E( f" P. v
stmt.executeUpdate(sql);
8 K6 K0 L6 r q& oint i = stmt.getUpdateCount();
8 v% V# x+ j K4 P) K! }jta10.setText("撤除操作成功" + i + "条");
; i y, [# G3 N% ~3 q4 d% C4 _} catch (SQLException e) {0 U' A8 u% p2 D; Z& {
e.printStackTrace(); S I0 i% X% }
} } public void alterEmp() {( @1 \+ p( t( S; R" p5 _( F; L
searchEmp();
( K+ e' ?. g. C/ d* nsql = "update Mstar set chineseName="1 U+ N; j$ C% t2 B
+ jtf2.getText().toLowerCase().trim() + "and id="
, q4 W4 ~4 Z5 @+ @ d! W! e+ jtf3.getText().toLowerCase().trim() + "and engName="
$ [- D6 g9 H6 |9 U0 |) j+ jtf4.getText().toLowerCase().trim() + "and UNIT=") C! Y/ ~: c1 {5 r4 H
+ jtf5.getText().toLowerCase().trim() + "and TEAM="
% a1 i# h! S" `3 n! s4 c; P+ jtf6.getText().toLowerCase().trim() + "and Phone="5 x4 o% L& D4 w9 \
+ jtf7.getText().toLowerCase().trim() + "and region="% k$ I7 t2 j/ Z/ o2 M X
+ jtf8.getText().toLowerCase().trim() + "and busStation="4 U$ Z% Y! U0 a0 S2 |
+ jtf9.getText().toLowerCase().trim(); int i = 0;8 Q% G9 A# S% \5 b! Y0 p$ f( \/ s; m
try {
: F" r% j% i# f7 m$ ystmt.executeUpdate(sql);1 w/ O6 J. I5 T8 Z
i = stmt.getUpdateCount();; B8 \- A- f" t
} catch (SQLException e) {
% @' i$ N7 v. a6 ie.printStackTrace();, t2 \" _# P0 ?" z6 s, |1 U5 o% |
}# d- N9 D# y& A, p
jta10.setText("修改操作成功" + i + "条");
/ n [* n! b7 O$ f8 j} public void createGUI() {2 ?0 E3 R- m3 h; U( O
JFrame jf = new JFrame("员工信息管理系统");, H8 W" \9 ?$ B, m( G9 u
jf.setLayout(new GridLayout(2, 1));
6 b8 N3 w, [/ S& K+ v// jf.setLayout(new GridLayout(10,2));9 J% u. z5 R& g1 R4 K- @3 ^
JPanel jp00 = new JPanel(new GridLayout(5, 4)); JPanel jp1 = new JPanel();
- v, G. O, p+ Z6 bJButton jb11 = new JButton("查询");' N5 [+ K9 u: P/ p2 g
jb11.addActionListener(this);
' ^0 { }1 M. V8 yJButton jb12 = new JButton("增加");
* ^% B8 h( p3 ?+ A! E C$ G( ljb12.addActionListener(this);0 I3 E- j1 R' h( D6 ?
jp1.add(jb11);
1 K: x W; F$ c0 n F W. cjp1.add(jb12);# V2 Z8 C+ C% [) h W3 }8 `1 P
jp00.add(jp1);/ B" h; A5 {9 t3 z* X- d
JPanel jp11 = new JPanel();# J3 U# D( y" t% _/ H) N
JButton jb111 = new JButton("修改");/ c0 Q! r5 P& U4 w
jb111.addActionListener(this);$ `+ h w* D6 J5 X3 ~" E8 o
JButton jb112 = new JButton("撤除");
$ |' S) r9 f$ j0 b- Y6 H/ y7 K& Zjb112.addActionListener(this);
9 L5 w4 l6 f. |jp11.add(jb111);; C& p. U- d; Y3 q: M) i
jp11.add(jb112);
# n8 d( V, s9 w6 t1 }jp00.add(jp11);
0 H" W1 J+ Q/ W$ S T' aJPanel jp2 = new JPanel();
9 M" z. a' m2 J" v0 D! G$ GJLabel jl2 = new JLabel("中 文 名 * ");
" [; N0 V. y, ?. ^8 {3 e" Ojp2.add(jl2);
3 S& M) w; c, [* G( gjp2.add(jtf2);
* l0 X0 S3 E% i1 ~0 y0 _: Zjp00.add(jp2);
% k% @4 n# V7 t- n- zJPanel jp3 = new JPanel();8 K( ?" l2 K8 }1 ]6 R5 N' ] c
JLabel jl3 = new JLabel("工 号 ");" f8 O1 X: b+ E
jp3.add(jl3);
; P/ e3 |5 {) [% u/ njp3.add(jtf3);
$ w4 E# n' Z" @/ n' C+ Vjp00.add(jp3);- a+ q. |6 r5 S1 ` N3 y a
JPanel jp4 = new JPanel();( H' q! e: k" ^
JLabel jl4 = new JLabel("EngName*");
7 B% L; Y6 H6 v8 N3 {( h3 w' Kjp4.add(jl4);
/ h' K. e6 _; H$ K' Ajp4.add(jtf4);1 V( {0 U6 S% e: }8 J
jp00.add(jp4);6 V$ n& n I( e& i6 y. S
JPanel jp5 = new JPanel();
/ }$ m$ l4 y, \9 |+ T5 E/ ZJLabel jl5 = new JLabel("UNIT ");" }5 Y! U! |4 Q8 v4 q
jp5.add(jl5);4 ~) ]5 P* D. _7 d$ j+ R% I
jp5.add(jtf5);
; }, j1 K! @2 w; gjp00.add(jp5);+ g, E3 @7 ?+ g8 {9 B4 E
JPanel jp6 = new JPanel();3 b7 H* W2 P8 x! A
JLabel jl6 = new JLabel("TEAM* ");. e/ ^7 F+ K6 ?& |& I8 Q, ^
jp6.add(jl6);
0 n1 Y! C: G; ejp6.add(jtf6);! K* S* R K: ~
jp00.add(jp6);
! o0 m! ^6 x; v& LJPanel jp7 = new JPanel();
. j2 F( a9 C4 F, e, J( T5 wJLabel jl7 = new JLabel("Phone* ");; M1 P' M1 N) i- C6 F
jp7.add(jl7);( E1 \' T/ }0 u7 u
jp7.add(jtf7);
2 r( G* ?. ?6 D3 L2 l5 B1 njp00.add(jp7);, @0 J5 h% K r# H8 P
JPanel jp8 = new JPanel();! v4 R- S# y3 Q M7 h$ c1 @
JLabel jl8 = new JLabel("区域 ");: ?( \- E. p! _' G5 ]4 U6 s
jp8.add(jl8);. l0 O/ b# {; d" U; v, a1 x
jp8.add(jtf8);
. e$ h" L( o% N3 P, j) pjp00.add(jp8);
) c- b( m- p! e* \: pJPanel jp9 = new JPanel();( e# U) k# {( ]! \1 b3 O
JLabel jl9 = new JLabel("公交站 ");
' H$ F5 e/ _ Y+ @" T+ u. vjp9.add(jl9);
3 |6 d7 m- `# w4 c$ w! Ijp9.add(jtf9);" ]# ~; k% b6 a; ~& ?2 P2 x
jp00.add(jp9);
6 _/ a% ]- e' @4 ^jf.add(jp00);
# U* \5 k6 v8 _5 {! ~JPanel jp01 = new JPanel();
' ]2 c7 N7 h% f0 Zjta10.setText("--用户使用手册-- \n1、查询:选择一个字段,如 EngName 在文本框中输入相应内容,点击查询\n2、增加:在各个文本框中输入相应内容后,点击增加。\n3、修改:先查询到你要的记录,在更改相应内容,点击修改。\n4、撤除:类似于修改操作");
% \& I1 W# p; \- J: e$ r- hjp01.add(jta10);/ o# ^. ]/ A& Q: ~ `0 X
jf.add(jp01);
i' M- n( a5 V' o& G4 n {jf.setSize(700, 500);- d7 L; W/ w" M+ H: h) I: n: c
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);$ d! [, N# w0 u) X
jf.setVisible(true); } public static void main(String[] args) {
. I. N, ~) ?5 Z9 O+ Snew EmpManageSys();7 F: R6 l' T [) _* J
}
8 K' k) K' t+ K) g}
: \4 |* p6 l" f% S |