// 项目目标:建立员工管理系统第一个版本。: }6 j! G3 s% D# Y
// 实现图形用户界面的员工信息查询、增、删、改;与数据库建立,并将修改结果时时保存到数据库。" M, i: \4 \" r3 G, C. v1 _& u
// 模块:1.GUI界面 2.数据库连接 3.查询 4.增、5删 6改(操作数据库) import java.sql.*;) b: h& p4 g- Z/ E
import java.awt.*;
3 E$ N3 N7 D5 n1 k0 P4 A) \ m* himport java.awt.event.*; import javax.swing.*; public class EmpManageSys implements ActionListener {- x. K. b% A8 g! z; B# y3 C
Connection con;% v' ?( X5 ` f7 M
Statement stmt;: m8 l9 |7 B+ ^
String sql;- |0 b; R; \% g5 {1 B- m2 G" N
ResultSet rs;
: W* \( p# }' q5 O8 ~6 ~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) {; V4 U3 s! u6 G# @; ~
String str = e.getActionCommand();, u( p% r. s' X# U/ Z& Y3 g
if ("查询".equals(str)) { //if check the button of 查询,then go to method of searchEmp()
7 M" M' s% |+ b, ^( m$ ^6 _searchEmp();
" c4 ^+ r+ k6 l% v( v+ k} else if ("增加".equals(str)) { //if check the button of 增加,then go to method of addEmp()
7 }% P3 c P1 t( F- W; x: ?. _addEmp();8 W0 q8 {; t+ F2 K6 Y
} else if ("修改".equals(str)) { //if check the button of 修改,then go to method of alterEmp()9 E9 ~9 h1 c% \# v4 I
alterEmp();
# I6 E) }1 [8 a, b% M! T' \} else if ("撤除".equals(str)) { //if check the button of 撤除,then go to method of deleteEmp()
) m+ c- i7 U3 i5 m9 fdeleteEmp();
0 S1 n+ x8 F, X" E0 P}
4 T c# t+ v7 ]} //this is the constructor. EmpManageSys() {
5 X* T7 N- c# K* s" X# e! R' ncreateGUI();; h( c- O6 m0 a t1 H& O R, h& X
connectToDataBase();
2 P2 o) H @# H. z// searchEmp();
: J. R7 u- `9 f// addEmp();
/ J4 ]: {/ n1 E// deleteEmp();/ Z# b2 i' ~$ U6 N
alterEmp(); w0 ~% E0 f* C# f1 u( m% m* D6 {
} //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() { {2 k0 I+ V# h6 h* k
con = JdbcUtil.getConnection();
4 h) ?; g, I* e& B# bSystem.out.println(con);
% p- t9 ^' ~5 G" u" Ureturn con; } public void searchEmp() {3 b, @4 ]% n" r2 w0 H% h
jta10.setText("");
, b! c- B) b% m; O0 I7 ?try {- U X0 B0 s/ ^
stmt = con.createStatement();
6 e2 A% }' v( {/ ~3 K$ y4 `/ b// sql = "select * from Mstar where id=" + jtf3.getText();
* R: \4 O0 i0 M6 ?# \8 _- O// sql1="select * from sd100343 where ="+jtf3.getText();2 m) S( t# A( D
sql = "select * from Mstar where chineseName="
; j5 V% F G& B% w# t; y+ jtf2.getText().toLowerCase().trim() + "or id="
0 Q$ ?: f9 J4 E9 h( y/ X+ jtf3.getText().toLowerCase().trim() + "or engName="
6 }3 c6 d* g1 h9 y" n+ jtf4.getText().toLowerCase().trim() + "or UNIT="
! k- J7 b# }# }% }# U+ jtf5.getText().toLowerCase().trim() + "or TEAM=". M, I: z3 K) H4 l2 Z
+ jtf6.getText().toLowerCase().trim() + "or Phone="
9 ?) T8 X. ]4 @( e8 b+ jtf7.getText().toLowerCase().trim() + "or region="
! T2 Q! M$ z4 E* R5 N. y# l+ jtf8.getText().toLowerCase().trim() + "or busStation="
! F( C& F2 k8 G5 f1 }& ?9 x+ jtf9.getText().toLowerCase().trim();: M7 J1 R% f4 ~
stmt.executeQuery(sql);
% p: b" ]) _1 _3 T3 Y5 Lrs = stmt.getResultSet();6 }, ^" y0 P6 n1 J
ResultSetMetaData meta = rs.getMetaData();) _9 {' }5 W) {$ j9 n+ r
int cols = meta.getColumnCount();1 J. ^8 H5 ]+ h3 w
while (rs.next()) {
! z) \4 `, Y& { x5 ?for (int i = 1; i <= cols; i++) {7 W2 z: C7 }! N" |0 l2 }
sb.append(" " + meta.getColumnName(i) + " =");
0 w' r0 U8 D2 s- e9 D1 hsb.append(rs.getString(i));# l9 m; [6 A7 j9 D# g: g
}+ T7 l0 U; l4 {! [
sb.append("\n");
3 ^& [& C- S3 I% Pjta10.setText(sb.toString());- V0 m$ M9 K/ `& |
}
! O' B, ?+ _" s' A6 {} catch (SQLException e11) {3 m3 L i9 x/ O
e11.printStackTrace();
X$ O8 a$ u3 r; T" c, J; V/ ]} } public void addEmp() {( x' _" K7 m; T
try {
0 A0 S: T/ \! k7 J, ]. q, cstmt = con.createStatement();" G* n8 J' M' J
sql = "update Mstar values(" + jtf2.getText() + jtf3.getText()& c g, d, W$ _( f( F3 q
+ jtf4.getText() + jtf5.getText() + jtf6.getText()
3 d% R( S# S( I$ H: u+ jtf7.getText() + jtf8.getText() + jtf9.getText() + ")";
: l; |. _/ W5 Zint i = stmt.getUpdateCount();" `# o. b4 ^; c2 r" [
if ((jtf2.getText() != null) && (jtf4.getText() != null)
& C9 ~# @0 `* W2 O0 a- W4 ^&& (jtf6.getText() != null) && (jtf7.getText() != null)) {7 o3 U( U. r# v: k) Q* f1 ?
stmt.executeUpdate(sql);
7 w% B/ [7 W: I, H1 r' i4 ajta10.setText("添加记录成功" + i + "条");. ], [/ j4 o* o3 M; g; A T
} else {
6 Q8 ^* ~# y( r7 Y7 P: Jjta10.setText("带*号项为添加记录时不能为空");
9 K& Y; \( {$ q3 ]7 a$ H}
8 A7 \2 `& g* H8 y, }! b9 Z1 p9 C" [} catch (SQLException e1) {6 P. f+ c( i2 O( J/ B0 E
e1.printStackTrace();) C" [5 {, m$ U
}
0 w& I9 T( i* ~0 m& e} public void deleteEmp() {% w+ h5 i' |5 Y& B; E: [4 K
searchEmp();) a! B$ |6 r' o: [1 o
try {% ~0 U( L; G6 d9 v0 J
stmt = con.createStatement();; W: n' }4 X! i# y6 m: f
sql = "delete from Mstar where chineseName="; D8 u9 Z+ |! Y2 e. J$ h# G
+ jtf2.getText().toLowerCase().trim() + "or id="
: I& S/ G. a4 @5 r6 }2 C: k" X+ jtf3.getText().toLowerCase().trim() + "or engName="( m P# e7 e+ ?
+ jtf4.getText().toLowerCase().trim() + "or UNIT="
2 H1 m n& H4 a' x Z* S" ]; r+ jtf5.getText().toLowerCase().trim() + "or TEAM="
6 P6 A4 Q7 Q5 m- g: S* P+ jtf6.getText().toLowerCase().trim() + "or Phone="
@* U( u! k" {- l9 v# ^+ jtf7.getText().toLowerCase().trim() + "or region="
, {" Q; X" e% S9 Y _4 i8 N) F/ S+ jtf8.getText().toLowerCase().trim() + "or busStation=", Q7 J% A6 k( r' ]4 j9 k; `& t
+ jtf9.getText().toLowerCase().trim();
- Z2 u8 s# p* v4 ^* Rstmt.executeUpdate(sql);
% n$ n6 V( S! J" hint i = stmt.getUpdateCount();
0 a9 i6 J [% F5 t( `, jjta10.setText("撤除操作成功" + i + "条");
. _3 a) H$ e; K4 W4 E. q& h; R9 H} catch (SQLException e) {$ ^9 c4 M; ?: m' c$ x
e.printStackTrace();
) Z0 B# u9 D5 }. |} } public void alterEmp() {
0 t P4 J, a* n( @% p2 R2 l5 JsearchEmp();
" P, ~( L1 K$ q7 z3 Vsql = "update Mstar set chineseName="" N% t6 d* O* @* {/ k
+ jtf2.getText().toLowerCase().trim() + "and id="
. q" u4 p1 b: x) ]+ V2 G' Y+ jtf3.getText().toLowerCase().trim() + "and engName="
6 \3 L ~: ]* y2 T2 N5 f5 i% Z+ jtf4.getText().toLowerCase().trim() + "and UNIT="! a4 W$ Z7 c2 `0 R
+ jtf5.getText().toLowerCase().trim() + "and TEAM="
" c. {4 g; r; F4 ?0 E) A7 ~1 b f+ jtf6.getText().toLowerCase().trim() + "and Phone="
7 L1 c6 {; [5 h4 _6 t- w4 B+ jtf7.getText().toLowerCase().trim() + "and region="
$ u% C% K3 U! ]' G6 z: Q+ jtf8.getText().toLowerCase().trim() + "and busStation="4 Q5 E: j; {3 m
+ jtf9.getText().toLowerCase().trim(); int i = 0;: a& _+ c& f5 ?1 A% |
try {
6 h0 g6 C" \& Rstmt.executeUpdate(sql);" Q1 j1 i$ M/ N+ e
i = stmt.getUpdateCount();
# N4 ` S: _, q/ Z- L& f1 F} catch (SQLException e) {' G1 p- G* h9 X; v& p! R. d" ~3 J
e.printStackTrace();9 g {8 Y% D" q' |6 J
}; B: J% H0 O- O8 P) x
jta10.setText("修改操作成功" + i + "条");
4 H( _0 v$ S4 u2 R9 R- _9 A$ @: q} public void createGUI() {
' L% N& U2 J% k; m, D$ ZJFrame jf = new JFrame("员工信息管理系统");; e0 N, E3 V1 [) \- R; M' A
jf.setLayout(new GridLayout(2, 1));. e3 \# R+ e9 l, S1 F1 I" q% E
// jf.setLayout(new GridLayout(10,2));
+ w$ U6 a: [6 sJPanel jp00 = new JPanel(new GridLayout(5, 4)); JPanel jp1 = new JPanel();
B. K3 ~1 _- m; o* DJButton jb11 = new JButton("查询");
. r$ C! M! H g* Y0 \jb11.addActionListener(this);
' H" E& z2 q) @2 GJButton jb12 = new JButton("增加");2 Y$ n2 ]/ H- x0 z
jb12.addActionListener(this);% d+ v! _: K6 Z- r. G
jp1.add(jb11);
: o; L" [3 q7 `$ g w0 K7 @2 H1 H; ajp1.add(jb12);- x/ l1 j7 h- M8 e8 z: K
jp00.add(jp1);9 h5 a4 G A' i: X2 Z* T6 v
JPanel jp11 = new JPanel();' _7 }$ N n; [, {
JButton jb111 = new JButton("修改");
7 ^0 f% t/ E+ f9 k7 M$ ^jb111.addActionListener(this);
8 ^$ |' @: H2 UJButton jb112 = new JButton("撤除");" ^3 s) Q. N" L% M. F% @+ ~, p
jb112.addActionListener(this);% E: m% I; ]3 d8 g" k. K
jp11.add(jb111);
1 [# }$ u& a* `5 j( \6 Djp11.add(jb112);+ n G! I* P$ _
jp00.add(jp11);
, m7 B) Z/ h3 W5 `. }: q) ]2 OJPanel jp2 = new JPanel();
+ y/ @0 _5 F9 o4 }JLabel jl2 = new JLabel("中 文 名 * ");
' Q' j) D7 [4 P8 w0 tjp2.add(jl2);6 @: p1 P8 @1 d% q+ R
jp2.add(jtf2);! [7 E' e1 _* Y
jp00.add(jp2);3 J# }& n- d2 o* K$ D2 A8 ~
JPanel jp3 = new JPanel();
7 o' T. e- k; u; p3 RJLabel jl3 = new JLabel("工 号 ");
0 E$ j! A5 r7 S- f1 tjp3.add(jl3);
e& M9 e. C) L- K& x: yjp3.add(jtf3);
0 y8 {7 i- I' c- _jp00.add(jp3);/ N8 e# b |4 s2 U% \0 T1 r
JPanel jp4 = new JPanel();( @1 P7 v/ R" @9 u# a8 E( J
JLabel jl4 = new JLabel("EngName*");
: i- [6 d. ?' ]6 G4 Tjp4.add(jl4);
% C2 u- ]/ u9 _' ]+ L. k8 djp4.add(jtf4);9 T2 V' `$ [' X# G' l
jp00.add(jp4);( K9 H8 t% [% y
JPanel jp5 = new JPanel();' g+ }4 P) V* [4 E( K
JLabel jl5 = new JLabel("UNIT ");
! g" @& K o6 A; G1 x7 C0 kjp5.add(jl5);
- W- W/ x; c. B" Jjp5.add(jtf5);
$ [6 Z9 h( j. f# X- ~jp00.add(jp5); b8 P* F: \; K* `4 ^5 N
JPanel jp6 = new JPanel();
) D: B* c- d1 PJLabel jl6 = new JLabel("TEAM* ");
2 K; O; L1 N: B2 K% ajp6.add(jl6);
( V6 K9 _- i, U+ u/ \: q! a' @" qjp6.add(jtf6);% p& W/ Z; D# E: I& [2 _
jp00.add(jp6);
3 [; Y+ b5 L# H7 T* d6 [) fJPanel jp7 = new JPanel();- t/ h. {7 Z1 j; `8 b
JLabel jl7 = new JLabel("Phone* ");
1 n+ Y0 z7 I' @$ c( hjp7.add(jl7);- Q3 Q# y' E( B H- q; L
jp7.add(jtf7);1 h3 l: t( A& z# x, F1 N
jp00.add(jp7);7 [3 Q+ Y* o- N' x
JPanel jp8 = new JPanel();/ W' _) m8 Q" w& q, W4 @
JLabel jl8 = new JLabel("区域 ");: l! O4 K+ R- Z0 }( e0 o& z" [& b
jp8.add(jl8);
u' g* D9 r0 u! l* {6 z- M3 j8 N9 e2 ejp8.add(jtf8);6 b6 L; _" `7 e# ^; V2 q% W
jp00.add(jp8);7 b: {0 g# r2 L; t6 v
JPanel jp9 = new JPanel();
( H1 Y/ I* A4 [! K+ ?' @/ t) {- cJLabel jl9 = new JLabel("公交站 ");
`1 G# [1 N( Y! Wjp9.add(jl9);% D: G! a3 a3 E" k! O
jp9.add(jtf9);0 A( Y1 F4 a7 q! E
jp00.add(jp9);
K. F5 r' E- njf.add(jp00);
4 D: B8 F) o# w" I$ v9 CJPanel jp01 = new JPanel();$ Z4 r2 R* d% u: Y
jta10.setText("--用户使用手册-- \n1、查询:选择一个字段,如 EngName 在文本框中输入相应内容,点击查询\n2、增加:在各个文本框中输入相应内容后,点击增加。\n3、修改:先查询到你要的记录,在更改相应内容,点击修改。\n4、撤除:类似于修改操作");
% D9 w: _0 @8 g% ]8 {" w3 ]jp01.add(jta10);
" W" s' }6 t+ b; b' E# fjf.add(jp01);
c2 S+ P! e1 h! Pjf.setSize(700, 500);0 k! h8 H+ i0 W1 u( b8 f. B
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);* J& i' K! e' b! b& H) n
jf.setVisible(true); } public static void main(String[] args) {- l2 {, i6 z1 e/ F0 ?5 V
new EmpManageSys();
; K( X9 d3 m/ u% `+ f) p}
2 v$ J3 f: @6 a; E0 f4 I6 r} 3 \2 U; z5 M) x8 t7 ?8 U( i' J
|