这几天帮朋友写了一个毕业设计-驾校管理系统,之前学过一点SSH框架,但是总是学的断断续续的,感觉自己对SSH框架理解的不是很到位,所以正好借着这个机会,用SSH框架写了这个系统,由于本人对SSH框架学习的不是很深,所以这次写的系统没有涉及到很复杂的业务,此外,写这篇博客的目的也是帮自己再回顾一下,当系统完成后回过头来再看看,会有很大的收获,温故而知新,可以为师矣嘛!
1系统的模块图
通过模块图,大家可以看出这个系统主要就是表之间的管理,已经对数据库的基本的增删改查功能。写该系统的主要目的在于对SSH框架的练习,所以对系统功能的复杂性没有过多实现。
2系统E-R图
3 系统分层
JavaEE的三层架构由表现层、业务逻辑层、数据库访问层组成。其中,view层调用service层,service层调用dao层。但是,该系统逻辑比较简单,所以只有view层和service层,即在service直接进行与数据库的交互。原因有二,第一:如果加入dao层,就会出现一部分service只是调用了dao层的方法,反而会更繁琐。第二,既然要分层,就要做到更换任何一层,其他层都不受影响。基于以上两点,所以系统实现只用两层。一般当数据源不仅仅是一个的情况下,才会写dao层。
4 所用技术框架
该系统所涉及的技术框架有struts2、hibernate、spring、junit、jQuery。其中,web的jsp、struts实现表现层。Spring实现业务逻辑层。Hibernate实现数据持久层。junit用于单元测试。jQuery的两个插件:jQuery.validate和jQuery.treeview。
5开发环境
操作系统:win7
浏览器:IE9
IDE:myeclipse10
webserver:tomcat 6.0
DB:mysql5.5
6 在开发系统的过程中总结的经验
(1):当改变类的结构的时候,需要重新部署项目,当改变jsp或者改变类中方法内容的时候,不需要重新部署项目。
(2):建议把mysql中的Server CharacterSet改为utf8,这样以后再创建数据库的时候就不用指定编码了,也防止了中文编码的错误。
(3):struct2的filter生成action的时候也是有spring来管理
(4):实现系统功能的步骤:第一:写action类,写action方法,确定service中的方法。第二:写service方法,确定dao中的方法。第三:写dao方法。第四:写jsp。此外,要实现几个功能,就写几个请求。
(5):OpenSessionInViewFilter解决Hibernate懒加载异常的问题
(6):为了封装action中的model,用到了Java中的反射机制
(7):把美工做好的静态页面变为动态页面的步骤:第一:右键,查看原文件,(将原文件代码复制过来)。第二:include公共的页面。第三:替换路径。第四:修改具体内容,如表单(form)等。
(8)在web应用中权限存的是URL地址
(9)mysql和jdbc的驱动包版本要兼容。
(10)工程和jsp页面采用utf-8格式,这样会避免中文乱码问题。