// 项目目标:建立员工管理系统第一个版本。
; l- Y6 v; K9 z2 A, g1 b4 Q& I" B// 实现图形用户界面的员工信息查询、增、删、改;与数据库建立,并将修改结果时时保存到数据库。
- t4 T, V+ F4 |// 模块:1.GUI界面 2.数据库连接 3.查询 4.增、5删 6改(操作数据库) import java.sql.*;
" a5 c6 i, ?( G3 V7 jimport java.awt.*; h" x1 B/ s6 S: p0 ]! M
import java.awt.event.*; import javax.swing.*; public class EmpManageSys implements ActionListener { ^: r2 b* _6 J, c. Z$ L# W
Connection con;9 H! J5 j! o* A# a
Statement stmt;
& {: t. ]) f6 N# z5 _. D3 |String sql;9 Y, }3 T/ Y- F$ K( `& A8 [
ResultSet rs;# W4 }& a$ y8 x) U* x% c/ v
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) {: X: s4 j. j. U( w Z- K) d
String str = e.getActionCommand();
- o; x o5 Y: q+ n0 Pif ("查询".equals(str)) { //if check the button of 查询,then go to method of searchEmp()
7 Z' r2 k) u. T9 R* d: zsearchEmp();* L3 o5 W6 J: o7 P/ [6 Y9 j
} else if ("增加".equals(str)) { //if check the button of 增加,then go to method of addEmp()5 X( C* Q0 n! E( F' u' O
addEmp();. w- w" `' a0 ^; k4 c
} else if ("修改".equals(str)) { //if check the button of 修改,then go to method of alterEmp()* r, n& C T6 i1 K, x" M+ s
alterEmp();7 F: x5 R- {& }
} else if ("撤除".equals(str)) { //if check the button of 撤除,then go to method of deleteEmp()
8 U9 N8 J2 D- [; x4 d& [deleteEmp();& _3 t- e: y8 a3 d# x
}% Z, D+ U; D) C% R' A
} //this is the constructor. EmpManageSys() {
* _: g- s9 K8 T2 w O, tcreateGUI();
% L# o+ ]- Q: Y9 NconnectToDataBase();$ @5 I; t6 \& ?- F. J8 T1 w
// searchEmp();% Q( r+ A9 z0 `* C0 a
// addEmp();
4 q) B2 B1 v7 l4 i- `// deleteEmp();! o* E/ h8 ]; e5 V9 }. {
alterEmp();
o. D+ F7 s; [0 [, B} //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() {
4 x! y# ^5 L: ?con = JdbcUtil.getConnection();
+ ?1 X/ r: x$ b- A: @System.out.println(con);
! [7 z3 z3 ]$ sreturn con; } public void searchEmp() {
2 x4 h& E9 t* h7 u# b; N9 h1 Jjta10.setText("");+ p* v" E# H4 v- A0 {6 Z4 a3 N
try { A% e2 q; m1 b$ k `
stmt = con.createStatement();% X2 C N) G+ X- h/ ~' L9 g
// sql = "select * from Mstar where id=" + jtf3.getText();! C2 z' N; J5 ^, a6 }% l6 r3 `. \
// sql1="select * from sd100343 where ="+jtf3.getText();) s; K, c% j4 F
sql = "select * from Mstar where chineseName="9 T. K" T3 \* K2 g1 P- F
+ jtf2.getText().toLowerCase().trim() + "or id="4 p" H# q$ ]9 q2 }9 g
+ jtf3.getText().toLowerCase().trim() + "or engName="3 ~* c+ {9 M! f( }$ d! q+ W! Z
+ jtf4.getText().toLowerCase().trim() + "or UNIT="
! |8 b4 S- w+ g! c+ jtf5.getText().toLowerCase().trim() + "or TEAM="; Z3 O+ G* Q0 R; ~# e
+ jtf6.getText().toLowerCase().trim() + "or Phone="
2 O/ f6 G" c9 ^/ c# D4 s- D+ jtf7.getText().toLowerCase().trim() + "or region="
% }1 F8 r$ T7 v7 u$ H# S+ jtf8.getText().toLowerCase().trim() + "or busStation="
2 {. U5 f4 z* T; h8 B$ \. g+ jtf9.getText().toLowerCase().trim();
& T" @3 V4 X3 h5 X- M/ B3 {/ rstmt.executeQuery(sql);
9 U% w7 W# |1 R: A, ^9 v/ G& u% Wrs = stmt.getResultSet();6 P( s) u% O t
ResultSetMetaData meta = rs.getMetaData();
# M0 v8 {# r' J5 x: Hint cols = meta.getColumnCount();
# |9 P. ^; [" T+ K( Zwhile (rs.next()) {
! a1 f/ ^5 o1 p6 y/ p$ X! f/ @for (int i = 1; i <= cols; i++) {
6 `: C5 i8 E# v9 rsb.append(" " + meta.getColumnName(i) + " =");% G* G) Q7 |( _& \. k: W& o
sb.append(rs.getString(i));
8 d9 B4 M6 ^3 g% Y( F' V; O}) @; [! ?) _8 l
sb.append("\n");" u* C( \; f& s8 f3 A" R
jta10.setText(sb.toString());, |1 m9 L. Z* K+ B1 P
}
! D: C8 W `3 l* u5 D, h! J0 r} catch (SQLException e11) {
S; J6 ]- U9 Me11.printStackTrace();! @- _, @* S* S* S9 L2 F7 b( l
} } public void addEmp() {' P5 J% y* e' {% I6 x8 t
try {
! B! {( M3 N9 K/ q8 Y6 |stmt = con.createStatement();
, }2 ? W+ i' [: G% H2 X& Nsql = "update Mstar values(" + jtf2.getText() + jtf3.getText()
* b% H1 v4 [- P% ?4 o+ jtf4.getText() + jtf5.getText() + jtf6.getText()
- } w- J$ S- @! m3 D1 {5 _+ jtf7.getText() + jtf8.getText() + jtf9.getText() + ")";$ U' S& d% o9 c6 G
int i = stmt.getUpdateCount();! V0 P7 |( m4 l0 N3 R5 H
if ((jtf2.getText() != null) && (jtf4.getText() != null)
+ C6 t9 j+ z- [ v& Y8 v d&& (jtf6.getText() != null) && (jtf7.getText() != null)) {
5 j- L4 {( Y g; zstmt.executeUpdate(sql);+ p7 s' ^- F5 @- e) m7 G
jta10.setText("添加记录成功" + i + "条");& \) c- m1 p$ |- k: J9 [
} else {
* |5 ^& Z: K- n$ g1 ejta10.setText("带*号项为添加记录时不能为空");5 X* b; x0 }5 V
}
" ?" y+ B' w$ E' n} catch (SQLException e1) {
8 b4 L4 f$ n5 x) h9 j6 Me1.printStackTrace();3 [' A9 x3 Z- X+ I
}% g7 I2 G1 b% {3 u) d! `# C
} public void deleteEmp() {- P7 v# H7 O6 |4 d: d$ k0 S& u% b
searchEmp();
( A1 w( P" E! R' Wtry {
3 Y4 R% m H( d- r' ]. t. Bstmt = con.createStatement();2 c$ F0 A' {* g+ P% ?
sql = "delete from Mstar where chineseName="8 B; x# G4 s$ H
+ jtf2.getText().toLowerCase().trim() + "or id="
6 w: C/ \4 k6 Z3 n2 U/ R' q+ jtf3.getText().toLowerCase().trim() + "or engName="- F" z4 U+ g/ B7 E
+ jtf4.getText().toLowerCase().trim() + "or UNIT="* L! Y! _8 \2 L5 R
+ jtf5.getText().toLowerCase().trim() + "or TEAM="
$ Y4 F* w6 d7 e+ jtf6.getText().toLowerCase().trim() + "or Phone="
% V6 z2 {7 N, y/ g+ jtf7.getText().toLowerCase().trim() + "or region="( z# K- v1 I Y. E! s; x2 T
+ jtf8.getText().toLowerCase().trim() + "or busStation="( s6 o' n" @' N0 P5 j- j
+ jtf9.getText().toLowerCase().trim();+ M, I K+ D3 X o" z7 r; U- I
stmt.executeUpdate(sql);
- A* i( [% ^# n b Z t9 o/ Y. wint i = stmt.getUpdateCount();
, V: U2 }6 W, o+ A; _& w( kjta10.setText("撤除操作成功" + i + "条");; R- v& R% F2 I& p5 N+ u
} catch (SQLException e) {. d8 G+ Z6 I+ ~/ n0 k: H) b$ U
e.printStackTrace();
& |" j+ p6 E" q0 k} } public void alterEmp() {
$ c% s3 X4 n* k b& {searchEmp();$ E1 z* q2 {8 K8 a1 E
sql = "update Mstar set chineseName="
2 G" T$ O3 m* x! J. @ v+ jtf2.getText().toLowerCase().trim() + "and id="
# I9 v, ^+ ^1 ]3 N7 y: x4 A+ jtf3.getText().toLowerCase().trim() + "and engName="
9 w) }+ G. T; }# m# G ^4 D6 c0 F) A/ T+ jtf4.getText().toLowerCase().trim() + "and UNIT="2 ~5 ~/ p. G5 G! G7 B* h) I" q
+ jtf5.getText().toLowerCase().trim() + "and TEAM=", ?4 q6 R% W& m. b& a
+ jtf6.getText().toLowerCase().trim() + "and Phone="8 G; R( f5 z! ~
+ jtf7.getText().toLowerCase().trim() + "and region=", K/ W5 \# k) f
+ jtf8.getText().toLowerCase().trim() + "and busStation="
% u1 S6 v9 Y5 U, a( [, A; I! Q+ jtf9.getText().toLowerCase().trim(); int i = 0;
9 f5 _5 f& ?+ j: x3 _/ C7 ktry {
4 B. W8 Y; `1 Fstmt.executeUpdate(sql);
8 |; e- t! _" J4 _$ ]i = stmt.getUpdateCount();6 @, w* N) c& i
} catch (SQLException e) {# | ?( n) z/ G$ e' |; y" i8 h
e.printStackTrace();+ j. |9 Z' w! h% o6 G* @. F& j- A
}
x1 o/ |5 x4 J7 J; h# q* S: ?jta10.setText("修改操作成功" + i + "条");8 W9 X( G t- M$ V5 j- i
} public void createGUI() {
# f+ Y( p4 Z7 J% ^. A! BJFrame jf = new JFrame("员工信息管理系统");
+ y! r+ \ | q5 m0 n T. _+ ojf.setLayout(new GridLayout(2, 1));/ c' c) E+ c) Z4 q% Q, ?" N$ A
// jf.setLayout(new GridLayout(10,2));
5 W p* T" x+ g1 U$ [. D/ ?8 TJPanel jp00 = new JPanel(new GridLayout(5, 4)); JPanel jp1 = new JPanel();9 k, X+ Q: W! t: G5 u3 R
JButton jb11 = new JButton("查询");
6 \- H& b8 z' j/ s6 T! jjb11.addActionListener(this);* Y6 S2 E2 D) q
JButton jb12 = new JButton("增加");
9 s3 }# ^# r1 z: T. K7 m9 Jjb12.addActionListener(this);
4 I2 [5 w) q: j. Z; F% c' Ijp1.add(jb11);
, s" \$ f! s* W. A. ^jp1.add(jb12);
0 ^( ~( l' m1 x* m+ _* ~4 V1 ]0 M4 Gjp00.add(jp1);, g1 G, ^8 l/ \! Y# ?
JPanel jp11 = new JPanel();9 T# c, n4 q: j$ {1 r2 |) m
JButton jb111 = new JButton("修改");: j; e8 |# ^6 ^2 d
jb111.addActionListener(this);# z5 s+ L q% g7 t/ _* A0 D# _
JButton jb112 = new JButton("撤除");& d: {. P& i+ T d, R( _- a* B
jb112.addActionListener(this);
- x3 [, w2 {6 sjp11.add(jb111);
P& K" E% Q4 x' {7 ajp11.add(jb112);% L9 ]" ?& T& R* }: G3 Y
jp00.add(jp11);
; c) i4 U* w2 _- x1 z& rJPanel jp2 = new JPanel();
0 t$ g9 J/ @) S& MJLabel jl2 = new JLabel("中 文 名 * ");
! J0 W- c J4 e ?& V6 ujp2.add(jl2);
; q3 i+ ?, h( Tjp2.add(jtf2);- s1 \% O$ O5 J* M; R% |
jp00.add(jp2);
; ?& ]5 P) a! w; _2 q/ ^8 d3 xJPanel jp3 = new JPanel();
, m; F: w. L. M7 d1 J) eJLabel jl3 = new JLabel("工 号 ");% c8 ]0 `5 [6 b* R* D# h2 H# }% n# X
jp3.add(jl3);" D R+ \7 L `2 }) l
jp3.add(jtf3);
$ ]4 |+ Q8 Q8 hjp00.add(jp3);8 R. B4 x! h. M9 }: w3 b
JPanel jp4 = new JPanel();
$ t1 O" ^. y U. ~. nJLabel jl4 = new JLabel("EngName*");# `* @, H6 @: c. i/ D
jp4.add(jl4);
+ _7 y1 {# L9 \" D2 o! Ijp4.add(jtf4);
# U8 R6 z) m- ~4 k8 sjp00.add(jp4);
5 Y9 R' f; d- u+ a9 bJPanel jp5 = new JPanel();) I$ |+ e6 b9 \8 w) ^ N- i
JLabel jl5 = new JLabel("UNIT "); k+ N3 n! p( j" O
jp5.add(jl5);
, w: p i$ }- y" Xjp5.add(jtf5);
0 B2 A2 W) I+ Njp00.add(jp5);
" x4 _7 W% z0 w% xJPanel jp6 = new JPanel();
9 W( F2 ~3 O- RJLabel jl6 = new JLabel("TEAM* ");
, J! k* X% q- W* P; w, S+ V4 xjp6.add(jl6);: F6 E5 u7 e3 I, h S
jp6.add(jtf6);
9 a, A- s: p) o# @% z' Ljp00.add(jp6);
# Q3 ?2 ~, b) W" yJPanel jp7 = new JPanel();
$ I% _+ s. B9 l* o( }JLabel jl7 = new JLabel("Phone* ");: O, ^8 p, g7 ]
jp7.add(jl7);
' z( c* C! h0 q! q9 ujp7.add(jtf7);
; ?. I7 B. c4 a3 ?, Fjp00.add(jp7);
3 w; Q" b$ b. d9 iJPanel jp8 = new JPanel();
# \% z: i i0 w1 SJLabel jl8 = new JLabel("区域 ");
/ u) a& D; ~7 Q( n) q: ~jp8.add(jl8);
* w) n5 r$ F) D" zjp8.add(jtf8);
0 p, y |% `5 ], m7 g9 djp00.add(jp8);
9 ^3 a v) f o9 n! O% IJPanel jp9 = new JPanel();
$ K- R+ N0 V7 H+ T8 P g$ uJLabel jl9 = new JLabel("公交站 ");( g# J3 e0 |% @2 i$ [3 u8 P
jp9.add(jl9);
' m1 a9 K B0 R, n7 n" \ Xjp9.add(jtf9);* D# b4 \/ u$ ]+ j& W/ L
jp00.add(jp9);, x. \: y$ p! m( E2 @% P
jf.add(jp00); k) ?+ Z+ w- X9 X1 S0 W0 Q3 Y" \% e
JPanel jp01 = new JPanel();5 E# K" h# \. Z4 |+ }
jta10.setText("--用户使用手册-- \n1、查询:选择一个字段,如 EngName 在文本框中输入相应内容,点击查询\n2、增加:在各个文本框中输入相应内容后,点击增加。\n3、修改:先查询到你要的记录,在更改相应内容,点击修改。\n4、撤除:类似于修改操作");! K! A- s: \" j7 r
jp01.add(jta10);
/ e5 L k$ P0 Xjf.add(jp01);
) |/ T; n$ H# L3 V8 ?! hjf.setSize(700, 500);
0 E" S( K$ P' j2 U% Bjf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
% ~) m0 G5 p7 w# Sjf.setVisible(true); } public static void main(String[] args) {! ?9 ?0 g6 q" H$ Z! T/ b
new EmpManageSys();) d2 E9 z* U3 [3 v* Y' J
}
7 N0 Z2 X" Z5 S2 W) V5 J" z} H4 H5 D0 X) {" `% t2 v6 k6 B
|