当前位置:Gxlcms > 数据库问题 > JAVA入门到精通-第73讲-学生管理系统5-dao.sqlhelper

JAVA入门到精通-第73讲-学生管理系统5-dao.sqlhelper

时间:2021-07-01 10:21:17 帮助过:16人阅读

-每一层的功能不一样;
---------------------------------------------------------------把对数据库的操作放在SqlHelper类:技术分享图片
-传sql,传数组-把关闭的代码单独拿出来,写成一个函数;技术分享图片

技术分享图片

技术分享图片
-查询数据库的操作public ResultSet queryExectue(String sql)技术分享图片
技术分享图片
技术分享图片
分层的好处:修改某一模块,不影响其他功能模块
-SqlHelper更新技术分享图片
单态的:始终只有一个连接技术分享图片
-查询技术分享图片查询过后,资源没有关闭
技术分享图片
技术分享图片
技术分享图片
技术分享图片select *  from  stu  where 1=? ,用?没有问号,注入比较麻烦技术分享图片让他们都统一起来,又不想多写一个函数
不需要注入参数public ResultSet queryExecute(String sql)技术分享图片
技术分享图片把数据更新一遍
技术分享图片

技术分享图片

技术分享图片
-SqlHelper技术分享图片
技术分享图片
========================================

[JTable_Test3.java]源码

168 1
  1. <span><span>/**</span></span>
2
  1. <span> <span>* 完成一个mini版本的学生管理系统(MODEL2-2模式)</span></span>
3
  1. <span> <span>* 1、查询任务</span></span>
4
  1. <span> <span>* 2、添加功能</span></span>
5
  1. <span> <span>*/</span></span>
6
  1. <span><span>package</span> <span>com</span>.<span>student3</span>;</span>
7
  1. <span> </span>
8
  1. <span><span>import</span> <span>java</span>.<span>awt</span>.<span>event</span>.<span>ActionEvent</span>;</span>
9
  1. <span><span>import</span> <span>java</span>.<span>awt</span>.<span>event</span>.<span>ActionListener</span>;</span>
10
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>Connection</span>;</span>
11
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>DriverManager</span>;</span>
12
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>PreparedStatement</span>;</span>
13
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>ResultSet</span>;</span>
14
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>SQLException</span>;</span>
15
  1. <span><span>import</span> <span>java</span>.<span>util</span>.<span>Vector</span>;</span>
16
  1. <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>*</span>;</span>
17
  1. <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>table</span>.<span>AbstractTableModel</span>;</span>
18
  1. <span> </span>
