javaWeb车辆管理系统设计与实现

摘 要

随着经济的日益增长,车辆作为最重要的交通工具,在企事业单位中得以普及,单位的车辆数目已经远远不止简单的几辆,与此同时就产生了车辆资源的合理分配使用问题。
企业车辆管理系统运用现代化的计算机管理手段,不但可以对车辆的使用进行合理的管理,而且对车辆的使用情况进行跟踪记录,这对于单位车辆责任到人,费用清晰,避免责任混乱、费用虚假等一系列相应问题的解决。系统的主要功能包括:车辆管理、驾驶员管理及出车信息管理。
本系统前台主要使用JSP作为开发语言,后台使用SQServer作为数据库管理系统,开发环境是MyEclipse,服务器采用tomcat,开发出的一个基于Web技术的B/S结构的企业车辆管理系统。

第一章 绪论

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经济的可行性

由于选择的开发工具和服务器几乎全部为免费的开源软件,并且由于是开发成本较低的基于Web的B/S模式,而非成本费用相对较高的C/S模式,所以从经济上来讲是可行的。

2.2.3操作可行性

本系统操作简单,输入信息页面大多数都是下拉框的选择形式,在某些页面,信息可以自动生成,无需输入,时间的输入也是用的日历控件,操作简便,对操作人员的要求很低,只需对WINDOWS操作熟练,加之对本系统的操作稍加培训即可工作,而且本系统可视性非常好,所以在技术上不会有很大难度。
2.2.4法律的可行性
企业车辆管理系统是自行开发的系统,是很有实际意义的系统,开发环境软件和使用的数据库都是开源代码,开发这个系统不同于开发普通的系统软件,不存在侵权等问题,即法律上是可行的。
综上所述,开发一个企业车辆管理系统与原有的用车方法管理方式相比具有速度更快,操作更准确,节省开支等有利之处,因此,建立企业车辆管理系统是必要可行的。

2.3系统用户用例图

2.3.1管理员用例图

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

2.4功能模块需求分析

本系统最大的特点是使用操作简单、友好的提示信息。本系统将实现以下基本功能:
(1)系统具有简洁大方的页面,使用简便,友好的错误操作提示
(2)管理员用户具有系统管理、车辆信息管理、驾驶员信息管理、出车记录管理功能
(3)具有较强的安全性,避免用户的恶意操作
管理员功能模块图说明:
(1) 系统管理模块:在该模块中定义了管理员信息的管理,其功能包括管理员信息添加、查询、删除等操作。
(2) 车辆信息管理模块:在该模块中定义了对车辆信息的管理,其功能包括车辆信息的添加、查询、修改、删除等操作。
(3) 驾驶员信息管理模块:在该模块中定义了对驾驶员信息的管理,其功能包括驾驶员信息的添加、查询、修改、删除等操作。
(4) 出车信息管理模块:在该模块中定义了对出车情况的管理,其功能包括出车情况的添加、查询、修改、删除等操作。
管理员用户功能模块图如下。
在这里插入图片描述
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的应用程序。 创建动态页面非常方便。用户界面是指软件系统与用户交互的接口,通常包括输出、输入、人-机对话的界面格式等。
    1.输出设计
    输出是由计算机对输入的原始信息进行加工处理,形成高质量的有效信息,并使之具有一定的格式,提供管理者使用,这是输出设计的主要职责和目标。
    系统设计的过程正好和实施过程相反,并不是从输入设计到输出设计,而是从输出设计到输入设计,这是因为输出表格直接与使用者相联系,设计的出发点应当是保证输出表格方便地为使用者服务,正确及时反映和组成用于各部门的有用信息。输出设计的原则是考虑既要全面反映不同管理层的各项需要,又要言简意赅,不要将用户需要和不需要的都提供给用户。
    2.输入设计
    输入数据的收集和录入是比较费事的,需要大量的人力和一定设备,并且容易出错。如果输入系统的数据有错误,则处理后的输出将扩大这些错误,因此输入数据的正确性对于整个系统质量的好坏是具有决定性意义的。
    输入设计的原则有如下几点:
    1)输入量应保持在能满足处理要求的最低限度。设计中可采用设置字段初值,下拉式数据窗口等方式尽量减少用户键盘输入量。输入量越少,错误率就越少,数据准备时间也减少。
    2)输入的准备及输入过程应尽量容易进行,从而减少错误的发生。
    3)应尽量早对输入数据进行检查(尽量接近原数据发生点),以便使错误及时得到更正。
    4)输入数据尽早地用其处理所需的形式被记录,以避免数据由一种介质转移到另一种介质时需要转录而可能发生的错误
    (1)车辆信息实体E-R图如图3.1所示:
    在这里插入图片描述
    (2)司机信息实体E-R图如图3.2所示:
    在这里插入图片描述
    (3)出厂信息实体E-R图如图3.3所示
    在这里插入图片描述
    (4)管理员信息E-R图如图3.4所示
    在这里插入图片描述

