在实际的开发应用中,通常出现某一个对象未能关闭的情况,为了防止这种情况的发生,可以在有关对数据库操作的Java类文件中增加自动回收函数,在JVM自动地回收对象时,取出使用的连接对象,判断是否关闭,如果没有关闭则关掉。代码如下所示: protected void finalize() {
try {
If(getConn()!=null&&!getConn().isClosed()) {
rs.cloes(); stm.close(); conn.close(); }
}catch(SQLException e){} }
6 实验小结
经过这次课题的设计并实现,尽管会遇到很多难题,但是让我更加受益的是在这次课题中得到的经验、心得和锻炼。我发现做实验的过程其实就是个不断的解决问题的过程,从中也感觉到实验成功的快乐,一个人永远有学不玩的知识,就算是实验中的知识点都学了,但在实际的应用过程中仍然会遇到不少问题,遇到问题时要做到两点:一个是“查” ,一个是“问”。不懂的地方就得要自己找答案,可以从书本、网络中查找解决的答案;再一个就是问周边的同学。这次课程的设计给我所学的知识做了一个总结,为我深入学习编程做了铺垫。在本课题中存在的不足之处是在所难免的,本人将在日后加于改进。
参考文献
[1] 王克宏、郝建文. Java技术教程 [M]. 北京:清华大学出版社,2002年9月. [2] 蔡敏、徐慧慧、黄炳强. UML基础与Rose建模教程 [M]. 北京:人民邮电出版社,2006年5月.
[3] 萨师煊、王珊. 数据库系统概论(第三版)[M]. 北京:高等教育出版社,2005年12月.
[4] 齐治昌、谭庆平、宁洪. 软件工程(第二版)[M]. 北京:高等教育出版社,2004年,3月.
[5] 周竞涛、赵寒. Eclipse完全手册 [M]. 北京:电子工业出版社,2006年,8月.
[6] Cay S.Horstmann、Gary Cornll. 叶乃文 等译. Java核心技术 [M] 北京:机械工业出版社,2006年5月.
[7] 蒙祖强、龚涛. Oracle 10g 数据库Java开发. 北京:中国水利水电出版社,2005年6月.
附录代码
// AddStuInfo.java
package com.main;
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection;
import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JOptionPane; import com.bean.Student; import com.dao.StudentDao; import com.db.DB;
import com.main.DelteStudent.delAction;
public class AddStuInfo extends JFrame {
StudentDao studao = new StudentDao(); DB db = new DB();
Connection conn = db.getConnection();
JTextField snoText = null; JTextField snameText = null; JComboBox sexcom = null; JTextField ageText = null; JComboBox classcom = null; JComboBox departcom = null;
public void init() {
// 窗体设计
this.setLayout(null);
this.setTitle(\学生信息管理系统\this.setSize(500, 400);
JLabel title = new JLabel(\学生信息维护模块---录入数据\title.setBounds(180, 20, 200, 30); this.add(title);
JLabel snoLabel = new JLabel(\学号\snoText = new JTextField();
snoLabel.setBounds(20, 60, 40, 25); snoText.setBounds(60, 60, 120, 25); this.add(snoLabel); this.add(snoText);
JLabel snameLabel = new JLabel(\姓名\snameText = new JTextField();
snameLabel.setBounds(220, 60, 40, 25); snameText.setBounds(260, 60, 120, 25); this.add(snameLabel); this.add(snameText);