19
  1. <span><span>public</span> <span>class</span> <span>JTable_Test3</span> <span>extends</span> <span>JFrame</span> <span>implements</span> <span>ActionListener</span>{</span>
20
  1. <span>    <span>//定义组件</span></span>
21
  1. <span>    <span>JPanel</span> <span>jp1</span>,<span>jp2</span>;</span>
22
  1. <span>    <span>JLabel</span> <span>jl1</span>;</span>
23
  1. <span>    <span>JButton</span> <span>jb1</span>,<span>jb2</span>,<span>jb3</span>,<span>jb4</span>;</span>
24
  1. <span>    <span>JTable</span> <span>jt</span>;</span>
25
  1. <span>    <span>JScrollPane</span> <span>jsp</span>;</span>
26
  1. <span>    <span>JTextField</span> <span>jtf</span>;</span>
27
  1. <span>    <span>StuModel</span> <span>sm</span>;</span>
28
  1. <span>   </span>
29
  1. <span>    <span>public</span> <span>static</span> <span>void</span> <span>main</span>(<span>String</span>[] <span>args</span>) {</span>
30
  1. <span>        <span>try</span> {</span>
31
  1. <span>            <span>// 将当前窗体外观设置为所在操作系统的外观</span></span>
32
  1. <span>            <span>UIManager</span>.<span>setLookAndFeel</span>(<span>UIManager</span>.<span>getSystemLookAndFeelClassName</span>());</span>
33
  1. <span>       } <span>catch</span> (<span>ClassNotFoundException</span> <span>e</span>) {</span>
34
  1. <span>            <span>e</span>.<span>printStackTrace</span>();</span>
35
  1. <span>       } <span>catch</span> (<span>InstantiationException</span> <span>e</span>) {</span>
36
  1. <span>            <span>e</span>.<span>printStackTrace</span>();</span>
37
  1. <span>       } <span>catch</span> (<span>IllegalAccessException</span> <span>e</span>) {</span>
38
  1. <span>            <span>e</span>.<span>printStackTrace</span>();</span>
39
  1. <span>       } <span>catch</span> (<span>UnsupportedLookAndFeelException</span> <span>e</span>) {</span>
40
  1. <span>            <span>e</span>.<span>printStackTrace</span>();</span>
41
  1. <span>       }</span>
42
  1. <span>        <span>new</span> <span>JTable_Test3</span>();</span>
43
  1. <span>   }</span>
44
  1. <span>   </span>
45
  1. <span>    <span>//构造函数</span></span>
46
  1. <span>    <span>public</span> <span>JTable_Test3</span>(){</span>
47
  1. <span>        <span>jp1</span><span>=</span><span>new</span> <span>JPanel</span>();</span>
48
  1. <span>        <span>jtf</span><span>=</span><span>new</span> <span>JTextField</span>(<span>10</span>);</span>
49
  1. <span>        <span>jb1</span><span>=</span><span>new</span> <span>JButton</span>(<span>"查询"</span>);</span>
50
  1. <span>        <span>jb1</span>.<span>addActionListener</span>(<span>this</span>);</span>
51
  1. <span>        <span>jl1</span><span>=</span><span>new</span> <span>JLabel</span>(<span>"请输入名字"</span>);</span>
52
  1. <span>       </span>
53
  1. <span>        <span>//把各个空间加入列</span></span>
54
  1. <span>        <span>jp1</span>.<span>add</span>(<span>jl1</span>);</span>
55
  1. <span>        <span>jp1</span>.<span>add</span>(<span>jtf</span>);</span>
56
  1. <span>        <span>jp1</span>.<span>add</span>(<span>jb1</span>);</span>
57
  1. <span>       </span>
58
  1. <span>        <span>jp2</span><span>=</span><span>new</span> <span>JPanel</span>();</span>
59
  1. <span>        <span>jb2</span><span>=</span><span>new</span> <span>JButton</span>(<span>"添加"</span>);</span>
60
  1. <span>        <span>jb2</span>.<span>addActionListener</span>(<span>this</span>);</span>
61
  1. <span>        <span>jb3</span><span>=</span><span>new</span> <span>JButton</span>(<span>"修改"</span>);</span>
62
  1. <span>        <span>jb3</span>.<span>addActionListener</span>(<span>this</span>);</span>
63
  1. <span>        <span>jb4</span><span>=</span><span>new</span> <span>JButton</span>(<span>"删除"</span>);</span>
64
  1. <span>        <span>jb4</span>.<span>addActionListener</span>(<span>this</span>);</span>
65
  1. <span>        <span>//把各个按钮加入到jp2中</span></span>
66
  1. <span>        <span>jp2</span>.<span>add</span>(<span>jb2</span>);</span>
67
  1. <span>        <span>jp2</span>.<span>add</span>(<span>jb3</span>);</span>
68
  1. <span>        <span>jp2</span>.<span>add</span>(<span>jb4</span>);</span>
69
  1. <span>       </span>
70
  1. <span>        <span>//创建一个数据模型对象</span></span>
71
  1. <span>        <span>sm</span><span>=</span><span>new</span> <span>StuModel</span>();</span>
72
  1. <span>        <span>String</span> []<span>paras</span><span>=</span>{<span>"1"</span>};</span>
73
  1. <span>        <span>sm</span>.<span>queryStu</span>(<span>"select * from stu where 1=?"</span>, <span>paras</span>);</span>
74
  1. <span>       </span>
75
  1. <span>        <span>//初始化JTable</span></span>
76
  1. <span>        <span>jt</span><span>=</span><span>new</span> <span>JTable</span>(<span>sm</span>);</span>
77
  1. <span>       </span>
78
  1. <span>        <span>//初始化jsp JScrollPane</span></span>
79
  1. <span>        <span>jsp</span><span>=</span><span>new</span> <span>JScrollPane</span>(<span>jt</span>);</span>
80
  1. <span>       </span>
81
  1. <span>        <span>//把jsp放入到jframe</span></span>
82
  1. <span>        <span>this</span>.<span>add</span>(<span>jsp</span>);</span>
83
  1. <span>        <span>this</span>.<span>add</span>(<span>jp1</span>,<span>"North"</span>);</span>
84
  1. <span>        <span>this</span>.<span>add</span>(<span>jp2</span>,<span>"South"</span>);</span>
85
  1. <span>       </span>
86
  1. <span>        <span>this</span>.<span>setSize</span>(<span>400</span>, <span>300</span>);</span>
87
  1. <span>        <span>this</span>.<span>setDefaultCloseOperation</span>(<span>JFrame</span>.<span>EXIT_ON_CLOSE</span>);</span>
88
  1. <span>        <span>this</span>.<span>setVisible</span>(<span>true</span>);</span>
89
  1. <span>   }</span>
90
  1. <span> </span>
91
  1. <span>    <span>@Override</span></span>
92
  1. <span>    <span>public</span> <span>void</span> <span>actionPerformed</span>(<span>ActionEvent</span> <span>e</span>) {</span>
93
  1. <span>        <span>if</span>(<span>e</span>.<span>getSource</span>()<span>==</span><span>jb1</span>){</span>
94
  1. <span>            <span>//因为把对表的数据封装到StuModel中,我们就可以比较简单的完成查询</span></span>
95
  1. <span>            <span>String</span> <span>name</span><span>=</span><span>this</span>.<span>jtf</span>.<span>getText</span>();</span>
96
  1. <span>            <span>//写一个SQL语句</span></span>
97
  1. <span>            <span>String</span> <span>sql</span><span>=</span><span>"select * from stu where stuName=?"</span>;</span>
98
  1. <span>            <span>String</span> []<span>paras</span><span>=</span>{<span>name</span>};</span>
99
  1. <span>            <span>//构建新的数据模型类,并更新</span></span>
100
  1. <span>            <span>sm</span><span>=</span><span>new</span> <span>StuModel</span>();</span>
101
  1. <span>            <span>sm</span>.<span>queryStu</span>(<span>sql</span>, <span>paras</span>);</span>
102
  1. <span>            <span>//更新JTable</span></span>
103
  1. <span>            <span>jt</span>.<span>setModel</span>(<span>sm</span>);</span>
104
  1. <span>       }</span>
105
  1. <span>        <span>//用户点击添加时</span></span>
106
  1. <span>        <span>else</span> <span>if</span>(<span>e</span>.<span>getSource</span>()<span>==</span><span>jb2</span>){</span>
107
  1. <span>            <span>StuAddDialog</span> <span>sa</span><span>=</span><span>new</span> <span>StuAddDialog</span>(<span>this</span>, <span>"添加学生"</span>, <span>true</span>);</span>
108
  1. <span>            <span>//重新再获得新的数据模型</span></span>
109
  1. <span>            <span>//构建新的数据模型类,并更新</span></span>
110
  1. <span>            <span>sm</span><span>=</span><span>new</span> <span>StuModel</span>();</span>
111
  1. <span>            <span>String</span> []<span>paras2</span><span>=</span>{<span>"1"</span>};</span>
112
  1. <span>            <span>sm</span>.<span>queryStu</span>(<span>"select * from stu where 1=?"</span>, <span>paras2</span>);</span>
113
  1. <span>            <span>//更新JTable</span></span>
114
  1. <span>            <span>jt</span>.<span>setModel</span>(<span>sm</span>);</span>
115
  1. <span>       }</span>
116
  1. <span>        <span>//用户修改数据</span></span>
117
  1. <span>        <span>else</span> <span>if</span>(<span>e</span>.<span>getSource</span>()<span>==</span><span>jb3</span>){</span>
118
  1. <span>            <span>int</span> <span>rowNum</span><span>=</span><span>this</span>.<span>jt</span>.<span>getSelectedRow</span>();</span>
119
  1. <span>            <span>if</span>(<span>rowNum</span><span>==-</span><span>1</span>){</span>
120
  1. <span>                <span>//提示</span></span>
121
  1. <span>                <span>JOptionPane</span>.<span>showMessageDialog</span>(<span>this</span>, <span>"请选择一行"</span>, <span>"提示"</span>, <span>JOptionPane</span>.<span>INFORMATION_MESSAGE</span>);</span>
122
  1. <span>                <span>return</span>;</span>
123
  1. <span>           }</span>
124
  1. <span>           </span>
125
  1. <span>            <span>//显示修改对话框</span></span>
126
  1. <span>            <span>new</span> <span>StuUpdDialog</span>(<span>this</span>,<span>"修改学生信息"</span>,<span>true</span>,<span>sm</span>,<span>rowNum</span>);</span>
127
  1. <span>           </span>
128
  1. <span>            <span>//更新数据模型</span></span>
129
  1. <span>            <span>sm</span><span>=</span><span>new</span> <span>StuModel</span>();</span>
130
  1. <span>            <span>String</span> []<span>paras2</span><span>=</span>{<span>"1"</span>};</span>
131
  1. <span>            <span>sm</span>.<span>queryStu</span>(<span>"select * from stu where 1=?"</span>, <span>paras2</span>);</span>
132
  1. <span>            <span>//更新JTable</span></span>
133
  1. <span>            <span>jt</span>.<span>setModel</span>(<span>sm</span>);</span>
134
  1. <span>       }</span>
135
  1. <span>       </span>
136
  1. <span>        <span>//用户点击删除时,删除一条选中的数据</span></span>
137
  1. <span>        <span>else</span> <span>if</span>(<span>e</span>.<span>getSource</span>()<span>==</span><span>jb4</span>){</span>
138
  1. <span>            <span>//1、得到学生的ID号</span></span>
139
  1. <span>            <span>//getSelectedRow会返回用户点中的行</span></span>
140
  1. <span>            <span>//如果该用户一行都没有选择,就会返回-1</span></span>
141
  1. <span>            <span>int</span> <span>rowNum</span><span>=</span><span>this</span>.<span>jt</span>.<span>getSelectedRow</span>();</span>
142
  1. <span>            <span>if</span>(<span>rowNum</span><span>==-</span><span>1</span>){</span>
143
  1. <span>                <span>//提示</span></span>
144
  1. <span>                <span>JOptionPane</span>.<span>showMessageDialog</span>(<span>this</span>, <span>"请选择一行"</span>, <span>"提示"</span>, <span>JOptionPane</span>.<span>INFORMATION_MESSAGE</span>);</span>
145
  1. <span>                <span>return</span>;</span>
146
  1. <span>           }</span>
147
  1. <span>            <span>//得到学生编号</span></span>
148
  1. <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>
149
  1. <span>            <span>//创建一个sql语句</span></span>
150
  1. <span>            <span>String</span> <span>sql</span><span>=</span><span>"delete from stu where stuid=?"</span>;</span>
151
  1. <span>            <span>String</span> []<span>paras</span><span>=</span>{<span>stuId</span>};</span>
152
  1. <span>            <span>StuModel</span> <span>temp</span><span>=</span><span>new</span> <span>StuModel</span>();</span>
153
  1. <span>            <span>if</span>(<span>temp</span>.<span>updStu</span>(<span>sql</span>, <span>paras</span>)){</span>
154
  1. <span>                <span>JOptionPane</span>.<span>showMessageDialog</span>(<span>this</span>,<span>"删除数据成功"</span>,<span>"删除数据提示"</span>,<span>JOptionPane</span>.<span>INFORMATION_MESSAGE</span>);</span>
155
  1. <span>           }<span>else</span>{</span>
156
  1. <span>                <span>JOptionPane</span>.<span>showMessageDialog</span>(<span>this</span>,<span>"删除数据失败"</span>,<span>"删除数据提示"</span>,<span>JOptionPane</span>.<span>ERROR_MESSAGE</span>);</span>
157
  1. <span>           }</span>
158
  1. <span>           </span>
159
  1. <span>            <span>//更新数据模型</span></span>
160
  1. <span>            <span>sm</span><span>=</span><span>new</span> <span>StuModel</span>();</span>
161
  1. <span>            <span>String</span> []<span>paras2</span><span>=</span>{<span>"1"</span>};</span>
162
  1. <span>            <span>sm</span>.<span>queryStu</span>(<span>"select * from stu where 1=?"</span>, <span>paras2</span>);</span>
163
  1. <span>            <span>//更新JTable</span></span>
164
  1. <span>            <span>jt</span>.<span>setModel</span>(<span>sm</span>);</span>
165
  1. <span>       }</span>
166
  1. <span>   }</span>
167
  1. <span>}</span>
