// 项目目标:建立员工管理系统第一个版本。
" Q; I8 _- L+ t/ d8 r7 ]( K// 实现图形用户界面的员工信息查询、增、删、改;与数据库建立,并将修改结果时时保存到数据库。
9 j; {- u2 w1 {. e) S4 {// 模块:1.GUI界面 2.数据库连接 3.查询 4.增、5删 6改(操作数据库) import java.sql.*;1 O3 E+ j4 ^2 ?8 U" L- j
import java.awt.*;
. |! O$ d7 W# uimport java.awt.event.*; import javax.swing.*; public class EmpManageSys implements ActionListener {1 R4 p8 e2 M* ^4 s7 a3 C. S, H
Connection con;; E: u. X* X$ [$ M. `
Statement stmt;
# a: W9 B/ @* O/ s5 @& i9 J6 ^0 yString sql;( C; E, Q$ n6 j p" g6 P" w1 p; s
ResultSet rs;
% n3 G3 F) Z1 I6 yStringBuffer 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) {; A4 V5 P7 w3 R7 E+ Z
String str = e.getActionCommand();
# P5 V3 g! X) Z, S' qif ("查询".equals(str)) { //if check the button of 查询,then go to method of searchEmp()% T) e( B: w+ m; v# t) f
searchEmp();
1 v! r! B q9 t! w) D# c3 F} else if ("增加".equals(str)) { //if check the button of 增加,then go to method of addEmp()
% D8 c$ H7 K6 }) `addEmp();! T9 c0 U3 C+ F7 e7 N1 M2 H1 r- p
} else if ("修改".equals(str)) { //if check the button of 修改,then go to method of alterEmp()
1 I, j# X4 S/ Q& N, T/ SalterEmp();2 p" l2 ], I1 n% F, a( S. k' i' L
} else if ("撤除".equals(str)) { //if check the button of 撤除,then go to method of deleteEmp()
: A1 f7 X/ [& m: a1 J8 `9 h/ g( ndeleteEmp();
0 _$ m7 \! @ h2 Y( H3 X}2 u# X ]0 I) K2 N/ G
} //this is the constructor. EmpManageSys() {& I) m. _7 m# r# U$ k9 i9 M
createGUI();& h- j" o8 K* R6 _
connectToDataBase();
9 c7 H! s. [* l0 F4 h0 E// searchEmp();
& M. ?' K4 X6 c9 a% E' N$ X// addEmp();4 P3 `# }0 A0 L# b. I. M! C+ R* k
// deleteEmp();
5 p% X7 n3 T# E6 a8 V" M% galterEmp();
2 t& f8 A/ ?: A2 X' x0 R, ^} //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() {
; z# D' ?5 R4 bcon = JdbcUtil.getConnection();& I# Z/ T: v. U
System.out.println(con);$ U% L; t: j6 @( q
return con; } public void searchEmp() {# S; Y( [5 q1 t
jta10.setText("");* ^- Z" h9 M, c7 Z+ a l1 m
try {: O; C/ V1 e& ~
stmt = con.createStatement();; e8 \' P% C1 X) b% K" u
// sql = "select * from Mstar where id=" + jtf3.getText();
- A9 S9 c4 p& J# B9 k# ~// sql1="select * from sd100343 where ="+jtf3.getText();
' R' Y3 u+ c& N7 Vsql = "select * from Mstar where chineseName="
3 B1 U( Q, E1 [+ g& [ u R+ jtf2.getText().toLowerCase().trim() + "or id="
m! r6 q' M- w4 H% b) i+ jtf3.getText().toLowerCase().trim() + "or engName="* ], I i* J. ?! h
+ jtf4.getText().toLowerCase().trim() + "or UNIT=") _0 {9 q [: l' Q9 R: B$ E
+ jtf5.getText().toLowerCase().trim() + "or TEAM="* h- D7 D5 V2 {- u2 z0 J
+ jtf6.getText().toLowerCase().trim() + "or Phone="0 R) o/ a8 Y5 M$ X* y& ~
+ jtf7.getText().toLowerCase().trim() + "or region="
, q+ w \# {& k+ jtf8.getText().toLowerCase().trim() + "or busStation="
/ C3 ^+ Z9 n( Z2 Y$ J+ jtf9.getText().toLowerCase().trim();1 K8 C1 b' i$ w# x9 H) \ e
stmt.executeQuery(sql);2 z3 n8 L; V5 A/ u
rs = stmt.getResultSet();' X* s- s% s% M- f
ResultSetMetaData meta = rs.getMetaData();
) N. Z# H& q+ b* l4 h1 s, ]int cols = meta.getColumnCount();* U, T% K; i; F* u6 s
while (rs.next()) {3 O0 J1 n" H% `9 [
for (int i = 1; i <= cols; i++) {
# g( l- a5 ]4 M8 [- ^5 D7 M0 m( ^' Nsb.append(" " + meta.getColumnName(i) + " =");. }& ?# L: B; N; y) ~1 i
sb.append(rs.getString(i));% f% C0 Z1 E& l- A( a+ G6 T
}
6 { c; l4 ]3 g4 H: Fsb.append("\n");% a/ F m8 o4 H) Y% \+ n
jta10.setText(sb.toString());
@3 u3 J/ I" s2 u) t [# P}
7 I& F, R" U8 A4 b} catch (SQLException e11) {
% [0 ?4 s8 g) y# D0 L% Y* be11.printStackTrace();$ u5 j1 Q8 X3 Z- s. ^2 u
} } public void addEmp() {$ K9 c0 l1 b$ `: F# H' J/ ]" e9 j7 y
try {
0 h# W! }: e6 j& ^stmt = con.createStatement();
5 t6 j" X' l# A, K! h- D" O! V/ U, Lsql = "update Mstar values(" + jtf2.getText() + jtf3.getText()* K$ Q7 d7 J+ v* x' x0 X4 ]" t
+ jtf4.getText() + jtf5.getText() + jtf6.getText()
+ b% R/ u6 U. _" w+ jtf7.getText() + jtf8.getText() + jtf9.getText() + ")";0 u9 u- g' I; L! S1 l; E5 g. P1 i, B
int i = stmt.getUpdateCount();
# H# D' Z I' ^5 r, Uif ((jtf2.getText() != null) && (jtf4.getText() != null)
4 l3 m4 D; b$ K/ a0 e&& (jtf6.getText() != null) && (jtf7.getText() != null)) {
! }/ |: z% T2 h7 r) {; M( bstmt.executeUpdate(sql);! n$ @- C1 _5 r1 l
jta10.setText("添加记录成功" + i + "条");
" W$ ~, z( @$ _+ c7 L} else {
- }/ \+ @& ]3 c( t y9 Ajta10.setText("带*号项为添加记录时不能为空");9 O$ x: e: T; ~+ ~( k5 \9 f
}/ D# d( O! ^) c0 J
} catch (SQLException e1) {
7 w7 K3 K) J+ g# x% Je1.printStackTrace();# k0 |5 L ~$ P5 s- q( L. z' x
}
5 D6 H1 l$ S, R Q6 y} public void deleteEmp() {$ }7 T; `7 f6 f+ m& r r
searchEmp();
4 g5 n9 U/ {7 d" i ctry {* H( M, C5 _+ h) f6 U0 q
stmt = con.createStatement();0 }) X. b1 j, ^0 b3 y
sql = "delete from Mstar where chineseName="+ U; f1 x8 [. Z! D% s8 i; A
+ jtf2.getText().toLowerCase().trim() + "or id=") Q( F3 g' T# B( ~/ l. Y: ]
+ jtf3.getText().toLowerCase().trim() + "or engName="3 f! \$ n5 A: z3 Y* e- X
+ jtf4.getText().toLowerCase().trim() + "or UNIT="6 g) k# R7 d) s V2 c
+ jtf5.getText().toLowerCase().trim() + "or TEAM="$ z& M& p8 C. B6 u
+ jtf6.getText().toLowerCase().trim() + "or Phone="
' b% e3 K2 Z& n2 j% l# I+ jtf7.getText().toLowerCase().trim() + "or region="8 P$ G9 K$ `8 h* _6 M! c9 n4 |1 I
+ jtf8.getText().toLowerCase().trim() + "or busStation="
5 m' Q* |1 W8 y, B9 F4 D: i+ jtf9.getText().toLowerCase().trim();
6 a" p9 g V# Z" O/ I& Q8 [- D$ Istmt.executeUpdate(sql);
: Z, [5 ]8 ?+ }: U" Pint i = stmt.getUpdateCount();9 V' B; T) Z3 w; L
jta10.setText("撤除操作成功" + i + "条");3 n& n/ Y/ ~' e) y( m# g
} catch (SQLException e) {
3 Z! H( m3 C! m7 `e.printStackTrace();; d9 S" n# f- }3 u, c" n
} } public void alterEmp() {9 K R5 Q# y1 }4 L) @
searchEmp();$ W4 P( G$ u8 ~: k, u: N& Y8 E
sql = "update Mstar set chineseName="
$ j4 Z+ \9 r; I6 u/ T. T( r& q+ jtf2.getText().toLowerCase().trim() + "and id="4 Y- c, N2 @& k. l/ M. ?. R
+ jtf3.getText().toLowerCase().trim() + "and engName="1 W. x& B5 t0 F D8 a$ A
+ jtf4.getText().toLowerCase().trim() + "and UNIT="
0 i" |* I: ?% p2 h) K+ jtf5.getText().toLowerCase().trim() + "and TEAM="
/ S/ x5 x! j2 b+ C+ jtf6.getText().toLowerCase().trim() + "and Phone="7 R* ~ d( s& \/ i- E& r& a
+ jtf7.getText().toLowerCase().trim() + "and region="* A, E1 ?+ N. O3 i( W9 m8 R( \9 y
+ jtf8.getText().toLowerCase().trim() + "and busStation="* w& i$ k# @. Y9 i4 y
+ jtf9.getText().toLowerCase().trim(); int i = 0;
' S+ ^4 p; J3 T( F5 C1 ptry {& Y8 E8 G5 U. q
stmt.executeUpdate(sql);
6 Z" @2 y3 ~1 f, |i = stmt.getUpdateCount();( u: a; r1 m8 t1 V3 G4 Q
} catch (SQLException e) {
. ~! O* b4 r: n, {e.printStackTrace();& O( { W, ?1 g: z* O! p6 `
}
. y% g! K0 M, {% f$ }jta10.setText("修改操作成功" + i + "条");' P1 f3 m& y9 Q) s& i
} public void createGUI() {9 F. p, x& X; T0 I9 p6 O
JFrame jf = new JFrame("员工信息管理系统");! r. E# `' o; d" e$ d! B( u
jf.setLayout(new GridLayout(2, 1));9 _5 ^$ o9 |" F! i N/ f5 p
// jf.setLayout(new GridLayout(10,2));, ?5 k. d4 x+ S
JPanel jp00 = new JPanel(new GridLayout(5, 4)); JPanel jp1 = new JPanel();$ H7 P; }0 S: y
JButton jb11 = new JButton("查询");4 d: d9 V: P, d, [" i/ b$ a, M
jb11.addActionListener(this);
7 i) r0 E+ v/ K2 N: EJButton jb12 = new JButton("增加");
0 v: p* @$ }3 m4 @. f, o! R; Kjb12.addActionListener(this);
- ]4 s% }* M+ \; |- Q: jjp1.add(jb11);0 G7 d& c/ c: R! j( @% q
jp1.add(jb12);
8 ^; M& e+ C; Vjp00.add(jp1);
D8 x* c# j9 `JPanel jp11 = new JPanel();
& X- s( p7 | \6 [2 vJButton jb111 = new JButton("修改");' ? R( Y7 E g
jb111.addActionListener(this);
8 b7 q# q% t. M; H$ ?* F" sJButton jb112 = new JButton("撤除");) G' \, U! Z7 r d b" b
jb112.addActionListener(this);+ F- F$ f% N% ?8 A
jp11.add(jb111);7 s! h% T) B2 f+ T% X" e# \" i4 u) w
jp11.add(jb112);/ j& E7 `' }/ t) G" v4 Q6 x' }
jp00.add(jp11);0 q6 T3 }: ~, Z2 ?
JPanel jp2 = new JPanel();
% \- j% x7 U; @4 l$ E& kJLabel jl2 = new JLabel("中 文 名 * ");
3 S& M! e0 g9 z8 |0 s6 k2 Qjp2.add(jl2);
* s( C# Z4 g6 m9 W# L% a3 ]jp2.add(jtf2);7 O! H; x# ?! B1 d/ T" b; w2 l$ u
jp00.add(jp2);5 D4 u) S/ F/ o _
JPanel jp3 = new JPanel();
" A: W: |' f5 t; Y$ ]( ~: w4 A, x9 q; V: h5 tJLabel jl3 = new JLabel("工 号 ");
8 S( k- D: f+ A Y0 Q5 Pjp3.add(jl3);9 @. e% b: }% l: ~$ Z# B
jp3.add(jtf3);/ b: u$ y' N. g5 b
jp00.add(jp3);
" E7 s- J7 M8 w; z [) fJPanel jp4 = new JPanel();
$ N: R* _ S" x5 x* E5 EJLabel jl4 = new JLabel("EngName*");
4 |7 p; [5 A, x4 s1 `jp4.add(jl4);! N8 \& v2 H* A, f- F5 F
jp4.add(jtf4);5 n, |( O7 U* |4 m3 A0 Y$ [
jp00.add(jp4);
, `3 V! q0 |7 N+ \ ~' w- qJPanel jp5 = new JPanel();
; R( ^2 E$ G( c$ yJLabel jl5 = new JLabel("UNIT ");, z9 G3 s0 z% Q; R$ ~/ X/ E- {+ H
jp5.add(jl5);: c3 z. W& u5 [" D
jp5.add(jtf5);
6 a+ |! I( K _8 [9 g" p% I' _jp00.add(jp5); G/ |3 E* M: z) z- _+ R& B& ~8 V. k
JPanel jp6 = new JPanel();: `" [9 z6 s% i8 u$ T$ z q2 ]
JLabel jl6 = new JLabel("TEAM* ");% y: }7 J) `2 L% ~/ x
jp6.add(jl6);
1 j1 K8 G/ |0 Z" Z+ E, S, t. _jp6.add(jtf6);8 ?0 k/ f, B0 k8 B8 g) m7 Z4 p
jp00.add(jp6);
4 t6 q; @/ j4 @' S5 r# j1 mJPanel jp7 = new JPanel();
" P, _/ f( d7 F1 bJLabel jl7 = new JLabel("Phone* ");
! r2 M& V w: i+ k ojp7.add(jl7);+ ^9 O, b* q8 P4 A
jp7.add(jtf7);$ P2 I8 z4 N" O
jp00.add(jp7);/ X8 [* Y! i4 H& t: I
JPanel jp8 = new JPanel();
, E* I2 S" T( Q% BJLabel jl8 = new JLabel("区域 ");
( V* }' M3 z# n& I/ L& ^& gjp8.add(jl8);
, x) Q3 G& }7 e5 T3 k. S8 Vjp8.add(jtf8);& k) F% \5 p) Q$ p7 u, l
jp00.add(jp8);
b& V, c/ ]) J" cJPanel jp9 = new JPanel();
( w7 ?) F0 d2 w, F2 M) {6 cJLabel jl9 = new JLabel("公交站 ");. @2 s1 y8 t& y4 I% V0 o
jp9.add(jl9);) n. S5 l+ `; L+ T) m& O0 Y
jp9.add(jtf9);" u9 s9 _% K) L8 ?2 @5 j$ v0 v: h
jp00.add(jp9);' N' [+ t6 ~; G* { P
jf.add(jp00);; j6 i1 A. J7 m6 s% Q/ E
JPanel jp01 = new JPanel();8 v# c7 N) \+ D, |) {, w
jta10.setText("--用户使用手册-- \n1、查询:选择一个字段,如 EngName 在文本框中输入相应内容,点击查询\n2、增加:在各个文本框中输入相应内容后,点击增加。\n3、修改:先查询到你要的记录,在更改相应内容,点击修改。\n4、撤除:类似于修改操作");* v5 p- `- h0 u. a% W# g9 Z$ G
jp01.add(jta10);9 ]! ]3 }" @! {4 G+ w- t+ ?
jf.add(jp01);+ A0 ?7 ]* v/ j5 _0 k5 X; c' `( H
jf.setSize(700, 500);3 L2 a/ s$ w2 w$ Z" E' P
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
# Y; C5 ~6 J2 rjf.setVisible(true); } public static void main(String[] args) {
1 c5 Z2 P1 R) m+ k' [( H8 R6 inew EmpManageSys();
T8 Y& D( _2 b}
6 ~' L4 ]* E2 X0 B}
6 o w# H! F4 N& o+ `% U2 I R |