时间:2021-07-01 10:21:17 帮助过:16人阅读
[JTable_Test3.java]源码
168 12
- <span><span>/**</span></span>
3
- <span> <span>* 完成一个mini版本的学生管理系统(MODEL2-2模式)</span></span>
4
- <span> <span>* 1、查询任务</span></span>
5
- <span> <span>* 2、添加功能</span></span>
6
- <span> <span>*/</span></span>
7
- <span><span>package</span> <span>com</span>.<span>student3</span>;</span>
8
- <span> </span>
9
- <span><span>import</span> <span>java</span>.<span>awt</span>.<span>event</span>.<span>ActionEvent</span>;</span>
10
- <span><span>import</span> <span>java</span>.<span>awt</span>.<span>event</span>.<span>ActionListener</span>;</span>
11
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>Connection</span>;</span>
12
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>DriverManager</span>;</span>
13
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>PreparedStatement</span>;</span>
14
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>ResultSet</span>;</span>
15
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>SQLException</span>;</span>
16
- <span><span>import</span> <span>java</span>.<span>util</span>.<span>Vector</span>;</span>
17
- <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>*</span>;</span>
18
- <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>table</span>.<span>AbstractTableModel</span>;</span>
19
- <span> </span>
20
- <span><span>public</span> <span>class</span> <span>JTable_Test3</span> <span>extends</span> <span>JFrame</span> <span>implements</span> <span>ActionListener</span>{</span>
21
- <span> <span>//定义组件</span></span>
22
- <span> <span>JPanel</span> <span>jp1</span>,<span>jp2</span>;</span>
23
- <span> <span>JLabel</span> <span>jl1</span>;</span>
24
- <span> <span>JButton</span> <span>jb1</span>,<span>jb2</span>,<span>jb3</span>,<span>jb4</span>;</span>
25
- <span> <span>JTable</span> <span>jt</span>;</span>
26
- <span> <span>JScrollPane</span> <span>jsp</span>;</span>
27
- <span> <span>JTextField</span> <span>jtf</span>;</span>
28
- <span> <span>StuModel</span> <span>sm</span>;</span>
29
- <span> </span>
30
- <span> <span>public</span> <span>static</span> <span>void</span> <span>main</span>(<span>String</span>[] <span>args</span>) {</span>
31
- <span> <span>try</span> {</span>
32
- <span> <span>// 将当前窗体外观设置为所在操作系统的外观</span></span>
33
- <span> <span>UIManager</span>.<span>setLookAndFeel</span>(<span>UIManager</span>.<span>getSystemLookAndFeelClassName</span>());</span>
34
- <span> } <span>catch</span> (<span>ClassNotFoundException</span> <span>e</span>) {</span>
35
- <span> <span>e</span>.<span>printStackTrace</span>();</span>
36
- <span> } <span>catch</span> (<span>InstantiationException</span> <span>e</span>) {</span>
37
- <span> <span>e</span>.<span>printStackTrace</span>();</span>
38
- <span> } <span>catch</span> (<span>IllegalAccessException</span> <span>e</span>) {</span>
39
- <span> <span>e</span>.<span>printStackTrace</span>();</span>
40
- <span> } <span>catch</span> (<span>UnsupportedLookAndFeelException</span> <span>e</span>) {</span>
41
- <span> <span>e</span>.<span>printStackTrace</span>();</span>
42
- <span> }</span>
43
- <span> <span>new</span> <span>JTable_Test3</span>();</span>
44
- <span> }</span>
45
- <span> </span>
46
- <span> <span>//构造函数</span></span>
47
- <span> <span>public</span> <span>JTable_Test3</span>(){</span>
48
- <span> <span>jp1</span><span>=</span><span>new</span> <span>JPanel</span>();</span>
49
- <span> <span>jtf</span><span>=</span><span>new</span> <span>JTextField</span>(<span>10</span>);</span>
50
- <span> <span>jb1</span><span>=</span><span>new</span> <span>JButton</span>(<span>"查询"</span>);</span>
51
- <span> <span>jb1</span>.<span>addActionListener</span>(<span>this</span>);</span>
52
- <span> <span>jl1</span><span>=</span><span>new</span> <span>JLabel</span>(<span>"请输入名字"</span>);</span>
53
- <span> </span>
54
- <span> <span>//把各个空间加入列</span></span>
55
- <span> <span>jp1</span>.<span>add</span>(<span>jl1</span>);</span>
56
- <span> <span>jp1</span>.<span>add</span>(<span>jtf</span>);</span>
57
- <span> <span>jp1</span>.<span>add</span>(<span>jb1</span>);</span>
58
- <span> </span>
59
- <span> <span>jp2</span><span>=</span><span>new</span> <span>JPanel</span>();</span>
60
- <span> <span>jb2</span><span>=</span><span>new</span> <span>JButton</span>(<span>"添加"</span>);</span>
61
- <span> <span>jb2</span>.<span>addActionListener</span>(<span>this</span>);</span>
62
- <span> <span>jb3</span><span>=</span><span>new</span> <span>JButton</span>(<span>"修改"</span>);</span>
63
- <span> <span>jb3</span>.<span>addActionListener</span>(<span>this</span>);</span>
64
- <span> <span>jb4</span><span>=</span><span>new</span> <span>JButton</span>(<span>"删除"</span>);</span>
65
- <span> <span>jb4</span>.<span>addActionListener</span>(<span>this</span>);</span>
66
- <span> <span>//把各个按钮加入到jp2中</span></span>
67
- <span> <span>jp2</span>.<span>add</span>(<span>jb2</span>);</span>
68
- <span> <span>jp2</span>.<span>add</span>(<span>jb3</span>);</span>
69
- <span> <span>jp2</span>.<span>add</span>(<span>jb4</span>);</span>
70
- <span> </span>
71
- <span> <span>//创建一个数据模型对象</span></span>
72
- <span> <span>sm</span><span>=</span><span>new</span> <span>StuModel</span>();</span>
73
- <span> <span>String</span> []<span>paras</span><span>=</span>{<span>"1"</span>};</span>
74
- <span> <span>sm</span>.<span>queryStu</span>(<span>"select * from stu where 1=?"</span>, <span>paras</span>);</span>
75
- <span> </span>
76
- <span> <span>//初始化JTable</span></span>
77
- <span> <span>jt</span><span>=</span><span>new</span> <span>JTable</span>(<span>sm</span>);</span>
78
- <span> </span>
79
- <span> <span>//初始化jsp JScrollPane</span></span>
80
- <span> <span>jsp</span><span>=</span><span>new</span> <span>JScrollPane</span>(<span>jt</span>);</span>
81
- <span> </span>
82
- <span> <span>//把jsp放入到jframe</span></span>
83
- <span> <span>this</span>.<span>add</span>(<span>jsp</span>);</span>
84
- <span> <span>this</span>.<span>add</span>(<span>jp1</span>,<span>"North"</span>);</span>
85
- <span> <span>this</span>.<span>add</span>(<span>jp2</span>,<span>"South"</span>);</span>
86
- <span> </span>
87
- <span> <span>this</span>.<span>setSize</span>(<span>400</span>, <span>300</span>);</span>
88
- <span> <span>this</span>.<span>setDefaultCloseOperation</span>(<span>JFrame</span>.<span>EXIT_ON_CLOSE</span>);</span>
89
- <span> <span>this</span>.<span>setVisible</span>(<span>true</span>);</span>
90
- <span> }</span>
91
- <span> </span>
92
- <span> <span>@Override</span></span>
93
- <span> <span>public</span> <span>void</span> <span>actionPerformed</span>(<span>ActionEvent</span> <span>e</span>) {</span>
94
- <span> <span>if</span>(<span>e</span>.<span>getSource</span>()<span>==</span><span>jb1</span>){</span>
95
- <span> <span>//因为把对表的数据封装到StuModel中,我们就可以比较简单的完成查询</span></span>
96
- <span> <span>String</span> <span>name</span><span>=</span><span>this</span>.<span>jtf</span>.<span>getText</span>();</span>
97
- <span> <span>//写一个SQL语句</span></span>
98
- <span> <span>String</span> <span>sql</span><span>=</span><span>"select * from stu where stuName=?"</span>;</span>
99
- <span> <span>String</span> []<span>paras</span><span>=</span>{<span>name</span>};</span>
100
- <span> <span>//构建新的数据模型类,并更新</span></span>
101
- <span> <span>sm</span><span>=</span><span>new</span> <span>StuModel</span>();</span>
102
- <span> <span>sm</span>.<span>queryStu</span>(<span>sql</span>, <span>paras</span>);</span>
103
- <span> <span>//更新JTable</span></span>
104
- <span> <span>jt</span>.<span>setModel</span>(<span>sm</span>);</span>
105
- <span> }</span>
106
- <span> <span>//用户点击添加时</span></span>
107
- <span> <span>else</span> <span>if</span>(<span>e</span>.<span>getSource</span>()<span>==</span><span>jb2</span>){</span>
108
- <span> <span>StuAddDialog</span> <span>sa</span><span>=</span><span>new</span> <span>StuAddDialog</span>(<span>this</span>, <span>"添加学生"</span>, <span>true</span>);</span>
109
- <span> <span>//重新再获得新的数据模型</span></span>
110
- <span> <span>//构建新的数据模型类,并更新</span></span>
111
- <span> <span>sm</span><span>=</span><span>new</span> <span>StuModel</span>();</span>
112
- <span> <span>String</span> []<span>paras2</span><span>=</span>{<span>"1"</span>};</span>
113
- <span> <span>sm</span>.<span>queryStu</span>(<span>"select * from stu where 1=?"</span>, <span>paras2</span>);</span>
114
- <span> <span>//更新JTable</span></span>
115
- <span> <span>jt</span>.<span>setModel</span>(<span>sm</span>);</span>
116
- <span> }</span>
117
- <span> <span>//用户修改数据</span></span>
118
- <span> <span>else</span> <span>if</span>(<span>e</span>.<span>getSource</span>()<span>==</span><span>jb3</span>){</span>
119
- <span> <span>int</span> <span>rowNum</span><span>=</span><span>this</span>.<span>jt</span>.<span>getSelectedRow</span>();</span>
120
- <span> <span>if</span>(<span>rowNum</span><span>==-</span><span>1</span>){</span>
121
- <span> <span>//提示</span></span>
122
- <span> <span>JOptionPane</span>.<span>showMessageDialog</span>(<span>this</span>, <span>"请选择一行"</span>, <span>"提示"</span>, <span>JOptionPane</span>.<span>INFORMATION_MESSAGE</span>);</span>
123
- <span> <span>return</span>;</span>
124
- <span> }</span>
125
- <span> </span>
126
- <span> <span>//显示修改对话框</span></span>
127
- <span> <span>new</span> <span>StuUpdDialog</span>(<span>this</span>,<span>"修改学生信息"</span>,<span>true</span>,<span>sm</span>,<span>rowNum</span>);</span>
128
- <span> </span>
129
- <span> <span>//更新数据模型</span></span>
130
- <span> <span>sm</span><span>=</span><span>new</span> <span>StuModel</span>();</span>
131
- <span> <span>String</span> []<span>paras2</span><span>=</span>{<span>"1"</span>};</span>
132
- <span> <span>sm</span>.<span>queryStu</span>(<span>"select * from stu where 1=?"</span>, <span>paras2</span>);</span>
133
- <span> <span>//更新JTable</span></span>
134
- <span> <span>jt</span>.<span>setModel</span>(<span>sm</span>);</span>
135
- <span> }</span>
136
- <span> </span>
137
- <span> <span>//用户点击删除时,删除一条选中的数据</span></span>
138
- <span> <span>else</span> <span>if</span>(<span>e</span>.<span>getSource</span>()<span>==</span><span>jb4</span>){</span>
139
- <span> <span>//1、得到学生的ID号</span></span>
140
- <span> <span>//getSelectedRow会返回用户点中的行</span></span>
141
- <span> <span>//如果该用户一行都没有选择,就会返回-1</span></span>
142
- <span> <span>int</span> <span>rowNum</span><span>=</span><span>this</span>.<span>jt</span>.<span>getSelectedRow</span>();</span>
143
- <span> <span>if</span>(<span>rowNum</span><span>==-</span><span>1</span>){</span>
144
- <span> <span>//提示</span></span>
145
- <span> <span>JOptionPane</span>.<span>showMessageDialog</span>(<span>this</span>, <span>"请选择一行"</span>, <span>"提示"</span>, <span>JOptionPane</span>.<span>INFORMATION_MESSAGE</span>);</span>
146
- <span> <span>return</span>;</span>
147
- <span> }</span>
148
- <span> <span>//得到学生编号</span></span>
149
- <span> <span>String</span> <span>stuId</span><span>=</span>(<span>String</span>)<span>sm</span>.<span>getValueAt</span>(<span>rowNum</span>, <span>0</span>);</span>
150
- <span> <span>//创建一个sql语句</span></span>
151
- <span> <span>String</span> <span>sql</span><span>=</span><span>"delete from stu where stuid=?"</span>;</span>
152
- <span> <span>String</span> []<span>paras</span><span>=</span>{<span>stuId</span>};</span>
153
- <span> <span>StuModel</span> <span>temp</span><span>=</span><span>new</span> <span>StuModel</span>();</span>
154
- <span> <span>if</span>(<span>temp</span>.<span>updStu</span>(<span>sql</span>, <span>paras</span>)){</span>
155
- <span> <span>JOptionPane</span>.<span>showMessageDialog</span>(<span>this</span>,<span>"删除数据成功"</span>,<span>"删除数据提示"</span>,<span>JOptionPane</span>.<span>INFORMATION_MESSAGE</span>);</span>
156
- <span> }<span>else</span>{</span>
157
- <span> <span>JOptionPane</span>.<span>showMessageDialog</span>(<span>this</span>,<span>"删除数据失败"</span>,<span>"删除数据提示"</span>,<span>JOptionPane</span>.<span>ERROR_MESSAGE</span>);</span>
158
- <span> }</span>
159
- <span> </span>
160
- <span> <span>//更新数据模型</span></span>
161
- <span> <span>sm</span><span>=</span><span>new</span> <span>StuModel</span>();</span>
162
- <span> <span>String</span> []<span>paras2</span><span>=</span>{<span>"1"</span>};</span>
163
- <span> <span>sm</span>.<span>queryStu</span>(<span>"select * from stu where 1=?"</span>, <span>paras2</span>);</span>
164
- <span> <span>//更新JTable</span></span>
165
- <span> <span>jt</span>.<span>setModel</span>(<span>sm</span>);</span>
166
- <span> }</span>
167
- <span> }</span>
168
- <span>}</span>
- <span> </span>
*******************************************************************************
[StuModel.java]源码
84 12
- <span><span>/**</span></span>
3
- <span> <span>* 这是一个stu表的模型</span></span>
4
- <span> <span>* 可以把对student表的各种操作封装到该模型中</span></span>
5
- <span> <span>*/</span></span>
6
- <span><span>package</span> <span>com</span>.<span>student3</span>;</span>
7
- <span> </span>
8
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>Connection</span>;</span>
9
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>DriverManager</span>;</span>
10
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>PreparedStatement</span>;</span>
11
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>ResultSet</span>;</span>
12
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>SQLException</span>;</span>
13
- <span><span>import</span> <span>java</span>.<span>util</span>.<span>Vector</span>;</span>
14
- <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JOptionPane</span>;</span>
15
- <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>table</span>.<span>AbstractTableModel</span>;</span>
16
- <span> </span>
17
- <span><span>public</span> <span>class</span> <span>StuModel</span> <span>extends</span> <span>AbstractTableModel</span>{</span>
18
- <span> <span>//rowData用来存放行数据、columnNames存放列名</span></span>
19
- <span> <span>Vector</span> <span>rowData</span>,<span>columnNames</span>;</span>
20
- <span> </span>
21
- <span> <span>//添加学生(增、删、改)</span></span>
22
- <span> <span>public</span> <span>boolean</span> <span>updStu</span>(<span>String</span> <span>sql</span>,<span>String</span> []<span>paras</span>){</span>
23
- <span> <span>//创建SqlHelper(如果程序并发性不考虑,可以把SqlHelper做成static)</span></span>
24
- <span> <span>SqlHelper</span> <span>sqlHelper</span><span>=</span><span>new</span> <span>SqlHelper</span>();</span>
25
- <span> <span>return</span> <span>sqlHelper</span>.<span>updExecute</span>(<span>sql</span>, <span>paras</span>);</span>
26
- <span> }</span>
27
- <span> </span>
28
- <span> <span>//查询的本质就是用来初始化</span></span>
29
- <span> <span>public</span> <span>void</span> <span>queryStu</span>(<span>String</span> <span>sql</span>,<span>String</span> []<span>paras</span>){</span>
30
- <span> <span>SqlHelper</span> <span>sqlHelper</span><span>=</span><span>null</span>;</span>
31
- <span> <span>//中间</span></span>
32
- <span> <span>columnNames</span><span>=</span><span>new</span> <span>Vector</span><span><></span>();</span>
33
- <span> <span>//设置列名</span></span>
34
- <span> <span>columnNames</span>.<span>add</span>(<span>"学号"</span>);</span>
35
- <span> <span>columnNames</span>.<span>add</span>(<span>"名字"</span>);</span>
36
- <span> <span>columnNames</span>.<span>add</span>(<span>"性别"</span>);</span>
37
- <span> <span>columnNames</span>.<span>add</span>(<span>"年龄"</span>);</span>
38
- <span> <span>columnNames</span>.<span>add</span>(<span>"籍贯"</span>);</span>
39
- <span> <span>columnNames</span>.<span>add</span>(<span>"系别"</span>);</span>
40
- <span> </span>
41
- <span> <span>rowData</span><span>=</span><span>new</span> <span>Vector</span><span><></span>();</span>
42
- <span> <span>//rowData可以存放多行</span></span>
43
- <span> <span>try</span> {</span>
44
- <span> <span>sqlHelper</span><span>=</span><span>new</span> <span>SqlHelper</span>();</span>
45
- <span> <span>ResultSet</span> <span>rs</span><span>=</span><span>sqlHelper</span>.<span>queryExectue</span>(<span>sql</span>, <span>paras</span>);</span>
46
- <span> </span>
47
- <span> <span>while</span>(<span>rs</span>.<span>next</span>()){</span>
48
- <span> <span>Vector</span> <span>hang</span><span>=</span><span>new</span> <span>Vector</span>();</span>
49
- <span> <span>hang</span>.<span>add</span>(<span>rs</span>.<span>getString</span>(<span>1</span>));</span>
50
- <span> <span>hang</span>.<span>add</span>(<span>rs</span>.<span>getString</span>(<span>2</span>));</span>
51
- <span> <span>hang</span>.<span>add</span>(<span>rs</span>.<span>getString</span>(<span>3</span>));</span>
52
- <span> <span>hang</span>.<span>add</span>(<span>rs</span>.<span>getInt</span>(<span>4</span>));</span>
53
- <span> <span>hang</span>.<span>add</span>(<span>rs</span>.<span>getString</span>(<span>5</span>));</span>
54
- <span> <span>hang</span>.<span>add</span>(<span>rs</span>.<span>getString</span>(<span>6</span>));</span>
55
- <span> <span>//加入rowData</span></span>
56
- <span> <span>rowData</span>.<span>add</span>(<span>hang</span>);</span>
57
- <span> }</span>
58
- <span> } <span>catch</span> (<span>Exception</span> <span>e</span>) {</span>
59
- <span> <span>e</span>.<span>printStackTrace</span>();</span>
60
- <span> }<span>finally</span>{</span>
61
- <span> <span>sqlHelper</span>.<span>close</span>();</span>
62
- <span> }</span>
63
- <span> }</span>
64
- <span> </span>
65
- <span> <span>//得到共有多少列</span></span>
66
- <span> <span>public</span> <span>int</span> <span>getColumnCount</span>() {</span>
67
- <span> <span>return</span> <span>this</span>.<span>columnNames</span>.<span>size</span>();</span>
68
- <span> }</span>
69
- <span> </span>
70
- <span> <span>@Override</span></span>
71
- <span> <span>public</span> <span>String</span> <span>getColumnName</span>(<span>int</span> <span>column</span>) {</span>
72
- <span> <span>return</span> (<span>String</span>)<span>this</span>.<span>columnNames</span>.<span>get</span>(<span>column</span>);</span>
73
- <span> }</span>
74
- <span> </span>
75
- <span> <span>//得到共有多少行</span></span>
76
- <span> <span>public</span> <span>int</span> <span>getRowCount</span>() {</span>
77
- <span> <span>return</span> <span>this</span>.<span>rowData</span>.<span>size</span>();</span>
78
- <span> }</span>
79
- <span> </span>
80
- <span> <span>//得到某行某列的数据</span></span>
81
- <span> <span>public</span> <span>Object</span> <span>getValueAt</span>(<span>int</span> <span>rowIndex</span>, <span>int</span> <span>columnIndex</span>) {</span>
82
- <span> <span>return</span> ((<span>Vector</span>)<span>this</span>.<span>rowData</span>.<span>get</span>(<span>rowIndex</span>)).<span>get</span>(<span>columnIndex</span>);</span>
83
- <span> }</span>
84
- <span>}</span>
- <span> </span>
*******************************************************************************
[SqlHelper.java]源码
106 12
- <span><span>/**</span></span>
3
- <span> <span>* 这是一个对数据库进行操作的类(SqlHelper)</span></span>
4
- <span> <span>*/</span></span>
5
- <span><span>package</span> <span>com</span>.<span>student3</span>;</span>
6
- <span> </span>
7
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>Connection</span>;</span>
8
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>DriverManager</span>;</span>
9
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>PreparedStatement</span>;</span>
10
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>ResultSet</span>;</span>
11
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>SQLException</span>;</span>
12
- <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JOptionPane</span>;</span>
13
- <span> </span>
14
- <span><span>public</span> <span>class</span> <span>SqlHelper</span> {</span>
15
- <span> <span>//定义操作数据库需要的组件</span></span>
16
- <span> <span>PreparedStatement</span> <span>ps</span><span>=</span><span>null</span>;</span>
17
- <span> <span>Connection</span> <span>ct</span><span>=</span><span>null</span>;</span>
18
- <span> <span>ResultSet</span> <span>rs</span><span>=</span><span>null</span>; </span>
19
- <span> <span>String</span> <span>sqlDriver</span><span>=</span><span>"com.microsoft.sqlserver.jdbc.SQLServerDriver"</span>;</span>
20
- <span> <span>String</span> <span>url</span><span>=</span><span>"jdbc:sqlserver://127.0.0.1:1433;databaseName=stussystem;user=sa;password=sa;"</span>;</span>
21
- <span> </span>
22
- <span> <span>public</span> <span>SqlHelper</span>(){</span>
23
- <span> <span>try</span> {</span>
24
- <span> <span>//1、加载驱动</span></span>
25
- <span> <span>Class</span>.<span>forName</span>(<span>sqlDriver</span>);</span>
26
- <span> <span>//2、得到连接</span></span>
27
- <span> <span>ct</span><span>=</span><span>DriverManager</span>.<span>getConnection</span>(<span>url</span>);</span>
28
- <span> } <span>catch</span> (<span>Exception</span> <span>e</span>) {</span>
29
- <span> <span>e</span>.<span>printStackTrace</span>();</span>
30
- <span> }</span>
31
- <span> }</span>
32
- <span> </span>
33
- <span> <span>//关闭数据库资源</span></span>
34
- <span> <span>public</span> <span>void</span> <span>close</span>(){</span>
35
- <span> <span>try</span> {</span>
36
- <span> <span>if</span>(<span>rs</span><span>!=</span><span>null</span>){</span>
37
- <span> <span>rs</span>.<span>close</span>();</span>
38
- <span> }</span>
39
- <span> <span>if</span>(<span>ps</span><span>!=</span><span>null</span>){</span>
40
- <span> <span>ps</span>.<span>close</span>();</span>
41
- <span> }</span>
42
- <span> <span>if</span>(<span>ct</span><span>!=</span><span>null</span>){</span>
43
- <span> <span>ct</span>.<span>close</span>();</span>
44
- <span> }</span>
45
- <span> } <span>catch</span> (<span>SQLException</span> <span>e1</span>) {</span>
46
- <span> <span>e1</span>.<span>printStackTrace</span>();</span>
47
- <span> }</span>
48
- <span> }</span>
49
- <span> </span>
50
- <span> <span>//写一个不需要注入的方法(由于数据量少,所以写了一个这个方法。一般都带有条件的注入)</span></span>
51
- <span> <span>public</span> <span>ResultSet</span> <span>queryExectue</span>(<span>String</span> <span>sql</span>){</span>
52
- <span> <span>try</span> {</span>
53
- <span> <span>//3、创建ps</span></span>
54
- <span> <span>ps</span><span>=</span><span>ct</span>.<span>prepareStatement</span>(<span>sql</span>);</span>
55
- <span> <span>rs</span><span>=</span><span>ps</span>.<span>executeQuery</span>();</span>
56
- <span> } <span>catch</span> (<span>Exception</span> <span>e</span>) {</span>
57
- <span> <span>e</span>.<span>printStackTrace</span>();</span>
58
- <span> }<span>finally</span>{</span>
59
- <span> <span>//关闭资源???</span></span>
60
- <span> }</span>
61
- <span> <span>return</span> <span>rs</span>;</span>
62
- <span> }</span>
63
- <span> </span>
64
- <span> <span>//对数据库的查询操作</span></span>
65
- <span> <span>public</span> <span>ResultSet</span> <span>queryExectue</span>(<span>String</span> <span>sql</span>,<span>String</span> []<span>paras</span>){</span>
66
- <span> <span>try</span> {</span>
67
- <span> <span>//3、创建ps</span></span>
68
- <span> <span>ps</span><span>=</span><span>ct</span>.<span>prepareStatement</span>(<span>sql</span>);</span>
69
- <span> <span>//给ps的问号赋值</span></span>
70
- <span> <span>for</span>(<span>int</span> <span>i</span><span>=</span><span>0</span>;<span>i</span><span><</span><span>paras</span>.<span>length</span>;<span>i</span><span>++</span>){</span>
71
- <span> <span>ps</span>.<span>setString</span>(<span>i</span><span>+</span><span>1</span>, <span>paras</span>[<span>i</span>]);</span>
72
- <span> }</span>
73
- <span> </span>
74
- <span> <span>rs</span><span>=</span><span>ps</span>.<span>executeQuery</span>();</span>
75
- <span> } <span>catch</span> (<span>Exception</span> <span>e</span>) {</span>
76
- <span> <span>e</span>.<span>printStackTrace</span>();</span>
77
- <span> }<span>finally</span>{</span>
78
- <span> <span>//关闭资源???</span></span>
79
- <span> }</span>
80
- <span> <span>return</span> <span>rs</span>;</span>
81
- <span> }</span>
82
- <span> </span>
83
- <span> <span>//把对数据库的增、删、改合在一起</span></span>
84
- <span> <span>public</span> <span>boolean</span> <span>updExecute</span>(<span>String</span> <span>sql</span>,<span>String</span> []<span>paras</span>){</span>
85
- <span> <span>boolean</span> <span>b</span><span>=</span><span>true</span>;</span>
86
- <span> <span>try</span> {</span>
87
- <span> <span>//3、创建ps</span></span>
88
- <span> <span>ps</span><span>=</span><span>ct</span>.<span>prepareStatement</span>(<span>sql</span>);</span>
89
- <span> <span>//给ps的问号赋值</span></span>
90
- <span> <span>for</span>(<span>int</span> <span>i</span><span>=</span><span>0</span>;<span>i</span><span><</span><span>paras</span>.<span>length</span>;<span>i</span><span>++</span>){</span>
91
- <span> <span>ps</span>.<span>setString</span>(<span>i</span><span>+</span><span>1</span>, <span>paras</span>[<span>i</span>]);</span>
92
- <span> }</span>
93
- <span> </span>
94
- <span> <span>//4、执行操作</span></span>
95
- <span> <span>if</span>(<span>ps</span>.<span>executeUpdate</span>()<span>!=</span><span>1</span>){</span>
96
- <span> <span>b</span><span>=</span><span>false</span>;</span>
97
- <span> }</span>
98
- <span> } <span>catch</span> (<span>Exception</span> <span>e</span>) {</span>
99
- <span> <span>b</span><span>=</span><span>false</span>;</span>
100
- <span> <span>JOptionPane</span>.<span>showMessageDialog</span>(<span>null</span>, <span>"数据源错误或数据库用户名、密码错误"</span>, <span>"数据库连接错误提示"</span>, <span>JOptionPane</span>.<span>ERROR_MESSAGE</span>);</span>
101
- <span> <span>e</span>.<span>printStackTrace</span>();</span>
102
- <span> }<span>finally</span>{</span>
103
- <span> <span>this</span>.<span>close</span>();</span>
104
- <span> }</span>
105
- <span> <span>return</span> <span>b</span>;</span>
106
- <span> }</span>
- <span>}</span>
*******************************************************************************
[StuAddDialog.java]源码
104 12
- <span><span>package</span> <span>com</span>.<span>student3</span>;</span>
3
- <span> </span>
4
- <span><span>import</span> <span>java</span>.<span>awt</span>.<span>BorderLayout</span>;</span>
5
- <span><span>import</span> <span>java</span>.<span>awt</span>.<span>Frame</span>;</span>
6
- <span><span>import</span> <span>java</span>.<span>awt</span>.<span>GridLayout</span>;</span>
7
- <span><span>import</span> <span>java</span>.<span>awt</span>.<span>event</span>.<span>ActionEvent</span>;</span>
8
- <span><span>import</span> <span>java</span>.<span>awt</span>.<span>event</span>.<span>ActionListener</span>;</span>
9
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>Connection</span>;</span>
10
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>DriverManager</span>;</span>
11
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>PreparedStatement</span>;</span>
12
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>ResultSet</span>;</span>
13
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>SQLException</span>;</span>
14
- <span><span>import</span> <span>java</span>.<span>sql</span>.<span>Statement</span>;</span>
15
- <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JButton</span>;</span>
16
- <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JDialog</span>;</span>
17
- <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JLabel</span>;</span>
18
- <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JOptionPane</span>;</span>
19
- <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JPanel</span>;</span>
20
- <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JTextField</span>;</span>
21
- <span> </span>
22
- <span><span>public</span> <span>class</span> <span>StuAddDialog</span> <span>extends</span> <span>JDialog</span> <span>implements</span> <span>ActionListener</span>{</span>
23
- <span> <span>//定义我需要的swing组件</span></span>
24
- <span> <span>JLabel</span> <span>jl1</span>,<span>jl2</span>,<span>jl3</span>,<span>jl4</span>,<span>jl5</span>,<span>jl6</span>;</span>
25
- <span> <span>JButton</span> <span>jb1</span>,<span>jb2</span>;</span>
26
- <span> <span>JTextField</span> <span>jtf1</span>,<span>jtf2</span>,<span>jtf3</span>,<span>jtf4</span>,<span>jtf5</span>,<span>jtf6</span>;</span>
27
- <span> <span>JPanel</span> <span>jp1</span>,<span>jp2</span>,<span>jp3</span>;</span>
28
- <span> </span>
29
- <span> <span>//owner它的父窗口;title窗口名;model指定是模态窗口,还是非模态</span></span>
30
- <span> <span>public</span> <span>StuAddDialog</span>(<span>Frame</span> <span>owner</span>,<span>String</span> <span>title</span>,<span>boolean</span> <span>modal</span>){</span>
31
- <span> <span>super</span>(<span>owner</span>,<span>title</span>,<span>modal</span>);<span>//调用父类构造方法,达到模式对话框效果</span></span>
32
- <span> <span>jl1</span><span>=</span><span>new</span> <span>JLabel</span>(<span>"学号"</span>);</span>
33
- <span> <span>jl2</span><span>=</span><span>new</span> <span>JLabel</span>(<span>"名字"</span>);</span>
34
- <span> <span>jl3</span><span>=</span><span>new</span> <span>JLabel</span>(<span>"性别"</span>);</span>
35
- <span> <span>jl4</span><span>=</span><span>new</span> <span>JLabel</span>(<span>"年龄"</span>);</span>
36
- <span> <span>jl5</span><span>=</span><span>new</span> <span>JLabel</span>(<span>"籍贯"</span>);</span>
37
- <span> <span>jl6</span><span>=</span><span>new</span> <span>JLabel</span>(<span>"系别"</span>);</span>
38
- <span> </span>
39
- <span> <span>jtf1</span><span>=</span><span>new</span> <span>JTextField</span>();</span>
40
- <span> <span>jtf2</span><span>=</span><span>new</span> <span>JTextField</span>();</span>
41
- <span> <span>jtf3</span><span>=</span><span>new</span> <span>JTextField</span>();</span>
42
- <span> <span>jtf4</span><span>=</span><span>new</span> <span>JTextField</span>();</span>
43
- <span> <span>jtf5</span><span>=</span><span>new</span> <span>JTextField</span>();</span>
44
- <span> <span>jtf6</span><span>=</span><span>new</span> <span>JTextField</span>();</span>
45
- <span> </span>
46
- <span> <span>jb1</span><span>=</span><span>new</span> <span>JButton</span>(<span>"添加"</span>);</span>
47
- <span> <span>jb2</span><span>=</span><span>new</span> <span>JButton</span>(<span>"取消"</span>);</span>
48
- <span> </span>
49
- <span> <span>jp1</span><span>=</span><span>new</span> <span>JPanel</span>();</span>
50
- <span> <span>jp2</span><span>=</span><span>new</span> <span>JPanel</span>();</span>
51
- <span> <span>jp3</span><span>=</span><span>new</span> <span>JPanel</span>();</span>
52
- <span> </span>
53
- <span> <span>//设置布局</span></span>
54
- <span> <span>jp1</span>.<span>setLayout</span>(<span>new</span> <span>GridLayout</span>(<span>6</span>,<span>1</span>));</span>
55
- <span> <span>jp2</span>.<span>setLayout</span>(<span>new</span> <span>GridLayout</span>(<span>6</span>,<span>1</span>));</span>
56
- <span> </span>
57
- <span> <span>//添加组件</span></span>
58
- <span> <span>jp1</span>.<span>add</span>(<span>jl1</span>);</span>
59
- <span> <span>jp1</span>.<span>add</span>(<span>jl2</span>);</span>
60
- <span> <span>jp1</span>.<span>add</span>(<span>jl3</span>);</span>
61
- <span> <span>jp1</span>.<span>add</span>(<span>jl4</span>);</span>
62
- <span> <span>jp1</span>.<span>add</span>(<span>jl5</span>);</span>
63
- <span> <span>jp1</span>.<span>add</span>(<span>jl6</span>);</span>
64
- <span> </span>
65
- <span> <span>jp2</span>.<span>add</span>(<span>jtf1</span>);</span>
66
- <span> <span>jp2</span>.<span>add</span>(<span>jtf2</span>);</span>
67
- <span> <span>jp2</span>.<span>add</span>(<span>jtf3</span>);</span>
68
- <span> <span>jp2</span>.<span>add</span>(<span>jtf4</span>);</span>
69
- <span> <span>jp2</span>.<span>add</span>(<span>jtf5</span>);</span>
70
- <span> <span>jp2</span>.<span>add</span>(<span>jtf6</span>);</span>
71
- <span> </span>
72
- <span> <span>jp3</span>.<span>add</span>(<span>jb1</span>);</span>
73
- <span> <span>jp3</span>.<span>add</span>(<span>jb2</span>);</span>
74
- <span> </span>
75
- <span> <span>this</span>.<span>add</span>(<span>jp1</span>,<span>BorderLayout</span>.<span>WEST</span>);</span>
76
- <span> <span>this</span>.<span>add</span>(<span>jp2</span>,<span>BorderLayout</span>.<span>CENTER</span>);</span>
77
- <span> <span>this</span>.<span>add</span>(<span>jp3</span>,<span>BorderLayout</span>.<span>SOUTH</span>);</span>
78
- <span> <span>jb1</span>.<span>addActionListener</span>(<span>this</span>);</span>
79
- <span> <span>jb2</span>.<span>addActionListener</span>(<span>this</span>);</span>
80
- <span> </span>
81
- <span> <span>//展现</span></span>
82
- <span> <span>this</span>.<span>setSize</span>(<span>300</span>, <span>250</span>);</span>
- <span> </span>