168
  1. <span> </span>

*******************************************************************************

[StuModel.java]源码

84 1
  1. <span><span>/**</span></span>
2
  1. <span> <span>* 这是一个stu表的模型</span></span>
3
  1. <span> <span>* 可以把对student表的各种操作封装到该模型中</span></span>
4
  1. <span> <span>*/</span></span>
5
  1. <span><span>package</span> <span>com</span>.<span>student3</span>;</span>
6
  1. <span> </span>
7
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>Connection</span>;</span>
8
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>DriverManager</span>;</span>
9
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>PreparedStatement</span>;</span>
10
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>ResultSet</span>;</span>
11
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>SQLException</span>;</span>
12
  1. <span><span>import</span> <span>java</span>.<span>util</span>.<span>Vector</span>;</span>
13
  1. <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JOptionPane</span>;</span>
14
  1. <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>table</span>.<span>AbstractTableModel</span>;</span>
15
  1. <span> </span>
16
  1. <span><span>public</span> <span>class</span> <span>StuModel</span> <span>extends</span> <span>AbstractTableModel</span>{</span>
17
  1. <span>    <span>//rowData用来存放行数据、columnNames存放列名</span></span>
18
  1. <span>    <span>Vector</span> <span>rowData</span>,<span>columnNames</span>;</span>
19
  1. <span>   </span>
20
  1. <span>    <span>//添加学生(增、删、改)</span></span>
21
  1. <span>    <span>public</span> <span>boolean</span> <span>updStu</span>(<span>String</span> <span>sql</span>,<span>String</span> []<span>paras</span>){</span>
22
  1. <span>        <span>//创建SqlHelper(如果程序并发性不考虑,可以把SqlHelper做成static)</span></span>
23
  1. <span>        <span>SqlHelper</span> <span>sqlHelper</span><span>=</span><span>new</span> <span>SqlHelper</span>();</span>
24
  1. <span>        <span>return</span> <span>sqlHelper</span>.<span>updExecute</span>(<span>sql</span>, <span>paras</span>);</span>
25
  1. <span>   }</span>
26
  1. <span>   </span>
27
  1. <span>    <span>//查询的本质就是用来初始化</span></span>
28
  1. <span>    <span>public</span> <span>void</span> <span>queryStu</span>(<span>String</span> <span>sql</span>,<span>String</span> []<span>paras</span>){</span>
29
  1. <span>        <span>SqlHelper</span> <span>sqlHelper</span><span>=</span><span>null</span>;</span>
30
  1. <span>        <span>//中间</span></span>
31
  1. <span>        <span>columnNames</span><span>=</span><span>new</span> <span>Vector</span><span><></span>();</span>
32
  1. <span>        <span>//设置列名</span></span>
33
  1. <span>        <span>columnNames</span>.<span>add</span>(<span>"学号"</span>);</span>
34
  1. <span>        <span>columnNames</span>.<span>add</span>(<span>"名字"</span>);</span>
35
  1. <span>        <span>columnNames</span>.<span>add</span>(<span>"性别"</span>);</span>
36
  1. <span>        <span>columnNames</span>.<span>add</span>(<span>"年龄"</span>);</span>
37
  1. <span>        <span>columnNames</span>.<span>add</span>(<span>"籍贯"</span>);</span>
38
  1. <span>        <span>columnNames</span>.<span>add</span>(<span>"系别"</span>);</span>
39
  1. <span>       </span>
40
  1. <span>        <span>rowData</span><span>=</span><span>new</span> <span>Vector</span><span><></span>();</span>
41
  1. <span>        <span>//rowData可以存放多行</span></span>
42
  1. <span>        <span>try</span> {</span>
43
  1. <span>            <span>sqlHelper</span><span>=</span><span>new</span> <span>SqlHelper</span>();</span>
44
  1. <span>            <span>ResultSet</span> <span>rs</span><span>=</span><span>sqlHelper</span>.<span>queryExectue</span>(<span>sql</span>, <span>paras</span>);</span>
45
  1. <span>           </span>
46
  1. <span>            <span>while</span>(<span>rs</span>.<span>next</span>()){</span>
47
  1. <span>                <span>Vector</span> <span>hang</span><span>=</span><span>new</span> <span>Vector</span>();</span>
48
  1. <span>                <span>hang</span>.<span>add</span>(<span>rs</span>.<span>getString</span>(<span>1</span>));</span>
49
  1. <span>                <span>hang</span>.<span>add</span>(<span>rs</span>.<span>getString</span>(<span>2</span>));</span>
50
  1. <span>                <span>hang</span>.<span>add</span>(<span>rs</span>.<span>getString</span>(<span>3</span>));</span>
51
  1. <span>                <span>hang</span>.<span>add</span>(<span>rs</span>.<span>getInt</span>(<span>4</span>));</span>
52
  1. <span>                <span>hang</span>.<span>add</span>(<span>rs</span>.<span>getString</span>(<span>5</span>));</span>
53
  1. <span>                <span>hang</span>.<span>add</span>(<span>rs</span>.<span>getString</span>(<span>6</span>));</span>
54
  1. <span>                <span>//加入rowData</span></span>
55
  1. <span>                <span>rowData</span>.<span>add</span>(<span>hang</span>);</span>
56
  1. <span>           }</span>
57
  1. <span>       } <span>catch</span> (<span>Exception</span> <span>e</span>) {</span>
58
  1. <span>            <span>e</span>.<span>printStackTrace</span>();</span>
59
  1. <span>       }<span>finally</span>{</span>
60
  1. <span>            <span>sqlHelper</span>.<span>close</span>();</span>
61
  1. <span>       }</span>
62
  1. <span>   }</span>
63
  1. <span>   </span>
64
  1. <span>    <span>//得到共有多少列</span></span>
65
  1. <span>    <span>public</span> <span>int</span> <span>getColumnCount</span>() {</span>
66
  1. <span>        <span>return</span> <span>this</span>.<span>columnNames</span>.<span>size</span>();</span>
67
  1. <span>   }</span>
68
  1. <span>   </span>
69
  1. <span>    <span>@Override</span></span>
70
  1. <span>    <span>public</span> <span>String</span> <span>getColumnName</span>(<span>int</span> <span>column</span>) {</span>
71
  1. <span>        <span>return</span> (<span>String</span>)<span>this</span>.<span>columnNames</span>.<span>get</span>(<span>column</span>);</span>
72
  1. <span>   }</span>
73
  1. <span> </span>
74
  1. <span>    <span>//得到共有多少行</span></span>
75
  1. <span>    <span>public</span> <span>int</span> <span>getRowCount</span>() {</span>
76
  1. <span>        <span>return</span> <span>this</span>.<span>rowData</span>.<span>size</span>();</span>
77
  1. <span>   }</span>
78
  1. <span> </span>
79
  1. <span>    <span>//得到某行某列的数据</span></span>
80
  1. <span>    <span>public</span> <span>Object</span> <span>getValueAt</span>(<span>int</span> <span>rowIndex</span>, <span>int</span> <span>columnIndex</span>) {</span>
81
  1. <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>
82
  1. <span>   }</span>
83
  1. <span>}</span>
