• 【毕业设计】基于javaEE+SSH+SqlServer的企业车辆管理系统设计与实现(毕业论文+程序源码)——车辆管理系统


    基于javaEE+SSH+SqlServer的企业车辆管理系统设计与实现(毕业论文+程序源码)

    大家好,今天给大家介绍基于javaEE+SSH+SqlServer的企业车辆管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。

    文章目录:

    1、项目简介

    1. 企业车辆管理系统运用现代化的计算机管理手段,不但可以对车辆的使用进行合理的管理,而且对车辆的使用情况进行跟踪记录,这对于单位车辆责任到人,费用清晰,避免责任混乱、费用虚假等一系列相应问题的解决。系统的主要功能包括:车辆管理、驾驶员管理及出车信息管理。

    2. 本系统前台主要使用JSP作为开发语言,后台使用SQServer作为数据库管理系统,开发环境是MyEclipse,服务器采用tomcat,开发出的一个基于Web技术的B/S结构的企业车辆管理系统。

    3. 通过计算机,能够直接“透视”车辆使用情况,数据计算自动完成,尽量减少人工干预,可以使用车信息更加规范化、透明化。因此,开发一套高效率,无差错的企业车辆管理系统软件十分必要,因此设计了这个企业车辆管理系统。本系统结构如下:
      (1) 系统管理模块:
      在该模块中定义了管理员信息的管理,其功能包括管理员信息添加、查询、删除等操作。
      (2) 车辆信息管理模块:
      在该模块中定义了对车辆信息的管理,其功能包括车辆信息的添加、查询、修改、删除等操作。
      (3) 驾驶员信息管理模块:
      在该模块中定义了对驾驶员信息的管理,其功能包括驾驶员信息的添加、查询、修改、删除等操作。
      (4) 出车信息管理模块:
      在该模块中定义了对出车情况的管理,其功能包括出车情况的添加、查询、修改、删除等操作。


    2、资源详情

    项目难度:中等难度
    适用场景:相关题目的毕业设计
    配套论文字数:13213个字41页
    包含内容:整套源码+完整毕业论文+答辩PPT+辅导视频+运行截图


    3、关键词:

    车辆,管理系统,JSP,B/S结构

    4、毕设简介:

    提示:以下为毕业设计的简略介绍,项目源码及完整毕业论文下载地址见文末。

    第一章 绪论
    1.1课题背景
    随着我国经济的快速发展,人民生活水平的提高,以及人们的对物资的购买力提高,汽车已成为人们不可缺少的交通工具。特别是对于拥有大量车辆的机关企事业单位来说,车辆的管理已成为日常事务中的一项重要的工作,为了如何让管理人员及时了解每一辆车的情况,提高车辆的使用效率,减少费用支出,成为各个单位需要解决的一个难题,为了规范企业内部的管理,提高企业管理质量,更好的服务于广大的客户的情况下,我们必须要开发一套专门用于车辆管理的系统,可以集中管理车辆的运营,维修,事故,违章等一系列的信息,使企业进入车辆管理信息化,科学化。同时也可以节省人力,物力,财力。

    1.2目的和意义
    现在随着企业规模的扩大以及车辆作为最为普遍的交通工具,在企业中已经不是单一的存在,由于单位车辆数目的急剧增加,与之相对应的问题随之而生,比如车辆的使用权问题,车辆的费用问题等,不再是简单的少量的数据。为了解决这一系列的问题,我们必须借助于电脑的强大的数据处理能力和存储能力,如此可以减少人力财力来维护这些数据,可以用更少的投入来换取更佳的数据管理。因此,在这样的情况下,开发单位车辆管理系统是可行的,是必要的。

    1.3开发工具及技术
    1.3.1开发工具
    此次设计主要采用MyEclipse加Tomcat后台服务器进行,设计过程中页面主要使用JSP技术完成,下面对MyEclipse、Tomcat和MySQL数据库进行简要介绍。

    1.3.1.1 MyEclipse
    MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。

    1.3.1.2 Tomcat
    Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。可以这样认为,当在一台机器上配置好Apahce服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

    1.3.1.3 SQLServer
    SQLServer使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统;为多种编程语言提供了API;支持多线程,充分利用CPU资源;提供TCP/IP、ODBC和JDBC等多种数据库连接途径;可以处理拥有上千万条记录的大型数据库。对于一般的个人使用者和中小型企业来说,SQLServer提供的功能已经绰绰有余。

    1.3.2 JSP
    JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

    Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端就是一个HTML文本,因此客户端只要有浏览器能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。

    Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JSP技术的优点:
    (1)一次编写,到处运行。除了系统之外,代码不用做任何更改。

    (2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。

    (3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

    (4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下

    (5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。

    内部对象说明:request 客户端请求,此请求会包含来自GET/POST请求的参数; response 网页传回客户端的响应;pageContext 网页的属性是在这里管理; session 与请求有关的会话; application servlet正在执行的内容;out 用来传送响应的输出流; config 代码片段配置对象;page JSP网页本身; exception 针对错误网页,未捕捉的例外

    1.3.3 JavaScript
    JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。在HTML基础上,使用Javascript可以开发交互式Web网页。Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。在本系统中很多地方使用了javascript技术,比如说,检验用户输入数据的有效性,是否重复,是否为空等等。

    1.3.4 Struts 2简介
    Struts最早是作为Apache Jakarta项目的组成部分问世运作。项目的创立者希望通过对该项目的研究,改进和提高Java Server Pages、Servlet、标签库以及面向对象的技术水准。它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。

    使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2002年3月成为ASF的顶级项目。它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller〔MVC〕设计模式的应用框架〔Web Framework〕,是MVC经典设计模式中的一个经典产品。而Struts2则是Struts的升级版本。

    它的优点在于:
    ① Struts2基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌控开发的过程;
    ② 使用OGNL进行参数传递;
    ③ 强大的拦截器;
    ④ 易于测试;
    ⑤ 易于扩展的插件机制;
    ⑥ 全局结果与声明式异常。

    1.3.5 Hibernate简介
    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

    Hibernate的核心接口一共有2个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这2个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。

    1.4软硬件需求
    硬件需求:
    CPU:Pentium以上计算机
    内存: 512M以上

    软件需求:
    操作系统版本:Windows XP /vista/Win7
    开发工具:MyEclipse 6.0.1
    后台服务器:Apache Tomcat 6.0
    开发语言:Java
    浏览器:IE6.0

    第二章 需求分析
    2.1需求调研
    省略

    因此,开发一套高效率,无差错的企业车辆管理系统软件十分必要,因此设计了这个企业车辆管理系统。

    2.2可行性分析
    省略

    2.2.1技术的可行性
    本系统开发工具是MyEclipse和MySQL数据库,开发语言是Java,主要使用了J2EE的技术,java是一种面向对象编程语言,简单易学而且灵活方便。大三时就学习了java课程,大四期间也系统的了解了J2EE的知识,企业车辆管理系统总体上开发难度不高,数据库的设计和操作是本系统设计的核心。在大学期间学习过软件工程,软件测试,UML统一建模语言等课程,每个学期也会完成对应的课程设计,具备一定的系统分析、设计和测试能力。因此,完成系统实现在技术上完全具有可行性。

    2.2.2经济的可行性
    省略

    2.2.3操作可行性
    省略

    2.2.4法律的可行性
    省略

    2.3系统用户用例图
    2.3.1管理员用例图
    管理员是系统的核心用户,涉及到四大功能模块,管理员对系统的管理员用户有着操作的权限,能够及时动态的车辆、司机及车辆使用情况。
    在这里插入图片描述

    图2.1 管理员用例图

    2.4功能模块需求分析
    本系统最大的特点是使用操作简单、友好的提示信息。本系统将实现以下基本功能:
    (1)系统具有简洁大方的页面,使用简便,友好的错误操作提示
    (2)管理员用户具有系统管理、车辆信息管理、驾驶员信息管理、出车记录管理功能
    (3)具有较强的安全性,避免用户的恶意操作

    管理员功能模块图说明:
    (1) 系统管理模块:在该模块中定义了管理员信息的管理,其功能包括管理员信息添加、查询、删除等操作。
    (2) 车辆信息管理模块:在该模块中定义了对车辆信息的管理,其功能包括车辆信息的添加、查询、修改、删除等操作。
    (3) 驾驶员信息管理模块:在该模块中定义了对驾驶员信息的管理,其功能包括驾驶员信息的添加、查询、修改、删除等操作。
    (4) 出车信息管理模块:在该模块中定义了对出车情况的管理,其功能包括出车情况的添加、查询、修改、删除等操作。
    管理员用户功能模块图如下。
    在这里插入图片描述

    图2.2 管理员用户功能模块图

    2.5设计的基本思想
    设计思想遵循以下几点:

    1. 采用B/S模式进行开发,其优点是后台与前台处理层次分明,而且符合众多已经习惯网页方式的用户。
    2. 采用面向对象的开发与设计理念。运用面向对象技术的前提是对整体系统的高度和准确抽象,通过它可以保证系统良好的框架,进而带来产品较强的稳定性和运行效率。
    3. 采用模块化设计。模块化设计要求将整个系统划分成基于小的模块,有利于代码的重载,简化设计和实现过程。
    4. 简单方便的系统界面。设计简单友好的系统界面,方便用户较快的适应系统的操作。
      5.速度优先原则。由于此工具最重要的评测标准就是速度,因此在设计过程中,具体过程尽量做到资源占用少,速度快。
      6.设计既要突出重点,又要细致周到。要符合设计需求,在有可能改进的地方进行扩充,使系统更适应用户的需要。

    2.6性能需求
    2.6.1系统的安全性
    省略

    2.6.2数据的完整性
    1.各种记录信息的完整性,信息记录内容不能为空
    2.各种数据间相互联系的正确性
    3.相同数据在不同记录中的一致性

    2.7界面需求
    界面设计目前已经成为评价软件质量的一条重要指标,一个好的用户界面可以增加用户使用系统的信心和兴趣,提高工作效率,JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。 创建动态页面非常方便。用户界面是指软件系统与用户交互的接口,通常包括输出、输入、人-机对话的界面格式等。

    第三章 系统分析与设计
    3.1数据库的分析与设计
    省略

    3.1.1数据库的概念结构设计
    概念设计是指在数据分析的基础上自底向上的建立整个系统的数据库概念结构,从用户的角度进行视图设计,然后将视图集成,最后对集成的结构分析优化得到最后结果。

    数据库的概念结构设计采用实体—联系(E-R)模型设计方法。E-R模型法的组成元素有:实体、属性、联系,E-R模型用E-R图表示,是提示用户工作环境中所涉及的事物,属性则是对实体特性的描述。

    概念设计的目标是产生反映企业组织信息要求的数据库概念结构,即概念模式。概念模式是独立于数据库逻辑结构,独立于支持数据库的DBMS,不依赖于计算机系统的,
    根据以上对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立E-R模型图。

    在这里插入图片描述

    (1)车辆信息实体E-R图如图3.1所示:
    在这里插入图片描述

    图3.1 车辆信息实体E-R图
    (2)司机信息实体E-R图如图3.2所示:
    在这里插入图片描述

    图3.2 投诉信息实体E-R图
    (3)出厂信息实体E-R图如图3.3所示
    在这里插入图片描述

    图3.3 出车信息实体E-R图
    (4)管理员信息E-R图如图3.4所示
    在这里插入图片描述

    图3.4 管理员信息实体E-R图

    3.1.2数据库的逻辑结构设计
    我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则:
    *每一个实体要转换成一个关系
    *所有的主键必须定义非空(NOT NULL)
    *对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。

    根据E-R模型,企业车辆管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明。

    (1)车辆信息表主要是记录了车辆基本信息,表结构如表3.1所示。
    表3.1车辆信息表(t_che)
    在这里插入图片描述

    (2)司机信息表主要记录了司机基本信息,表结构如表3.2所示。
    表3.2司机信息表(t_siji)
    在这里插入图片描述

    (3)出车信息表主要是记录了出车情况的基本信息,表结构如图3.3所示。
    表3.3出车信息表(t_chuche)
    在这里插入图片描述

    (4)管理员信息表主要记录的管理员的账号信息,包括用户名和密码,表结构如表3.4所示。
    表3.4管理员信息表(t_admin)
    在这里插入图片描述

    3.1.3数据库的连接原理
    本系统采用Hibernate对数据库进行管理。Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从 Java 类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用 JDBC 和 SQL 来手工操作数据库,Hibernate 可以大大减少操作数据库的工作量。 另外 Hibernate 可以利用代理模式来简化载入类的过程,这将大大减少利用 Hibernate QL 从数据库提取数据的代码的编写量,从而节约开发时间和开发成本 Hibernate 可以和多种Web 服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器。

    Hibernate 技术本质上是一个提供数据库服务的中间件。它的架构如图3.5所示:
    在这里插入图片描述

    图3.5Hibernatre架构图

    图3.5显示了 Hibernate 的工作原理,它是利用数据库以及其他一些配置文件如 Hibernate .properties ,XML Mapping 等来为应用程序提供数据持久化服务的。
    Hibernate 具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的运行方式。在轻型体系中,应用程序提供 JDBC 连接,并且自行管理事务,这种方式使用了 Hibernate 的一个最小子集;在全面解决体系中,对于应用程序来说,所有底层的 JDBC/JTA API 都被抽象了,Hibernate 会替你照管所有的细节。

    3.2中文乱码问题处理
    在程序中经常会遇到中文乱码的情况,如果手动的在servlet和jsp页面进行设置,相当麻烦。因此,在程序的开始就写了一个过滤器SetCharacterEncodingFilter。
    在web.xml中配置:

    <filter>
    <filter-name>SetCharacterEncodingFilter</filter-name>
    <filter-class>myweb.util.filter.SetCharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>gb2312</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>SetCharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>//*表示工程下所有的页面都会有此过滤器的处理
    </filter-mapping>
    对应的SetCharacterEncodingFilter.java文件中的重要代码,在初始化init()方法中定义:
    public void init(FilterConfig filterConfig) throws ServletException {
    	    this.filterConfig = filterConfig;
            this.encoding = filterConfig.getInitParameter("encoding");
            String value = filterConfig.getInitParameter("ignore");
            }
    在工具包util包中同样定义了DataFormate类来处理字符转换:
           public static String toUni(String gbStr){
            String uniStr = ""; /*把字符串转换成uincode编码*/
            if(gbStr == null){
              gbStr = "";
            }
            try{
              byte[] tempByte = gbStr.getBytes("GB2312");
              uniStr = new String(tempByte,"ISO8859_1");
            }catch(Exception ex){
            }
            return uniStr;
          }
          /* 把字符串转换成Utf8编码*/
      public static String toUtf8String(String s) {
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < s.length(); i++) {
                 char c = s.charAt(i);
                  if (c >= 0 && c <= 255) {
                    sb.append(c);
                    }
                  else {
                       byte[] b;
                        try {
                           b = Character.toString(c).getBytes("utf-8");
                         }catch (Exception ex) {
                            System.out.println(ex);
                            b = new byte[0];
                         }
                             for (int j = 0; j < b.length; j++) {
                               int k = b[j];
                               if (k < 0) {
                                 k += 256;
                               }
                               sb.append("%" + Integer.toHexString(k).
                                         toUpperCase());  } }
    				       return sb.toString();  } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55

    第四章 系统功能实现
    在管理信息系统的生命周期中,经过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。

    4.1系统登陆页面实现
    1.描述:为了保证系统的安全性,要先使用本系统必须先登陆到系统中,用户需要正确的账号和密码登录本系统。
    2.程序运行效果图如图4.1所示:
    在这里插入图片描述

    图4.1 系统登陆页面设计
    3.在登陆页面输入用户名和密码以,点击提交按钮,跳转到登陆的service中,在该service中会对用户名,密码,验证码进行判断,验证通过进入对应的页面,loginservice关键代码:

    	public String login(String userName,String userPw,int userType)
    	{
    		String result="no";
    		if(userType==0)//超级管理员登陆
    		{
    String sql="from TAdmin where userName=? and userPw=? and type='chaoji'";
    			Object[] con={userName,userPw};
    			List adminList=adminDAO.getHibernateTemplate().find(sql,con);
    			if(adminList.size()==0)
    			{
    				 result="no";
    			}
    			else
    			{
    				 WebContext ctx = WebContextFactory.get(); 
    				 HttpSession session=ctx.getSession(); 
    				 TAdmin admin=(TAdmin)adminList.get(0);
    				 session.setAttribute("userType", 0);
    	             session.setAttribute("admin", admin);
    	             result="yes";
    			}
    		}		
    return result;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    4.2总体功能模块
    1.描述:系统主页面:左方页面展示了管理员可操作的四大功能,进入相关的管理页面可以链接到子菜单,并且高亮显示,每个管理模块下面都有相应的子菜单。
    2.程序运行效果图如图4.2所示:
    在这里插入图片描述

    图4.2管理员主页面
    在每个jsp页面将会对相关用户进行拦截操作,这样可以提高安全性,防止用户不经过登陆页面而进入任何子菜单页面:
    if(session.getAttribute(“user”)==null)
    {
    out.print(“”);
    }

    4.2.1车辆信息管理
    4.2.1.1车辆信息添加
    1.描述:管理员输入车辆相关正确信息后点击录入按钮,如果是没有输入完整的车辆信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法οnsubmit="return checkForm()"来检查,checkForm()函数中是各种的校验输入数据的方式。
    2.程序效果图如下图4.3所示
    在这里插入图片描述

    图4.3 车辆信息添加

    4.2.1.2车辆信息管理
    1.描述:管理员点击左侧的菜单“车辆信息管理”,页面跳转到车辆信息管理界面,调用后台的action类查询出所有的车辆信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示出车辆信息。
    2.程序效果图如下图4.4所示
    在这里插入图片描述

    图4.4 车辆信息管理
    车辆信息管理关键代码:

    public String cheAdd()
    {
    	TChe che=new TChe();
    	che.setChepai(chepai);
    	che.setChexing(chexing);
    	che.setChuchangriqi(chuchangriqi);
    	che.setZaizhongliang(zaizhongliang);
    	che.setSiji_id(siji_id);
    	che.setDel("no");
    	cheDAO.save(che);
    	this.setMessage("操作成功");
    	this.setPath("cheMana.action");
    	return "succeed";
    }
    public String cheMana()
    {
    	List cheList=cheDAO.getHibernateTemplate().find("from TChe where del='no'");
    	for(int i=0;i<cheList.size();i++)
    	{
    		TChe che=(TChe)cheList.get(i);
    		che.setSiji(sijiDAO.findById(che.getSiji_id()));
    		
    	}
    	Map request=(Map)ServletActionContext.getContext().get("request");
    	request.put("cheList", cheList);
    	return ActionSupport.SUCCESS;
    }
    public String cheDel()
    {
    	TChe che=cheDAO.findById(id);
    	che.setDel("yes");
    	cheDAO.attachDirty(che);
    	this.setMessage("删除成功");
    	this.setPath("cheMana.action");
    	return "succeed";
    }
    public String cheEdit()
    {
    	TChe che=cheDAO.findById(id);
    	che.setChepai(chepai);
    	che.setChexing(chexing);
    	che.setChuchangriqi(chuchangriqi);
    	che.setZaizhongliang(zaizhongliang);
    	che.setSiji_id(siji_id);
    	che.setDel("no");
    	cheDAO.attachDirty(che);
    	this.setMessage("操作成功");
    	this.setPath("cheMana.action");
    	return "succeed";
    }
    public String cheSearch()
    {
    	StringBuffer sql=new StringBuffer("from TChe where del='no'");
    	sql.append(" and chepai like '%"+chepai+"%'");
    	sql.append(" and zaizhongliang like '%"+zaizhongliang+"%'");
    	
    	System.out.println(sql.toString()+"^^^");
    
    	
    	List cheList=cheDAO.getHibernateTemplate().find(sql.toString());
    	for(int i=0;i<cheList.size();i++)
    	{
    		TChe che=(TChe)cheList.get(i);
    		che.setSiji(sijiDAO.findById(che.getSiji_id()));
    		
    	}
    	Map request=(Map)ServletActionContext.getContext().get("request");
    	request.put("cheList", cheList);
    	return ActionSupport.SUCCESS;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70

    4.2.1.3车辆信息修改
    1.描述:先是点击车辆信息管理,页面跳转到车辆信息管理界面,浏览所有的车辆信息,点击要修改的车辆信息,打开车辆信息修改页面,修改车辆信息。
    2.程序效果图如下图4.5所示
    在这里插入图片描述

    图4.5车辆信息修改

    4.2.1.4车辆信息删除
    1.描述:先是点击车辆信息管理,页面跳转到车辆信息管理界面,浏览所有的车辆信息,点击要删除的车辆信息,点击确认按钮,完成车辆删除操作。
    2.程序效果图如下图4.6所示
    在这里插入图片描述

    图4.6 车辆信息删除

    4.2.1.5车辆信息修改查询
    1.描述:先是点击车辆信息查询,页面跳转到车辆信息查询界面,输入查询条件,调用后台action,查询符合条件的车辆信息。
    2.程序效果图如下图4.7所示
    在这里插入图片描述

    图4.7 车辆信息查询

    4.2.2驾驶员信息管理
    4.2.2.1驾驶员信息添加
    1.描述:管理员输入驾驶员相关正确信息后点击录入按钮,如果是没有输入完整的驾驶员信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法οnsubmit="return checkForm()"来检查,checkForm()函数中是各种的校验输入数据的方式。
    2.程序效果图如下图4.8所示
    在这里插入图片描述

    图4.8 驾驶员信息添加

    4.2.2.2驾驶员信息管理
    1.描述:管理员点击左侧的菜单“驾驶员信息管理”,页面跳转到驾驶员信息管理界面,调用后台的action类查询出所有的驾驶员信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示出驾驶员信息。
    2.程序效果图如下图4.9所示
    在这里插入图片描述

    图4.9 驾驶员信息管理
    驾驶员信息管理关键代码:

    public String sijiAdd()
    	{
    		TSiji siji=new TSiji();
    		siji.setName(name);
    		siji.setSex(sex);
    		siji.setAge(age);
    		siji.setTel(tel);
    		siji.setAddress(address);
    		siji.setCard(card);
    		siji.setDel("no");
    		sijiDAO.save(siji);
    		this.setMessage("操作成功");
    		this.setPath("sijiMana.action");
    		return "succeed";
    	}
    	public String sijiMana()
    	{
    		List sijiList=sijiDAO.getHibernateTemplate().find("from TSiji where del='no'");
    		Map request=(Map)ServletActionContext.getContext().get("request");
    		request.put("sijiList", sijiList);
    		return ActionSupport.SUCCESS;
    	}
    	public String sijiDel()
    	{
    		TSiji siji=sijiDAO.findById(id);
    		siji.setDel("yes");
    		sijiDAO.attachDirty(siji);
    		this.setMessage("删除成功");
    		this.setPath("sijiMana.action");
    		return "succeed";
    	}
    	public String sijiEdit()
    	{
    		TSiji siji=sijiDAO.findById(id);
    		siji.setName(name);
    		siji.setSex(sex);
    		siji.setAge(age);
    		siji.setTel(tel);
    		siji.setAddress(address);
    		siji.setCard(card);
    		siji.setDel("no");
    		sijiDAO.attachDirty(siji);
    		this.setMessage("操作成功");
    		this.setPath("sijiMana.action");
    		return "succeed";
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    4.2.2.3驾驶员信息修改
    1.描述:先是点击驾驶员信息管理,页面跳转到驾驶员信息管理界面,浏览所有的驾驶员信息,点击要修改的驾驶员信息,打开驾驶员信息修改页面,修改驾驶员信息。
    2.程序效果图如下图4.10所示
    在这里插入图片描述

    图4.10驾驶员信息修改

    4.2.2.4驾驶员信息删除
    1.描述:先是点击驾驶员信息管理,页面跳转到驾驶员信息管理界面,浏览所有的驾驶员信息,点击要删除的驾驶员信息,点击确认按钮,完成驾驶员删除操作。
    2.程序效果图如下图4.11所示
    在这里插入图片描述

    图4.11 驾驶员信息删除

    4.2.3出车信息管理
    4.2.3.1出车信息添加
    1.描述:管理员输入出车相关正确信息后点击录入按钮,如果是没有输入完整的出车信息,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法οnsubmit="return checkForm()"来检查,checkForm()函数中是各种的校验输入数据的方式。
    2.程序效果图如下图4.12所示
    在这里插入图片描述

    图4.12 出车信息添加

    4.2.3.2出车信息管理
    1.描述:管理员点击左侧的菜单“出车信息管理”,页面跳转到出车信息管理界面,调用后台的action类查询出所有的出车信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示出出车信息。
    2.程序效果图如下图4.13所示
    在这里插入图片描述

    图4.13 出车信息管理

    出车信息管理关键代码:

    public String chucheAdd()
    {
    	TChuche chuche=new TChuche();
    	chuche.setChe_id(che_id);
    	chuche.setKaichushijian(kaichushijian);
    	chuche.setHuilaishijian(huilaishijian);
    	chuche.setShiyou(shiyou);
    	chuche.setDel("no");
    	chucheDAO.save(chuche);
    	this.setMessage("操作成功");
    	this.setPath("chucheMana.action");
    	return "succeed";
    }
    public String chucheMana()
    {
    	List chucheList=chucheDAO.getHibernateTemplate().find("from TChuche where del='no'");
    	for(int i=0;i<chucheList.size();i++)
    	{
    		TChuche chuche=(TChuche)chucheList.get(i);
    		chuche.setChe(cheDAO.findById(chuche.getChe_id()));
    	}
    	Map request=(Map)ServletActionContext.getContext().get("request");
    	request.put("chucheList", chucheList);
    	return ActionSupport.SUCCESS;
    }
    public String chucheDel()
    {
    	TChuche chuche=chucheDAO.findById(id);
    	chuche.setDel("yes");
    	chucheDAO.attachDirty(chuche);
    	this.setMessage("删除成功");
    	this.setPath("chucheMana.action");
    	return "succeed";
    }
    public String chucheEditPre()
    {
    	TChuche chuche=chucheDAO.findById(id);
    	Map request=(Map)ServletActionContext.getContext().get("request");
    	request.put("chuche", chuche);
    	return ActionSupport.SUCCESS;
    }
    public String chucheEdit()
    {
    	TChuche chuche=chucheDAO.findById(id);
    	chuche.setChe_id(che_id);
    	chuche.setKaichushijian(kaichushijian);
    	chuche.setHuilaishijian(huilaishijian);
    	chuche.setShiyou(shiyou);
    	chuche.setDel("no");
    	chucheDAO.attachDirty(chuche);
    	this.setMessage("操作成功");
    	this.setPath("chucheMana.action");
    	return "succeed";
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54

    4.2.3.3出车信息修改
    1.描述:先是点击出车信息管理,页面跳转到出车信息管理界面,浏览所有的出车信息,点击要修改的出车信息,打开出车信息修改页面,修改出车信息。
    2.程序效果图如下图4.14所示
    在这里插入图片描述

    图4.14 出车信息修改

    4.2.3.4出车信息删除
    1.描述:先是点击出车信息管理,页面跳转到出车信息管理界面,浏览所有的出车信息,点击要删除的出车信息,点击确认按钮,完成出车删除操作。
    2.程序效果图如下图4.15所示
    在这里插入图片描述

    图4.15 出车信息删除

    4.2.4系统管理
    4.2.5.1查询管理员信息
    1.描述:点击系统管理菜单,右侧展示了所有的系统管理员信息。主要包括用户名和密码。
    2.程序效果图如图4.16所示:
    在这里插入图片描述

    图4.16 查询管理员

    4.2.5.2添加管理员
    1.描述:输入要添加管理员的信息以后,点击添加按钮。两次输入的密码必须相同。
    2.程序效果图如图4.17所示:
    在这里插入图片描述

    图4.17 添加管理员

    4.2.5修改密码
    1.描述:输入用户名和用户的原有密码,输入新密码以后点击修改按钮即可修改密码成功。
    2.程序效果图如图4.18所示:
    在这里插入图片描述

    图4.18 修改密码

    4.2.6退出系统
    1.描述:点此按钮回到系统的主页面。
    2.关键代码:主要是通过javascript语句来实现, item_word[8][4]=“退出系统”;
    item_link[8][4]=“javascript:window.open(‘…/index.jsp’,‘_self’)”;

    第五章 系统测试
    5.1系统测试目的与意义
    省略

    5.2测试过程
    在测试之初,由于将数据库中的数据是随便输入,没有实用性,为了使系统更加完善,在系统测试的过程中,本系统将一开始编程随便输入的数据全部清理后,输入了一些有效的测试数据,这样可以更真实的反映系统的功能实现情况。
    这样不断发现问题,经过反复的测试、调试,把问题一个个的解决,最终系统可以正常运行。

    5.2.1主页面的登录模块测试
    测试流程: 1.打开系统首页,输入错误的登录信息
    2.登录
    3.输入正确的登录信息
    4.登录
    5.测试结果
    在这里插入图片描述

    5.3其他错误
    在程序设计实现的过程中不可避免的会产生各种难以预料的错误,如书写错误、传值类型不一致、参数传递问题等等。这些都需要通过细心的检测与不断的调试才能够排除。比如在servlet路径配置时因粗心错误导致运行导致所报错误,如图5.4:
    在这里插入图片描述

    图 5.4 由于servlet路径配置错误,运行时的提示

    结 论
    本次毕业设计将我大学四年所学的软件工程理论知识用到了具体的实践中去,深化了理论知识,同时也锻炼了动手实践能力。

    省略

    参考文献
    [1] 袁鹏飞 孙军安:中文版 SQL Server 2000 数据库系统管理,人民邮电出版社.2001
    [2] 埃弗雷姆•特伯恩:电子商务管理新视角[M],第 2 版.北京:电子工业出版社.2005
    [3] 张新曼. 精通JSP-WEB开发技术与典型应用[M]. 北京:人民邮电出版社, 2007
    [4] 陈旭.电子商务基础[M].重庆:重庆大学出版社,2010
    [5] 张立科.java信息系统管理开发[M].北京:人民邮电出版社.
    [6] 魏善沛编著.《Web 数据库技术实用教程》.北京,清华大学出版社,1998
    [7] 陈文兰. 基于SSH 集成架构的进销存管理系统的设计[J]. 农业网络信息.
    [8] 邓子云.JSP网络编程从基础到实践[M].北京:电子工业出版社.
    [9] 杨晓云译. MySQL 5 权威指南[M]. 北京:人民邮电出版社.2006.
    [10] 郝玉龙.JavaEE编程技术[M].北京:北京交通大学出版社.
    [11] 高洪岩. 基于Struts2+Hibernate+Spring实用开发指南. 化学工业出版社,2010
    [12](美)Bruce Eckel著,陈昊鹏译,Java编程思想(第三版)[M].北京:机械工业出版社,2007.6
    [13] 李建中,王珊.《数据库系统原理(第2版)》电子工业出版社.2004.9
    [14] 张长富,黄中敏.JavaScript动态网页编程实例手册[M].北京:海洋出版社,2005:196-239
    [15] 艾灵仙. 高校系级网站构建平台的设计与实现.[J]. 科技信息-2008年16期

    致 谢
    省略


    5、源码下载:

    本项目源码及论文如下,有需要的朋友可以点击进行下载

  • 相关阅读:
    Redis可视化工具-Another Redis Desktop Manager 安装
    实战:kubeadm方式搭建k8s集群(containerd)-2022.12.5(成功测试-超详细)【荐】
    刷完这50个标准库模块:没人比我更懂Python了
    c#使用log4net的3种调用方法
    java计算机毕业设计海南自贸港知识学习与测试MyBatis+系统+LW文档+源码+调试部署
    qt5.15源码编译
    STM32中的PWM
    信息论笔记:信息量+熵+相对熵+交叉熵+损失函数
    ssm基于Android社区生鲜O2O订购系统设计与实现毕业设计源码231443
    ChatGPT + DALL·E 3
  • 原文地址:https://blog.csdn.net/m0_66238867/article/details/125448462