// 项目目标:建立员工管理系统第一个版本。" T* g: U! v/ U% }
// 实现图形用户界面的员工信息查询、增、删、改;与数据库建立,并将修改结果时时保存到数据库。
3 G2 w2 I: O( E4 X. B// 模块:1.GUI界面 2.数据库连接 3.查询 4.增、5删 6改(操作数据库) import java.sql.*;
) o$ V3 |* {0 g. [# w6 L6 {import java.awt.*;
/ z# M% t3 e/ `0 B. G, nimport java.awt.event.*; import javax.swing.*; public class EmpManageSys implements ActionListener {' H7 L, h: g& w& k1 ]2 r4 G
Connection con;
( c0 W) a# x; C4 a5 H. tStatement stmt;
5 z! o4 B% d. mString sql;2 a) {9 W5 ~3 N( x5 ^
ResultSet rs;
$ d/ |/ p$ H* N, E1 uStringBuffer 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) {
* J2 [: _4 D0 \. S3 ]4 c( IString str = e.getActionCommand();
( F g) a% K! f" zif ("查询".equals(str)) { //if check the button of 查询,then go to method of searchEmp()
% N1 E8 l/ i; m( x: ^searchEmp();
% S+ X; t+ w' S} else if ("增加".equals(str)) { //if check the button of 增加,then go to method of addEmp()- V7 a. G& e/ O% ~" @( o
addEmp();$ P* d& f0 ^) P6 E! l
} else if ("修改".equals(str)) { //if check the button of 修改,then go to method of alterEmp()
. N* s a& _. m9 {' I& d) aalterEmp();
( k4 A4 H' n# r% y' ^} else if ("撤除".equals(str)) { //if check the button of 撤除,then go to method of deleteEmp(). b% {* a2 A5 G# E! g( ^, B) p1 \
deleteEmp();
4 M; e3 Y3 ~! H6 O( K" w6 l, Q; ?} V, ~1 @& L4 | S4 l. `
} //this is the constructor. EmpManageSys() {7 m0 R- L8 h$ V, X, l8 S0 a
createGUI();
, X6 w; p4 g% r5 R$ LconnectToDataBase();
* S7 v6 z6 L8 V0 j- L0 N$ v// searchEmp();; C y! P3 R8 \& @( f9 H
// addEmp();
6 _( X+ ^, k2 q: w7 k6 J. w// deleteEmp();% I" V+ A7 N' Y% ]- [8 I
alterEmp();
5 f- r3 S& D& E4 f; e/ G8 ?} //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() {8 s$ [. ~* \, e8 S% {3 l; j# l0 y
con = JdbcUtil.getConnection();
" `0 r8 ]# Q; P$ X+ d6 HSystem.out.println(con);% P3 l; r0 ?: P4 ^- b5 N
return con; } public void searchEmp() {9 V8 f) s/ J1 w! G' b8 K
jta10.setText("");& W3 V* d4 ?7 Y$ U
try {
$ i% ~" V9 Q* c, Jstmt = con.createStatement();- n$ K+ F9 F. Y
// sql = "select * from Mstar where id=" + jtf3.getText();& D( }, Y! B' d6 R+ S
// sql1="select * from sd100343 where ="+jtf3.getText();! C/ d/ _7 W/ w6 L; U3 j/ E* A
sql = "select * from Mstar where chineseName="
6 `- ?: H' S4 r. W" b2 \+ jtf2.getText().toLowerCase().trim() + "or id="
+ J" {1 f' \, d2 s2 p* H5 E$ B+ jtf3.getText().toLowerCase().trim() + "or engName="
' L& s/ |6 X* L) ^ L+ jtf4.getText().toLowerCase().trim() + "or UNIT="
- Z7 Y( r) G. \ W& c% v+ Y+ jtf5.getText().toLowerCase().trim() + "or TEAM=", Y1 F$ N2 `6 F7 s' U+ T) j3 H
+ jtf6.getText().toLowerCase().trim() + "or Phone="8 }: S# i9 X6 B |* ^
+ jtf7.getText().toLowerCase().trim() + "or region="
; x- C, P& H" H+ jtf8.getText().toLowerCase().trim() + "or busStation="
* W8 \* t6 D: `: S+ jtf9.getText().toLowerCase().trim();7 N& D# M! D" G
stmt.executeQuery(sql);- O u/ t/ c9 t* P/ b2 r
rs = stmt.getResultSet();
9 @% o- g8 [2 b: v! B+ g9 O0 MResultSetMetaData meta = rs.getMetaData();
1 {4 C2 D1 U- r6 a. [( Kint cols = meta.getColumnCount();
& K, k6 t% z$ f- H9 V8 F( Gwhile (rs.next()) {
) C* |: w1 V+ {, f3 Jfor (int i = 1; i <= cols; i++) {
& T3 Q4 e! B5 Asb.append(" " + meta.getColumnName(i) + " =");3 D' {2 X/ u( ^4 E
sb.append(rs.getString(i));
/ F _/ M1 G& q8 ?6 A}) b2 @% |$ I+ U
sb.append("\n");3 U2 L4 d* X( \. n
jta10.setText(sb.toString());
/ d9 |' @0 r4 f, I2 |7 J}& v8 _& J) [( D# K- @6 w9 N2 q
} catch (SQLException e11) {5 p: }$ L( d7 n* {( i. D7 @
e11.printStackTrace();, u/ `' D, m" x8 s
} } public void addEmp() {, m9 q5 E* O' E1 r1 c
try {
1 h. e9 e+ ^9 b6 Bstmt = con.createStatement();3 X; I" ?+ S( T( K0 g& g$ k
sql = "update Mstar values(" + jtf2.getText() + jtf3.getText()
. v. H% A: l8 l: r& z5 X+ jtf4.getText() + jtf5.getText() + jtf6.getText()
; J d# L3 a9 ~! c( U. i+ jtf7.getText() + jtf8.getText() + jtf9.getText() + ")";
( t- r9 }8 E; \6 Rint i = stmt.getUpdateCount();
9 ?0 F* v% Z7 yif ((jtf2.getText() != null) && (jtf4.getText() != null)( {) } U& A5 `. m& ?
&& (jtf6.getText() != null) && (jtf7.getText() != null)) {
6 T7 y# z i; _9 h% Y q1 w1 ustmt.executeUpdate(sql);
5 A4 V- y! h) [: {jta10.setText("添加记录成功" + i + "条");
: Y. d5 M# v4 ?: D7 B' l$ S& p) h} else {* @7 |4 o. U. Y4 D; w) j. k
jta10.setText("带*号项为添加记录时不能为空");
0 a6 a, L% o+ S) [6 F}
4 z4 d% r7 O0 O7 d} catch (SQLException e1) {
5 g% _) i1 g8 S7 de1.printStackTrace();
- h, v' i, A! y9 [}2 N% e. Y \# x
} public void deleteEmp() {
( Y+ }( ~8 \ E% { I7 bsearchEmp();
+ _) ^+ M: ~/ f' J" s Stry {) N% [# r! N( r( k; ^$ s5 o8 K
stmt = con.createStatement();
. E9 J2 ]+ i+ D. T8 ^' F! p1 Rsql = "delete from Mstar where chineseName="8 _3 \5 k5 W: }7 }5 Q/ r
+ jtf2.getText().toLowerCase().trim() + "or id="
% l9 Y) `; {7 a/ f: D+ jtf3.getText().toLowerCase().trim() + "or engName="/ l* {% ^ O# D& m4 h
+ jtf4.getText().toLowerCase().trim() + "or UNIT="2 C. e$ I$ n* J& N5 D
+ jtf5.getText().toLowerCase().trim() + "or TEAM="/ R: X9 s4 G' m+ l4 I- N0 M, j
+ jtf6.getText().toLowerCase().trim() + "or Phone="6 \9 ^, X6 v, `# S
+ jtf7.getText().toLowerCase().trim() + "or region="# e* p6 f1 _% l$ o; @( l
+ jtf8.getText().toLowerCase().trim() + "or busStation="9 w% J( C4 w/ e* g$ ^
+ jtf9.getText().toLowerCase().trim();
$ j' P* G2 ?& X: ^* z$ H* z1 f: Vstmt.executeUpdate(sql);8 {- P) a, N; X% A( ~& b
int i = stmt.getUpdateCount();9 z# i9 j, B- [7 I; ^5 a& V3 X
jta10.setText("撤除操作成功" + i + "条");
: Z+ M$ D& @! [) R' W$ y} catch (SQLException e) {0 V; @6 k- o5 P1 ?8 ], g! v: e& ?
e.printStackTrace();6 N( B. T: \7 z3 a# J
} } public void alterEmp() {
# q3 }7 ^. ]4 j. b4 x. I1 OsearchEmp();* \; W9 C& s5 d& E1 ?# m( ~
sql = "update Mstar set chineseName="" h/ c& R6 W* w9 m$ _3 h) F) O
+ jtf2.getText().toLowerCase().trim() + "and id="
& {& q9 ?/ l. p$ C5 ?) K+ jtf3.getText().toLowerCase().trim() + "and engName="
/ F9 M# {& j0 Y* F& z" o+ jtf4.getText().toLowerCase().trim() + "and UNIT="
# g; @2 c+ ^3 D* @+ jtf5.getText().toLowerCase().trim() + "and TEAM="/ X x/ O0 D- V6 W* }1 V C
+ jtf6.getText().toLowerCase().trim() + "and Phone=": Y. T: `: c& s
+ jtf7.getText().toLowerCase().trim() + "and region="
0 M$ I4 w0 B8 W2 s+ jtf8.getText().toLowerCase().trim() + "and busStation="; D0 L7 c) z1 D
+ jtf9.getText().toLowerCase().trim(); int i = 0;
$ g. L/ E. a$ [5 D! M& Gtry {& o8 n+ O7 Q4 @. J1 T# w1 H; a
stmt.executeUpdate(sql);
- w$ ]+ N! P' o5 m0 i" r ^i = stmt.getUpdateCount();2 V" k, o$ |; `6 f4 D
} catch (SQLException e) {
$ i1 l! y& A5 i Y# B ]2 Ve.printStackTrace();/ v2 j! u! r& B( L& Q3 j
}
1 \+ \4 f4 V3 t7 o$ q) a/ Z$ ljta10.setText("修改操作成功" + i + "条");
* X7 i% o9 R$ D# `$ I! E+ M} public void createGUI() {& u) ^3 S/ n5 A- S+ |& @& S
JFrame jf = new JFrame("员工信息管理系统");' t& n" ?( i4 Y9 m
jf.setLayout(new GridLayout(2, 1));
& ?2 G8 Q% m5 R3 E) T7 \// jf.setLayout(new GridLayout(10,2));
6 C# A+ t; [1 M* [' U3 {4 s: ]9 \JPanel jp00 = new JPanel(new GridLayout(5, 4)); JPanel jp1 = new JPanel();
) r; f& A! _: O$ u P/ T1 NJButton jb11 = new JButton("查询");/ Y; f/ Y3 {6 B: P4 T
jb11.addActionListener(this);- v! R0 s) a& y- o( l
JButton jb12 = new JButton("增加");
9 _% E2 r. n, t2 g' b; Xjb12.addActionListener(this);* o0 U/ W% L! e6 a- O3 f6 w6 J f
jp1.add(jb11); E( R. @' X* Q+ q
jp1.add(jb12);
& H+ X. ~2 @; z% K' P6 ijp00.add(jp1);0 }! ]- D2 ]6 ?8 h# w4 H# d
JPanel jp11 = new JPanel();. a- ^1 C9 U0 N+ Z- \
JButton jb111 = new JButton("修改");
6 W& z4 ]% N) O$ S- F! Jjb111.addActionListener(this);
2 h+ w( u, |' b HJButton jb112 = new JButton("撤除");6 T/ h; ? f. }" S3 ^
jb112.addActionListener(this);6 T& L% A# }0 T' ]
jp11.add(jb111);) I7 x4 \$ q) O: E9 v
jp11.add(jb112);
# m7 i5 ^' Y8 p: Z7 {) j7 q, wjp00.add(jp11);
' O: k! t' i& f# X) X$ [2 o2 ?JPanel jp2 = new JPanel();" N& \' |0 O8 F r7 F: h% G
JLabel jl2 = new JLabel("中 文 名 * ");
/ I& t" M' g2 \+ }jp2.add(jl2);. ~3 Z( j+ B+ N9 S
jp2.add(jtf2);
; ~7 q: F: C, w. t) N5 o/ U) \jp00.add(jp2);
) s' y G& z: D$ CJPanel jp3 = new JPanel();0 q) C8 g5 V5 m: u- P& A
JLabel jl3 = new JLabel("工 号 ");7 w3 U0 N. d3 h B- d! a* Z
jp3.add(jl3);
! {' _7 R: }0 f0 ]% c* `( `, x0 R( Rjp3.add(jtf3);
1 w# A) b: g6 a3 _4 n. V8 Wjp00.add(jp3);
/ o `, a3 r1 D- xJPanel jp4 = new JPanel();
. H t, S: m. A+ I: \JLabel jl4 = new JLabel("EngName*");
3 }2 J; C1 \% `* Vjp4.add(jl4);' I8 u. S: X9 v4 q% V; \7 w; X a
jp4.add(jtf4);
/ s9 e# Y: }2 `0 J- Gjp00.add(jp4);% ^1 E6 `" }% F2 z( D, |9 A
JPanel jp5 = new JPanel();
/ J0 e4 b O# e# N8 p' M6 BJLabel jl5 = new JLabel("UNIT ");
) f |+ P1 A- i, }: E, rjp5.add(jl5);' d& g! p3 ]; Z8 W) u
jp5.add(jtf5);
4 B! R5 h8 ~0 |& N- ajp00.add(jp5);
( Z& Y5 p' N; \7 `! L8 y# u9 BJPanel jp6 = new JPanel(); ~4 `1 D2 y$ b9 x* q, A. ~! b
JLabel jl6 = new JLabel("TEAM* ");1 j4 B/ g( H' m8 v: m
jp6.add(jl6);) m# f f# t* q( G F" x1 T
jp6.add(jtf6);1 U8 F, Z3 m, H7 F o# g$ c- b: K
jp00.add(jp6);- O3 l! c; @- J7 m# Y0 _: a
JPanel jp7 = new JPanel();
7 U4 R7 H! k( M- N, u1 s% FJLabel jl7 = new JLabel("Phone* ");/ w0 z' `* O) @ J5 q
jp7.add(jl7);' j0 H8 m; R+ X. d2 ?8 |
jp7.add(jtf7);7 p! H# q8 q0 r+ p
jp00.add(jp7);
# ~" R1 A$ @0 zJPanel jp8 = new JPanel();" C( Z, z3 P, j) |1 T* u, Z/ V
JLabel jl8 = new JLabel("区域 ");6 L' l3 L0 W: r4 Q( N
jp8.add(jl8);" A3 w: @+ r8 [" y2 w4 s
jp8.add(jtf8);' r" M* G% E/ l# E# z8 w5 e
jp00.add(jp8); C. G( T4 L. K- Q8 e
JPanel jp9 = new JPanel();
, g. V* F5 Z1 y! I2 b1 _JLabel jl9 = new JLabel("公交站 ");/ c1 a" p0 l% P) f" k
jp9.add(jl9);
# S, g" a; }& Z! U9 j4 q) R$ Bjp9.add(jtf9);2 w5 K/ }8 c j1 n1 j. X
jp00.add(jp9);
. v1 c/ b! Y6 e/ R% ?jf.add(jp00);
" O/ S/ b! [1 T$ f6 GJPanel jp01 = new JPanel();
/ Q) X6 v0 O& G: V1 a9 x: kjta10.setText("--用户使用手册-- \n1、查询:选择一个字段,如 EngName 在文本框中输入相应内容,点击查询\n2、增加:在各个文本框中输入相应内容后,点击增加。\n3、修改:先查询到你要的记录,在更改相应内容,点击修改。\n4、撤除:类似于修改操作");( R( p- `+ |7 d9 i1 U* p
jp01.add(jta10);# Y+ w. O2 k# k* w
jf.add(jp01);
* h0 A) V% A5 @( q6 gjf.setSize(700, 500);0 `* Q- {7 {, \7 p r
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
4 H' R q+ B+ d% ]) A8 N9 A \9 t: Mjf.setVisible(true); } public static void main(String[] args) {" e( e$ a; D; G/ P% q& O2 S/ c6 `5 q, P
new EmpManageSys();
' i( T3 h- V& r& q0 X}- y0 L2 a' N- K) p$ Z3 X
}
4 _" b2 M; }9 d$ H |