84
  1. <span> </span>

*******************************************************************************

[SqlHelper.java]源码

106 1
  1. <span><span>/**</span></span>
2
  1. <span> <span>* 这是一个对数据库进行操作的类(SqlHelper)</span></span>
3
  1. <span> <span>*/</span></span>
4
  1. <span><span>package</span> <span>com</span>.<span>student3</span>;</span>
5
  1. <span> </span>
6
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>Connection</span>;</span>
7
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>DriverManager</span>;</span>
8
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>PreparedStatement</span>;</span>
9
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>ResultSet</span>;</span>
10
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>SQLException</span>;</span>
11
  1. <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JOptionPane</span>;</span>
12
  1. <span> </span>
13
  1. <span><span>public</span> <span>class</span> <span>SqlHelper</span> {</span>
14
  1. <span>    <span>//定义操作数据库需要的组件</span></span>
15
  1. <span>    <span>PreparedStatement</span> <span>ps</span><span>=</span><span>null</span>;</span>
16
  1. <span>    <span>Connection</span> <span>ct</span><span>=</span><span>null</span>;</span>
17
  1. <span>    <span>ResultSet</span> <span>rs</span><span>=</span><span>null</span>; </span>
18
  1. <span>    <span>String</span> <span>sqlDriver</span><span>=</span><span>"com.microsoft.sqlserver.jdbc.SQLServerDriver"</span>;</span>
19
  1. <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>
20
  1. <span>   </span>
21
  1. <span>    <span>public</span> <span>SqlHelper</span>(){</span>
22
  1. <span>        <span>try</span> {</span>
23
  1. <span>            <span>//1、加载驱动</span></span>
24
  1. <span>            <span>Class</span>.<span>forName</span>(<span>sqlDriver</span>);</span>
25
  1. <span>            <span>//2、得到连接</span></span>
26
  1. <span>            <span>ct</span><span>=</span><span>DriverManager</span>.<span>getConnection</span>(<span>url</span>);</span>
27
  1. <span>       } <span>catch</span> (<span>Exception</span> <span>e</span>) {</span>
28
  1. <span>            <span>e</span>.<span>printStackTrace</span>();</span>
29
  1. <span>       }</span>
30
  1. <span>   }</span>
31
  1. <span>   </span>
32
  1. <span>    <span>//关闭数据库资源</span></span>
33
  1. <span>    <span>public</span> <span>void</span> <span>close</span>(){</span>
34
  1. <span>        <span>try</span> {</span>
35
  1. <span>            <span>if</span>(<span>rs</span><span>!=</span><span>null</span>){</span>
36
  1. <span>                <span>rs</span>.<span>close</span>();</span>
37
  1. <span>           }</span>
38
  1. <span>            <span>if</span>(<span>ps</span><span>!=</span><span>null</span>){</span>
39
  1. <span>                <span>ps</span>.<span>close</span>();</span>
40
  1. <span>           }</span>
41
  1. <span>            <span>if</span>(<span>ct</span><span>!=</span><span>null</span>){</span>
42
  1. <span>                <span>ct</span>.<span>close</span>();</span>
43
  1. <span>           }</span>
44
  1. <span>       } <span>catch</span> (<span>SQLException</span> <span>e1</span>) {</span>
45
  1. <span>            <span>e1</span>.<span>printStackTrace</span>();</span>
46
  1. <span>       }</span>
47
  1. <span>   }</span>
48
  1. <span>   </span>
49
  1. <span>    <span>//写一个不需要注入的方法(由于数据量少,所以写了一个这个方法。一般都带有条件的注入)</span></span>
50
  1. <span>    <span>public</span> <span>ResultSet</span> <span>queryExectue</span>(<span>String</span> <span>sql</span>){</span>
51
  1. <span>        <span>try</span> {</span>
52
  1. <span>            <span>//3、创建ps</span></span>
53
  1. <span>            <span>ps</span><span>=</span><span>ct</span>.<span>prepareStatement</span>(<span>sql</span>);</span>
54
  1. <span>            <span>rs</span><span>=</span><span>ps</span>.<span>executeQuery</span>();</span>
55
  1. <span>       } <span>catch</span> (<span>Exception</span> <span>e</span>) {</span>
56
  1. <span>            <span>e</span>.<span>printStackTrace</span>();</span>
57
  1. <span>       }<span>finally</span>{</span>
58
  1. <span>            <span>//关闭资源???</span></span>
59
  1. <span>       }</span>
60
  1. <span>        <span>return</span> <span>rs</span>;</span>
61
  1. <span>   }</span>
62
  1. <span>   </span>
63
  1. <span>    <span>//对数据库的查询操作</span></span>
64
  1. <span>    <span>public</span> <span>ResultSet</span> <span>queryExectue</span>(<span>String</span> <span>sql</span>,<span>String</span> []<span>paras</span>){</span>
65
  1. <span>        <span>try</span> {</span>
66
  1. <span>            <span>//3、创建ps</span></span>
67
  1. <span>            <span>ps</span><span>=</span><span>ct</span>.<span>prepareStatement</span>(<span>sql</span>);</span>
68
  1. <span>            <span>//给ps的问号赋值</span></span>
69
  1. <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>
70
  1. <span>                <span>ps</span>.<span>setString</span>(<span>i</span><span>+</span><span>1</span>, <span>paras</span>[<span>i</span>]);</span>
71
  1. <span>           }</span>
72
  1. <span>           </span>
73
  1. <span>            <span>rs</span><span>=</span><span>ps</span>.<span>executeQuery</span>();</span>
74
  1. <span>       } <span>catch</span> (<span>Exception</span> <span>e</span>) {</span>
75
  1. <span>            <span>e</span>.<span>printStackTrace</span>();</span>
76
  1. <span>       }<span>finally</span>{</span>
77
  1. <span>            <span>//关闭资源???</span></span>
78
  1. <span>       }</span>
79
  1. <span>        <span>return</span> <span>rs</span>;</span>
80
  1. <span>   }</span>