3.1.2数据库的逻辑结构设计

我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则:
*每一个实体要转换成一个关系
*所有的主键必须定义非空(NOT NULL)
*对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。
根据E-R模型,企业车辆管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明。
(1)车辆信息表主要是记录了车辆基本信息,表结构如表3.1所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.1.3数据库的连接原理

本系统采用Hibernate对数据库进行管理。Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从 Java 类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用 JDBC 和 SQL 来手工操作数据库,Hibernate 可以大大减少操作数据库的工作量。 另外 Hibernate 可以利用代理模式来简化载入类的过程,这将大大减少利用 Hibernate QL 从数据库提取数据的代码的编写量,从而节约开发时间和开发成本 Hibernate 可以和多种Web 服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器。
Hibernate 技术本质上是一个提供数据库服务的中间件。它的架构如图3.5所示:
在这里插入图片描述
图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();  }

第四章 系统功能实现

在管理信息系统的生命周期中,经过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。
4.1系统登陆页面实现
1.描述:为了保证系统的安全性,要先使用本系统必须先登陆到系统中,用户需要正确的账号和密码登录本系统。
2.程序运行效果图如图4.1所示:
在这里插入图片描述
.在登陆页面输入用户名和密码以,点击提交按钮,跳转到登陆的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.程序运行效果图如图4.2所示:
在这里插入图片描述

4.2.1车辆信息管理

4.2.1.1车辆信息添加

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

4.2.1.2车辆信息管理

1.描述:管理员点击左侧的菜单“车辆信息管理”,页面跳转到车辆信息管理界面,调用后台的action类查询出所有的车辆信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示出车辆信息。
2.程序效果图如下图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;
	}
4.2.1.4车辆信息删除

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

4.2.1.5车辆信息修改查询

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

4.2.2驾驶员信息管理

4.2.2.1驾驶员信息添加

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

4.2.2.2驾驶员信息管理

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

4.2.3出车信息管理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2.4系统管理

4.2.5.1查询管理员信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、联系与交流

q:969060742 完整代码、sql、辅导视频、报告

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/528460.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【算法】贪心算法练习一

个人主页 &#xff1a; zxctscl 如有转载请先通知 题目 1. 贪心算法的介绍2. 860. 柠檬水找零2.1 分析2.2 代码3. 2208. 将数组和减半的最少操作次数3.1 分析3.2 代码4. 179. 最大数4.1 分析4.2 代码 1. 贪心算法的介绍 一、贪心策略&#xff1a;解决问题的策略&#xff0c;局…

继续教育自考计算机及应用试题及答案,分享几个实用搜题和学习工具 #经验分享#知识分享

题目类型比较多&#xff0c;包含判断、单选、多选、填空等多种题型&#xff0c;适合各种职业考证搜题&#xff0c;比如医卫类、财会类、海外贸易等&#xff0c;大家可以根据自己的需求进行选择&#xff0c;而且直接输入题目内容就能搜索题目&#xff0c;很是方便。 1.试题猪 …

数据结构:构建完全二叉查找树

文章目录 1、步骤 1: 对给定数组排序2、步骤 2: 递归构建完全二叉查找树3、注意4、在有序数组中寻找根结点位置5、代码实现6、其他方法&#xff1f;基本思路插入操作删除操作特别考虑 对于一个给定序列的二叉查找树&#xff0c;有很多种&#xff0c;但是完全二叉查找树只有一种…

Windows安装Kibana

下载 注意&#xff1a;为了避免一些稀奇古怪的问题&#xff0c;kibana版本最好和es版本保持一致。 es版本查看&#xff1a; 官网下载地址&#xff1a; Download Kibana Free | Get Started Now | Elastichttps://www.elastic.co/cn/downloads/kibana如果是下载最新的&#x…

41---音频电路设计

视频链接 音频电路设计01_哔哩哔哩_bilibili 音频电路设计 1、音频基本介绍 1.1、设备 1.1.1、音频接口 型号&#xff1a;ABA-JAK-038-K44 电脑主机上的音频输出插口&#xff0c;一个是粉色的&#xff0c;用来连接麦克风或话筒&#xff0c;一个是绿色的&#xff0c;用来连…

【数据结构与算法】:归并排序和计数排序

