// 项目目标:建立员工管理系统第一个版本。; o) |' b9 }3 a
// 实现图形用户界面的员工信息查询、增、删、改;与数据库建立,并将修改结果时时保存到数据库。
5 J# B9 W: g( O& ]+ J7 ]7 I// 模块:1.GUI界面 2.数据库连接 3.查询 4.增、5删 6改(操作数据库) import java.sql.*;
0 q2 P P: V6 P: X4 |) rimport java.awt.*;
1 S) t0 J. m t9 a7 K* Simport java.awt.event.*; import javax.swing.*; public class EmpManageSys implements ActionListener {
0 ]$ ]0 ^: }) MConnection con;
6 s- m, y2 E; A2 nStatement stmt;
6 k. N& w3 U+ u- S: R5 KString sql;- m8 ~9 q5 g* d
ResultSet rs;9 R$ f7 T; B; d, `% ~
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" b6 I6 `# i; A
String str = e.getActionCommand();
" R- g6 d* \: g: b( Sif ("查询".equals(str)) { //if check the button of 查询,then go to method of searchEmp()
9 E2 y/ g" `5 L' B2 @6 X/ M& {# _# o7 BsearchEmp();" v/ V6 r2 c0 |7 K( T1 Z% j, p
} else if ("增加".equals(str)) { //if check the button of 增加,then go to method of addEmp()
/ U7 V- e: X: q" R! ^addEmp(); {' @2 d6 I3 ?+ [
} else if ("修改".equals(str)) { //if check the button of 修改,then go to method of alterEmp()
d5 o' U# Q. N4 _! e, X. qalterEmp();( U( [7 a, ]: N5 _9 ` [
} else if ("撤除".equals(str)) { //if check the button of 撤除,then go to method of deleteEmp()
* P4 Y/ G+ x9 _+ p8 ]deleteEmp();
0 M0 x+ ?5 y$ n/ [* U0 P! T& n}
0 z4 c. }- K8 M: o3 L} //this is the constructor. EmpManageSys() {
! I' `* r! u1 H8 F {createGUI();
, S% \$ @$ o8 ]* T* }' G8 V+ b4 {connectToDataBase();
: [6 b$ v/ Z4 R& I0 q' j. s// searchEmp();- Q2 S# w! d5 e* K: e6 m
// addEmp();: R* L( Y$ I$ \9 y" i5 v
// deleteEmp();
& ^) s9 ~0 p$ d: yalterEmp(); T+ u; T/ H: o2 @" m+ q/ I& H/ 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() {# D. k9 w6 g: e& e6 N
con = JdbcUtil.getConnection();
. H' b6 { z" h! lSystem.out.println(con);& F f, w, S; C) K; }, }* h9 {$ \
return con; } public void searchEmp() {2 `* D( Y3 e$ w' D% U
jta10.setText("");( c: k5 L! K a% F- a
try {
9 W+ i6 r) A) D7 C+ ostmt = con.createStatement();7 Z; X% l( G$ w
// sql = "select * from Mstar where id=" + jtf3.getText();
, u( ^- b9 K' U! U1 x// sql1="select * from sd100343 where ="+jtf3.getText();) ~ h* S2 i+ m4 I
sql = "select * from Mstar where chineseName="1 {* s6 m) S( T. k8 Z, M
+ jtf2.getText().toLowerCase().trim() + "or id="
" F p, u8 W$ E- w+ jtf3.getText().toLowerCase().trim() + "or engName="' |' P% E" g% V2 q0 d
+ jtf4.getText().toLowerCase().trim() + "or UNIT="6 n2 g7 R( a, n1 K" t6 r
+ jtf5.getText().toLowerCase().trim() + "or TEAM="
6 q- M+ g0 c* }! s) s5 l1 q9 t5 K* r) V d+ jtf6.getText().toLowerCase().trim() + "or Phone="8 j) P; J1 p: z6 @
+ jtf7.getText().toLowerCase().trim() + "or region="
$ ]5 ?/ F `, R" t( U+ jtf8.getText().toLowerCase().trim() + "or busStation="
* h& [# `0 T) a7 j. b2 n& K' H+ jtf9.getText().toLowerCase().trim();
* E, J& g; \* `2 z$ d8 _ {stmt.executeQuery(sql);6 f# o! X7 f/ Z& j' I
rs = stmt.getResultSet();
0 o8 z' f, ~2 T4 AResultSetMetaData meta = rs.getMetaData();
* ?& x( q% G1 u" L. j) T7 uint cols = meta.getColumnCount();
2 @. F* i& o5 Y: V7 ?. cwhile (rs.next()) {4 q5 L9 I! [* x, R9 }+ ]
for (int i = 1; i <= cols; i++) {* ^0 W% Q( L4 s8 P+ t' a; j
sb.append(" " + meta.getColumnName(i) + " =");
% Z% c; v0 W7 S8 A- r7 Msb.append(rs.getString(i));
4 B% t, A* z1 M) I' c7 a}
% P- e5 }% W/ `8 J( r: Esb.append("\n");) ^8 u( K6 A5 o$ Z* Y
jta10.setText(sb.toString());
1 x9 c! L. Y r" I: `' Z}
! |6 @ [4 N. p& ]} catch (SQLException e11) {$ }; m1 G2 C; h; E5 }7 \
e11.printStackTrace();
$ |% d$ |# ~* E- j b" ^} } public void addEmp() {( ?( ?* C3 w3 u3 f; ]9 p4 F& q
try {
q6 S; l' F4 T% d+ k0 Fstmt = con.createStatement();
% X! \- h$ b% I" j& vsql = "update Mstar values(" + jtf2.getText() + jtf3.getText()2 P8 ]' |( b# `8 A& V' g9 j
+ jtf4.getText() + jtf5.getText() + jtf6.getText()( ], r8 Y; V% B" d% r$ [8 E, T
+ jtf7.getText() + jtf8.getText() + jtf9.getText() + ")";
4 s5 a% x# J# ?int i = stmt.getUpdateCount();$ d x9 F1 K9 t* s; j8 U% R" }
if ((jtf2.getText() != null) && (jtf4.getText() != null)
. Q, A: l; ^5 q&& (jtf6.getText() != null) && (jtf7.getText() != null)) {' ~( {1 N& R6 j
stmt.executeUpdate(sql);! l+ e3 q! s) l
jta10.setText("添加记录成功" + i + "条");9 U. x5 M+ @6 g( h% }' L0 Q
} else {
, R& T( D+ P; gjta10.setText("带*号项为添加记录时不能为空");5 M; @: @# J6 n2 l4 }7 x% Z* ~
}$ ?6 z+ g' a( M. Z# k
} catch (SQLException e1) {
" {$ a6 ~$ A$ y# {e1.printStackTrace();
+ C0 E& V# J2 d. u+ h}
* e& `: Z5 T: N+ l} public void deleteEmp() {
9 F! ]/ W- v1 r1 usearchEmp();$ Z( V! \0 m0 e7 t: r% n* y
try {
+ m+ o2 f; [0 A5 N: W% ~" C! Fstmt = con.createStatement();
* M& z) A' b1 r+ gsql = "delete from Mstar where chineseName="" p2 s) ?& _; d( i
+ jtf2.getText().toLowerCase().trim() + "or id="
0 E. e- }/ t6 @( [. f+ b6 J6 M+ jtf3.getText().toLowerCase().trim() + "or engName=". G. i# |4 n% {8 b; ]
+ jtf4.getText().toLowerCase().trim() + "or UNIT="& _; C+ c7 H* c
+ jtf5.getText().toLowerCase().trim() + "or TEAM="2 d+ f. l, B+ i' s
+ jtf6.getText().toLowerCase().trim() + "or Phone="9 R- X+ e7 J M N
+ jtf7.getText().toLowerCase().trim() + "or region="
/ a5 r: Y9 Q! N+ jtf8.getText().toLowerCase().trim() + "or busStation="
A! V. R! L! w- w+ jtf9.getText().toLowerCase().trim();: ]4 n, Q- }. [9 x1 I' T
stmt.executeUpdate(sql);
% ?2 J A3 {0 X5 `4 W1 L, yint i = stmt.getUpdateCount();
# U ]) H1 Z# |' ?9 n) J6 n7 Wjta10.setText("撤除操作成功" + i + "条");
5 s2 t2 s0 K& n6 i) ]: i+ b} catch (SQLException e) {
# {1 r @% x7 V7 i5 ?* H- ~2 e$ \e.printStackTrace();
! N1 B" S, o a$ p, r} } public void alterEmp() {6 @2 g; r, @; s5 u
searchEmp();$ ^0 ~5 @# n0 S' ?, N V
sql = "update Mstar set chineseName="
1 J+ R" e$ s& u8 h' Y6 w( x. {& u+ jtf2.getText().toLowerCase().trim() + "and id="5 p8 \, T9 p; h- [
+ jtf3.getText().toLowerCase().trim() + "and engName=": G' C! [, d- @( T
+ jtf4.getText().toLowerCase().trim() + "and UNIT="1 j, R3 C3 X" q3 E5 k8 M9 ?4 P
+ jtf5.getText().toLowerCase().trim() + "and TEAM="
- q/ F7 @0 X. v0 P0 B+ jtf6.getText().toLowerCase().trim() + "and Phone="
, T# w) ~% W3 m4 y+ jtf7.getText().toLowerCase().trim() + "and region="
- f$ T- V0 J2 e, v, k9 ^+ jtf8.getText().toLowerCase().trim() + "and busStation="
$ o2 u5 V+ O( I% g6 E+ jtf9.getText().toLowerCase().trim(); int i = 0;
7 x: X1 r* Q4 _6 wtry {
% X. g9 V7 f* ?! |4 Y8 f4 H6 P& \stmt.executeUpdate(sql);, O. i1 q5 O/ b4 C c
i = stmt.getUpdateCount();
' Y- \9 {) U# L} catch (SQLException e) {3 k* T5 U$ }. Q/ ]/ w% N8 @! A
e.printStackTrace();
$ s3 f: B6 |8 p4 e}
# L6 w. `6 x0 p- y6 ~jta10.setText("修改操作成功" + i + "条");# \0 o! k/ D4 H. g- \
} public void createGUI() {
~( Q" o0 G4 h! f8 L# ]9 ]JFrame jf = new JFrame("员工信息管理系统");( \7 e( z W; {; M. v, D
jf.setLayout(new GridLayout(2, 1));
. F+ q) o5 X8 q7 B) A// jf.setLayout(new GridLayout(10,2));7 F& v |- {! \4 k/ e5 B
JPanel jp00 = new JPanel(new GridLayout(5, 4)); JPanel jp1 = new JPanel();
6 T' b6 X) S. v( V# A9 J% j5 Y% o% ZJButton jb11 = new JButton("查询");
! Q3 V( g" D) l1 h* b9 y* N/ k% F# Ijb11.addActionListener(this);3 U8 w1 ]' R/ I2 v% w# K) t9 o
JButton jb12 = new JButton("增加");: Y# T! c9 T) }* Q9 p- N& P
jb12.addActionListener(this);1 R1 d/ |' P }1 j/ c/ M. A& W
jp1.add(jb11);3 ~: T% M$ h0 f) y6 k2 z% J
jp1.add(jb12);
" x* |! [$ r8 [' @( Kjp00.add(jp1); m& p, z" K% I- m5 f
JPanel jp11 = new JPanel();
$ j u. k* b2 g2 M- j9 s7 \JButton jb111 = new JButton("修改");
$ D0 }7 C( @! Z5 ?: C/ e2 Kjb111.addActionListener(this);' ^! s* `; x+ c+ _5 z( H
JButton jb112 = new JButton("撤除");
$ a8 S- }' j) O+ Bjb112.addActionListener(this);$ O( i" `7 q" b# z
jp11.add(jb111);
: ~# r7 q: H% Ujp11.add(jb112);' Y0 n7 |' O; M9 e/ ^( u
jp00.add(jp11);
* U0 L6 D, ~/ y# M& @& v& {JPanel jp2 = new JPanel();
& z4 f/ q/ C+ t0 sJLabel jl2 = new JLabel("中 文 名 * ");
+ E D E# s2 r/ }' V, q2 kjp2.add(jl2);8 b s/ I9 l c& Y2 Q1 q
jp2.add(jtf2);
b$ T) d) {2 h' Q9 T, v( N8 T. z& Cjp00.add(jp2);4 Z: u0 S2 A: y4 H" U8 i7 m% f! X
JPanel jp3 = new JPanel();
+ H5 y% Q' N. gJLabel jl3 = new JLabel("工 号 ");- ?$ e5 Y+ `* U
jp3.add(jl3);1 ?2 V( n# k! h! {( W
jp3.add(jtf3);0 ~. X& G6 D6 [! |6 I" L5 `) l
jp00.add(jp3);
+ F/ z- f; ^2 i& x; eJPanel jp4 = new JPanel();7 j5 f; P% u) l9 y" i2 l6 @; k: k
JLabel jl4 = new JLabel("EngName*");; X& q" ^8 l3 y2 ]- v& H& j' X
jp4.add(jl4);8 L2 l( X g' _2 H
jp4.add(jtf4);6 P B, C+ r8 H5 ~3 Q5 v
jp00.add(jp4);
) y% U: {: G/ F% GJPanel jp5 = new JPanel();+ r1 @8 i0 U& h! j* N
JLabel jl5 = new JLabel("UNIT ");
9 K7 j/ F4 N+ s. g2 e9 Ljp5.add(jl5);* @$ u8 t* u0 e( V3 g* }
jp5.add(jtf5);, U3 R s4 D5 K) _
jp00.add(jp5);
2 j, }1 [3 Q" VJPanel jp6 = new JPanel();
1 k& O7 L% k- |" c- EJLabel jl6 = new JLabel("TEAM* ");7 s& U% U. D9 R8 e+ B
jp6.add(jl6);
6 I% v' g% S6 p' [4 @4 [9 q* [0 t; Xjp6.add(jtf6);
" ]/ r9 W4 l4 i* x: _jp00.add(jp6);3 Q3 \2 E! G* {- k( `) ]" I
JPanel jp7 = new JPanel();/ [, o/ q- C' [0 h
JLabel jl7 = new JLabel("Phone* ");
$ O4 @4 A w+ L5 d. ~- u. v5 I! {jp7.add(jl7);
3 v, M {5 s1 p }jp7.add(jtf7);
3 K! p# P: O( @jp00.add(jp7);* `- a7 B0 i d! o! X$ k. J
JPanel jp8 = new JPanel();! Y% n' s* P1 A4 B+ b+ d4 B
JLabel jl8 = new JLabel("区域 ");5 a! x6 e0 ?" H" M) a
jp8.add(jl8);5 V0 M l2 b! ?! q$ F/ g$ I
jp8.add(jtf8);) H! I- b/ I! u$ [5 }
jp00.add(jp8); m ]" P5 X, y6 Z. w: m4 z8 Z
JPanel jp9 = new JPanel();7 f3 ^' L: ~ W, L3 t" v
JLabel jl9 = new JLabel("公交站 ");0 \7 i' U G' c F6 G. V2 {2 {
jp9.add(jl9);' G S# n# G) ?3 v, E$ A2 @
jp9.add(jtf9);
; K7 ]8 j- K# }1 e0 Djp00.add(jp9);
0 f! {+ _5 I0 G( D3 \jf.add(jp00);& R! b0 t1 m# H8 h" M; _
JPanel jp01 = new JPanel();
3 f; I' d# ]( q4 ~; t2 ijta10.setText("--用户使用手册-- \n1、查询:选择一个字段,如 EngName 在文本框中输入相应内容,点击查询\n2、增加:在各个文本框中输入相应内容后,点击增加。\n3、修改:先查询到你要的记录,在更改相应内容,点击修改。\n4、撤除:类似于修改操作");
) P4 |( s7 m& l. Q9 \! E# j$ [jp01.add(jta10);
3 f. g& e% E; m5 f+ i4 Njf.add(jp01);: P& l& E F& H& n" M: k7 Y9 k
jf.setSize(700, 500);
7 z5 X( S& e* A9 N0 _ \jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
9 F' W+ b% x3 ^jf.setVisible(true); } public static void main(String[] args) {! `) Z, x1 K- N* R# H+ Y F
new EmpManageSys();1 ?: ? J9 P, L" o+ ^- J, w
}. L. p# @4 X- [- O$ i+ P. o; H
}
' M+ T- m0 j, c" N Q |