81
  1. <span>   </span>
82
  1. <span>    <span>//把对数据库的增、删、改合在一起</span></span>
83
  1. <span>    <span>public</span> <span>boolean</span> <span>updExecute</span>(<span>String</span> <span>sql</span>,<span>String</span> []<span>paras</span>){</span>
84
  1. <span>        <span>boolean</span> <span>b</span><span>=</span><span>true</span>;</span>
85
  1. <span>        <span>try</span> {</span>
86
  1. <span>            <span>//3、创建ps</span></span>
87
  1. <span>            <span>ps</span><span>=</span><span>ct</span>.<span>prepareStatement</span>(<span>sql</span>);</span>
88
  1. <span>            <span>//给ps的问号赋值</span></span>
89
  1. <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>
90
  1. <span>                <span>ps</span>.<span>setString</span>(<span>i</span><span>+</span><span>1</span>, <span>paras</span>[<span>i</span>]);</span>
91
  1. <span>           }</span>
92
  1. <span>           </span>
93
  1. <span>            <span>//4、执行操作</span></span>
94
  1. <span>            <span>if</span>(<span>ps</span>.<span>executeUpdate</span>()<span>!=</span><span>1</span>){</span>
95
  1. <span>                <span>b</span><span>=</span><span>false</span>;</span>
96
  1. <span>           }</span>
97
  1. <span>       } <span>catch</span> (<span>Exception</span> <span>e</span>) {</span>
98
  1. <span>            <span>b</span><span>=</span><span>false</span>;</span>
99
  1. <span>            <span>JOptionPane</span>.<span>showMessageDialog</span>(<span>null</span>, <span>"数据源错误或数据库用户名、密码错误"</span>, <span>"数据库连接错误提示"</span>, <span>JOptionPane</span>.<span>ERROR_MESSAGE</span>);</span>
100
  1. <span>            <span>e</span>.<span>printStackTrace</span>();</span>
101
  1. <span>       }<span>finally</span>{</span>
102
  1. <span>            <span>this</span>.<span>close</span>();</span>
103
  1. <span>       }</span>