1. 归并排序 归并排序是一种效率仅次于快速排序的排序算法。它有非递归和递归两种实现方式(本文只讲述递归实现&#xff0c;非递归实现以后有专门的文章)。 其实&#xff0c;归并排序也叫外排序。它不仅可以对内存中的数据进行排序&#xff0c;还能对文件里的数据排序。 比如&…

网站压力测试和Locust

一、压力测试介绍 网站压力测试是一种评估网站性能、可靠性和稳定性的方法。它通过模拟大量用户同时访问网站,来测试网站的响应时间、吞吐量、资源利用率等指标,从而发现网站的潜在问题和瓶颈。下面我将从几个方面详细介绍网站压力测试: 1、压力测试的目的 评估网站在高并发…

路由器端口映射是什么意思?

路由器端口映射是一种网络配置技术&#xff0c;在私有网络中允许外部网络访问特定的服务或应用程序。通过将路由器的端口映射到内部客户端设备&#xff0c;可以实现从公共网络访问内部网络资源的目的。 天联组网介绍 天联是一款异地组网内网穿透产品&#xff0c;由北京金万维科…

【Qt】:常用控件(九:容器类控件)

常用控件 一.Group Box&#xff08;分组框&#xff09;二.Tab Widget&#xff08;标签页&#xff09; 一.Group Box&#xff08;分组框&#xff09; 使用QGroupBox实现一个带有标题的分组框.可以把其他的控件放到里面作为一组.这样看起来能更好看一点.&#xff08;换言之&…

复现bytetrack时,安装依赖项报错“: ERROR: Failed building wheel for lap

报错原因&#xff1a; lap 库的构建失败&#xff0c;因为缺少了 NumPy 库。 解决办法&#xff1a; 安装 NumPy 库&#xff1a;NumPy 是 Python 中用于科学计算的基础库&#xff0c;lap 依赖于它 pip install numpy 重新安装 lap 库&#xff1a; pip install lap

代码随想录|Day32|贪心算法 part02|● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

122.买卖股票的最佳时机II class Solution: def maxProfit(self, prices: List[int]) -> int: result 0 for i in range(len(prices) - 1): count prices[i1] - prices[i] if count > 0: result count return result 方法二&#xff1a;把if条件变成max class Solutio…

智能配电能效平台与照明系统在某地下污水处理厂中的应用

安科瑞薛瑶瑶18701709087 1、引言 随着互联网、芯片技术、通信传输的技术革新和成熟&#xff0c;智能照明已经广泛应用于居民生活和工业发展领域。传统的工业照明设计&#xff0c;常在门口附近设置集中控制箱&#xff0c;由控制箱内相应开关控制照明。当工厂面积较大&#xf…

ONERugged车载平板终端:提升港口运输水平

现代港口是国际贸易中至关重要的枢纽&#xff0c;而提高港口运输效率对于促进贸易流通和经济发展至关重要。近年来&#xff0c;车载平板技术的快速发展为港口运输行业带来了巨大的变革和机遇。车载平板的广泛应用不仅提高了港口的操作效率&#xff0c;还改善了货物跟踪、通信和…

Vue3中使用的富文本编辑器(详细实现流程)

文章目录 1. 前言2. 项目初始化3. 下载4. 使用富文本编辑器5. 注意点6. 效果图 1. 前言 有不少的前端需求都需要使用到富文本编辑器,但是富文本编辑器百花齐放,每次使用可能都会重新找一个编辑器,所以有了这篇文章. 当项目中需要使用到富文本编辑器时,可以直接按照这篇文章的步…

动态分区算法

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2024.04.09 Last edited: 2024.04.09 目录 动态分区算法 第1关&#xff1a;首次适应算法 任务描述 相关知识 内存分配 内存回收 编程要求…

chronyd服务

一、介绍 chronyd服务是CentOS8系统之后提供时间服务的应用&#xff0c;和之前的ntp服务功能是一样的。 chronyd服务的配置文件默认存在在/etc/chrony.conf中。 chronyd服务的开启方式和关闭&#xff1a; systemctl start chronyd systemctl status chronyd systemctl st…

每天好好学习java第一天--复习巩固基础

1.浮点数数据特殊&#xff1a; float z 2.0e8F; float类型要在后面加f或者F。但是double类型可以省略。 2.强制转换数据类型&#xff1a; 格式&#xff1a; (类型名)变量名 例 float z 2.0f; int x(int)z; 3.逻辑运算符 注意异或 4.条件运算符 每天学习一会java&…

性能分析-数据库与磁盘知识

数据库 数据库&#xff0c;其实是数据库管理系统dbms。 数据库管理系统&#xff0c; 常见&#xff1a; 关系型数据库&#xff1a; mysql、pg、 库的表&#xff0c;表与表之间有关联关系&#xff1b; 表二维表统一标准的SQL&#xff08;不局限于CRUD&#xff09;非关系型数据…

配置VM开机自启动

1. 在此电脑-右键选择“管理”-服务和应用程序-服务中找到VMware Workstation Server服务&#xff08;新版名称也可能是VMware自启动服务&#xff0c;自己找一下&#xff0c;服务属性里有描述信息的&#xff09;&#xff0c;将其启用并选择开机自动启动 新版参考官方文档&…

C语言 函数——函数原型

目录 如何合并成一个完整的程序&#xff1f; 函数原型与函数定义的区别 函数原型的作用 如何合并成一个完整的程序&#xff1f; 问题&#xff1a;在一个函数中调用另一个函数&#xff0c;需要具备哪些条件呢&#xff1f; 若函数的定义出现在函数调用之前 若函数的定义出现…