(u.basicWage+u.postWage+u.bonus) \+msg+\+mss+\\+mgg).list().iterator() ;
}
在QueryPanel中来catch HibernateOperate q = new HibernateOperate();
try { }
q.testQuerySpecil(msg,mss,mgg,result); result.setText(e.toString()); } catch (UserException e1) { session.getTransaction().commit(); ta.setText(\);
while(users.hasNext()){
ta.append(users.next().toString());
}
session.close(); sf.close();
如果没有将显示给用户看的界面元素的引用没有传过来的时候,就用让它往外抛,抛到可以显示的地方就catch住,这样增强了程序的灵活性。就如上述的这种用法。也可以在HibernateOperate的方法中catch,特别是已经将显示文本框的引用传过来后,在这里catch就方便多了,如按工号删除员工的方法: 除
publicboolean testDeleteById(int id,TextField tf){ //按工号删
}
boolean flag=false; sf = new
Session session = sf.openSession(); try {
session.beginTransaction();
User u = (User)session.load(User.class,id); tf.setText(u.toString()+\已经删除\); session.delete(u);
session.getTransaction().commit(); flag = true;
AnnotationConfiguration().configure().buildSessionFactory();
} catch (HibernateException e) {
tf.setText(\由于hibernate连接和操纵数据异常,删除失败!!\); }
session.close(); sf.close(); return flag;
31 / 66
6 总结与体会
6.1 总结
本课程设计重点分为两个方面,一是图形界面的设计,主要包括界面图形的设计、监听器的使用、事件处理;二是后台数据操作,主要包括数据库的连接、hibernate的基础配置、增删改查操作、异常处理。
图形界面的设计中,根据课题要求,个人安排设计成一个主模块,四个子模块的形式。子模块以卡片的形式在主模块中,这样不至于所有的操作接卖弄都挤在一起。在主模块中,有按钮可以随时选择四个子模块中的任意一个,用户可以随时选择。
后台数据操纵中,主要使用的是通过hibernate访问数据库的,hibernate访问数据库还有另一种比较你麻烦的访问方式,那就是不用注解,全部通过配置hibernate的xml文件访问,写起来比较麻烦。本课题中用到了hibernate的几种注解,也用了几种系统定义的异常,同时自定义了异常类。
6.2 体会
在图形界面设计中,使用了系统里提供的多种图形常用类,通过查阅相关书籍和查阅sun公司给出的api,加深了对gui编程这一块的掌握程度,比如其中的布局设计、监听器、事件处理等。
设计方面,四个子模块的设计中,查询模块有查询方式、查询范围、排列依据和排序方式的多种情况供用户选择,然后将查询结果显示在下方的显示文本框中。在增加员工的子模块中,如果增加成功,系统会将增加的那个员工的信息打印出来,每个这样让每个员工都知道自己的工号。另外,结合增加员工的模块中规定,增加员工时,员工姓名不能空,否则无法增加,在修改
32 / 66
子模块中,本课程设计值提供以工号方式的修改,但是不能修改员工的姓名,这也是合情合理的。当修改员工信息时,一定要确认才能修改,以避免误改的可能。删除时更是谨慎,在执行删除操作前,系统会将用户将要删除的员工的信息打印在显示文本框中,提示用户是否确认删除,确保用户不会误改。这些是设计思路的严谨范畴的体会。
在编写hibernate访问数据库程序时,更多的解决方法是看hibernate自带的文档,各种注解、各种访问方式,都非常有必要参考这个文档。通过查阅官方给出的一手文档,可以更清楚的指导其运行机制学到更多的新知识。比如对所有行的某一列进行修改的时候,查阅了hibernate的参考文档,也在网上寻找了很多方法,也感觉用起来没有使用jdbc那样简便。
测试类的应用,在写一个比较大的项目时,测试类非常有用,并且应配置日志文件,打印sql语句。这样为开发过程中查漏检错提供了线索和思路,否则将会在不重要的地方浪费大量的时间。
33 / 66
7 用户使用说明书
(1) 运行叫MyApplet的类;
(2) 在第一排四个按钮中选择将要进行的操作;
(3) 查询操作时,选择按工号查询则必须输入工号;选择按姓名查询则必须输入姓名,其他
查询中的选项任由用户选择;
(4) 增加员工时,员工工号由系统给出,无需输,但是必须输入员工姓名,其他项非必填项; (5) 进行修改操作时,系统弹出是否确认修改,在系统提示修改成功时才表明修改成功,都
则失败;
(6) 进行删除操作时,系统将用户将要删除的员工信息打印在下方文本框中,请确认后选择
是否删除;
(7) 关闭系统时,请点击窗口右上角的“X”。
34 / 66
参考文献
[1]印旻.Java与面向对象程序设计教程.北京:高等教育出版社,1999. [2]Joshua Bloch,Neal Gafter.Java解惑.北京:人民邮电出版社,2006. [3]Bruce Eckel.Java编程思想(第四版).北京:机械工业出版社,2007:378-485,576-582.
[4]孙卫琴.Java面向对象编程.北京:电子工业出版社,2006.
[5]Gay S.Horstmann,Gary Cornell.Java核心技术卷I.北京:机械工业出版社,2008:270-302,523-533.
[6]Christian Bauer,Gaving King.Hibernate实战(第二版).北京:人民邮电出版社,2008.
[6]http://wenku.http://www.wodefanwen.com//view/23ec541a10a6f524ccbf850d.html. [7]http://www.blogjava.net/titanaly/archive/2009/06/24/283935.html.
35 / 66