104
  1. <span>        <span>return</span> <span>b</span>;</span>
105
  1. <span>   }</span>
106
  1. <span>}</span>

*******************************************************************************

[StuAddDialog.java]源码

104 1
  1. <span><span>package</span> <span>com</span>.<span>student3</span>;</span>
2
  1. <span> </span>
3
  1. <span><span>import</span> <span>java</span>.<span>awt</span>.<span>BorderLayout</span>;</span>
4
  1. <span><span>import</span> <span>java</span>.<span>awt</span>.<span>Frame</span>;</span>
5
  1. <span><span>import</span> <span>java</span>.<span>awt</span>.<span>GridLayout</span>;</span>
6
  1. <span><span>import</span> <span>java</span>.<span>awt</span>.<span>event</span>.<span>ActionEvent</span>;</span>
7
  1. <span><span>import</span> <span>java</span>.<span>awt</span>.<span>event</span>.<span>ActionListener</span>;</span>
8
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>Connection</span>;</span>
9
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>DriverManager</span>;</span>
10
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>PreparedStatement</span>;</span>
11
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>ResultSet</span>;</span>
12
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>SQLException</span>;</span>
13
  1. <span><span>import</span> <span>java</span>.<span>sql</span>.<span>Statement</span>;</span>
14
  1. <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JButton</span>;</span>
15
  1. <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JDialog</span>;</span>
16
  1. <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JLabel</span>;</span>
17
  1. <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JOptionPane</span>;</span>
18
  1. <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JPanel</span>;</span>
19
  1. <span><span>import</span> <span>javax</span>.<span>swing</span>.<span>JTextField</span>;</span>
20
  1. <span> </span>
21
  1. <span><span>public</span> <span>class</span> <span>StuAddDialog</span> <span>extends</span> <span>JDialog</span> <span>implements</span> <span>ActionListener</span>{</span>
22
  1. <span>    <span>//定义我需要的swing组件</span></span>
23
  1. <span>    <span>JLabel</span> <span>jl1</span>,<span>jl2</span>,<span>jl3</span>,<span>jl4</span>,<span>jl5</span>,<span>jl6</span>;</span>
24
  1. <span>    <span>JButton</span> <span>jb1</span>,<span>jb2</span>;</span>
25
  1. <span>    <span>JTextField</span> <span>jtf1</span>,<span>jtf2</span>,<span>jtf3</span>,<span>jtf4</span>,<span>jtf5</span>,<span>jtf6</span>;</span>
26
  1. <span>    <span>JPanel</span> <span>jp1</span>,<span>jp2</span>,<span>jp3</span>;</span>
27
  1. <span>   </span>
28
  1. <span>    <span>//owner它的父窗口;title窗口名;model指定是模态窗口,还是非模态</span></span>
29
  1. <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>
30
  1. <span>        <span>super</span>(<span>owner</span>,<span>title</span>,<span>modal</span>);<span>//调用父类构造方法,达到模式对话框效果</span></span>
31
  1. <span>        <span>jl1</span><span>=</span><span>new</span> <span>JLabel</span>(<span>"学号"</span>);</span>
32
  1. <span>        <span>jl2</span><span>=</span><span>new</span> <span>JLabel</span>(<span>"名字"</span>);</span>
33
  1. <span>        <span>jl3</span><span>=</span><span>new</span> <span>JLabel</span>(<span>"性别"</span>);</span>
34
  1. <span>        <span>jl4</span><span>=</span><span>new</span> <span>JLabel</span>(<span>"年龄"</span>);</span>
35
  1. <span>        <span>jl5</span><span>=</span><span>new</span> <span>JLabel</span>(<span>"籍贯"</span>);</span>
36
  1. <span>        <span>jl6</span><span>=</span><span>new</span> <span>JLabel</span>(<span>"系别"</span>);</span>
37
  1. <span>       </span>
38
  1. <span>        <span>jtf1</span><span>=</span><span>new</span> <span>JTextField</span>();</span>
39
  1. <span>        <span>jtf2</span><span>=</span><span>new</span> <span>JTextField</span>();</span>
40
  1. <span>        <span>jtf3</span><span>=</span><span>new</span> <span>JTextField</span>();</span>
41
  1. <span>        <span>jtf4</span><span>=</span><span>new</span> <span>JTextField</span>();</span>
42
  1. <span>        <span>jtf5</span><span>=</span><span>new</span> <span>JTextField</span>();</span>
43
  1. <span>        <span>jtf6</span><span>=</span><span>new</span> <span>JTextField</span>();</span>
44
  1. <span>       </span>
45
  1. <span>        <span>jb1</span><span>=</span><span>new</span> <span>JButton</span>(<span>"添加"</span>);</span>
46
  1. <span>        <span>jb2</span><span>=</span><span>new</span> <span>JButton</span>(<span>"取消"</span>);</span>
47
  1. <span>       </span>
48
  1. <span>        <span>jp1</span><span>=</span><span>new</span> <span>JPanel</span>();</span>
49
  1. <span>        <span>jp2</span><span>=</span><span>new</span> <span>JPanel</span>();</span>
50
  1. <span>        <span>jp3</span><span>=</span><span>new</span> <span>JPanel</span>();</span>
51
  1. <span>       </span>
52
  1. <span>        <span>//设置布局</span></span>
53
  1. <span>        <span>jp1</span>.<span>setLayout</span>(<span>new</span> <span>GridLayout</span>(<span>6</span>,<span>1</span>));</span>
54
  1. <span>        <span>jp2</span>.<span>setLayout</span>(<span>new</span> <span>GridLayout</span>(<span>6</span>,<span>1</span>));</span>
55
  1. <span>       </span>
56
  1. <span>        <span>//添加组件</span></span>
57
  1. <span>        <span>jp1</span>.<span>add</span>(<span>jl1</span>);</span>
58
  1. <span>        <span>jp1</span>.<span>add</span>(<span>jl2</span>);</span>
59
  1. <span>        <span>jp1</span>.<span>add</span>(<span>jl3</span>);</span>
60
  1. <span>        <span>jp1</span>.<span>add</span>(<span>jl4</span>);</span>
61
  1. <span>        <span>jp1</span>.<span>add</span>(<span>jl5</span>);</span>
62
  1. <span>        <span>jp1</span>.<span>add</span>(<span>jl6</span>);</span>
63
  1. <span>       </span>
64
  1. <span>        <span>jp2</span>.<span>add</span>(<span>jtf1</span>);</span>
65
  1. <span>        <span>jp2</span>.<span>add</span>(<span>jtf2</span>);</span>
66
  1. <span>        <span>jp2</span>.<span>add</span>(<span>jtf3</span>);</span>
67
  1. <span>        <span>jp2</span>.<span>add</span>(<span>jtf4</span>);</span>
68
  1. <span>        <span>jp2</span>.<span>add</span>(<span>jtf5</span>);</span>
69
  1. <span>        <span>jp2</span>.<span>add</span>(<span>jtf6</span>);</span>
70
  1. <span>       </span>
71
  1. <span>        <span>jp3</span>.<span>add</span>(<span>jb1</span>);</span>
72
  1. <span>        <span>jp3</span>.<span>add</span>(<span>jb2</span>);</span>
73
  1. <span>       </span>
74
  1. <span>        <span>this</span>.<span>add</span>(<span>jp1</span>,<span>BorderLayout</span>.<span>WEST</span>);</span>
75
  1. <span>        <span>this</span>.<span>add</span>(<span>jp2</span>,<span>BorderLayout</span>.<span>CENTER</span>);</span>
76
  1. <span>        <span>this</span>.<span>add</span>(<span>jp3</span>,<span>BorderLayout</span>.<span>SOUTH</span>);</span>
77
  1. <span>        <span>jb1</span>.<span>addActionListener</span>(<span>this</span>);</span>
78
  1. <span>        <span>jb2</span>.<span>addActionListener</span>(<span>this</span>);</span>
79
  1. <span>       </span>
80
  1. <span>        <span>//展现</span></span>
81
  1. <span>        <span>this</span>.<span>setSize</span>(<span>300</span>, <span>250</span>);</span>
82
  1. <span> </span>

人气教程排行