




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、公交查询系统论文关键词:B/S结构计算机网络数据库SQL语言JSPWEB服务器 论文摘要:本文结合公交查询系统的实际需要,通过对B/S模式、JDK开发环境及工具、Web发布服务、数据库以及SQL语言的深入学习及实践,主要完成了公交查询系统的需求分析、数据库设计、应用程序设计的工作。第一章 引 言§1.1数据库技术数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。优秀的数据库设计是应用成功的基石。万万丈高楼平地起,数据库设计如同高楼的基石,是开发高品质应用的前提。数据库管理系统(DBMS)
2、0; 数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、查询、更新及各种控制,都是通过DBMS进行的。 在不同的计算机系统中,由于缺乏统一的标准,即使同种数据模型的DBMS,它们在用户接口、系统功能方面也常常是不相同的。 用户对数据库进行操作,是由DBMS把操作从应用程序带到外部级、概念级、再导向内部级,进而操作存储器中的数据。DBMS的主要目标,是使数据作为一种可管理的资源处理。
3、167;1.2 公交查询系统系统功能1、基于浏览器(B/S模式)的公交线路分类查询;2、数据的录入、修改、添加、删除。系统运行环境 该系统采用Browser/Server模式进行设计: 在服务器上运行Web发布服务器、数据库程序,服务器操作系统为WindowsNT/2000/XP/2003 server,客户机操作为Windows9×/ NT/2000/XP/2003,其上运行浏览器程序,服务器和客户机可为同一设备。系统开发工具该系统采用JDK Java环境进行开发,数据库服务器为MySQL,WEB发布服务器为Tomcat Server;
4、客户端使用浏览器运行程序,整个系统调试成功。§1.3 本文所作工作首先介绍了城市公交查询系统的应用背景、开发环境以及选用的开发工具与数据库的关系,阐明了计算机互联网络的概念。并对数据库的体系结构、DBMS进行了介绍;介绍关系型数据库的基本概念,着重说明了几个关键概念的定义;然后对SQL语言作了一个介绍说明;从特点和功能入手,介绍Java、JSP;并且介绍了B/S模式的概念、特点;用软件工程的方法分析城市公交查询系统,对整个系统进行了需求分析、功能模块划分,并通过ER图对数据库进行概念设计;对城市公交查询系统的具体设计,描述了查询、录入模块的实现过程。第二章 数据
5、库理论基础§2.1 关系型数据库数据库的设计理论关系数据库的设计理论主要包括三个方面的内容:数据依赖、范式,模式设计方法。其中数据依赖起着核心的作用。1. 函数依赖(Functional dependency , FD)的定义设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任何一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“Y函数依赖于X” ,记作XY。如果XY,并且对于X的任一真子集X ,都有Y 不函数依赖于X ,则称“Y完全函数依赖于X” ,记作X f Y 。若XY,但Y不完全函数依赖于
6、X,则称“Y部分函数依赖于X” ,记作X P Y 。如果XY,YZ,且Y X, X不函数依赖于Y,则称“Z传递函数依赖于X”。2. 范式在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,依此类推。为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。3. 模式设计方法一个好的模式设计方法应
7、符合下列三条原则:表达性:涉及到两个数据库模式的等价性问题,即数据等价和依赖等价,分别用无损联接和保持函数依赖来衡量。分离性:是指属性间的“独立关系”应该用不同的关系模式表达。独立联系是我们所考虑的“基本信息单位”。实际上分离就是清除存储异常和数据冗余现象。如果能达到这个目的,就分离。分离的基准就是一系列范式,分离与依赖等价有时是不可兼容的。最小冗余性:要求在分解后的数据库能表达原来数据库的所有信息这个前提下实现。目的就是节省存储空间,提高对关系的操作效率,清除不必要的冗余。但要注意,在实际使用中,并不一定要达到最小宙余。因为有时带点冗余对于查询处理是有好处的。关系模式的方法基本上可以分为分解
8、与合成两大类。分解型算法要求输入一个初始模式集和依赖集,而结果满足数据等价要求。对于合成型算法只要求输入初始依赖集,结果满足依赖等要求。但它们依据的基本思想是共同的,即独立的联系独立表示§2.2 SQL语言介绍SQL(Structured Query Language)即“结构式查询语言”。SQL虽然名为查询语言,但实际上具有定义、查询、更新和控制等多种功能。由于它使用方便、功能丰富、语言简单易学,很快得到应用和推广。 SQL的组成SQL主要分成四个部分:1)数据定义:这一部分也称为“SQLDDL”,用于定义SQL模式、基本表、视图和索引。2)数据操纵:这一部分也称为“SQLDML”
9、。它分为数据查询和数据更新两类。其中数据更新又分成插入、删除、和修改三种操作。3)数据控制:这一部分包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。4)嵌入式SQL的使用规定:这一部分内容涉及到SQL语句嵌入在宿主语言程序中使用的规则。 SQL的数据查询n SELECT语句的语法SELECT目标表的列名或列表达式序列FROM基本表和(或)视图序列WHERE行条件表达式GROUP BY列名序列HAVING组条件表达式ORDER BY列名ASC|DESC句法中表示该成分可有,也可无。整个语句的执行过程如下:a) 读取FROM子句中基本表、视图的数据,执行笛卡尔积操作
10、。b) 读取满足WHERE子句中给出的条件表达式的元组。c) 按GROUP子句中指定列的值分组,同时提取满足HAVING子句中组条件表达式的那些组。d) 按SELECT子句中给出的列名或列表达式求值输出。e) ORDER子句对输出的目标表进行排序,按附加说明ASC升序排列,或按DESC降序排列。SELECT语句中,WHERE子句称为“行条件子句”,GROUP子句称为“分组子句”,HAVING子句称为“组条件子句”,ORDER子句称为“排序子句”。 SQL的数据更新SQL的数据更新包括数据插入、删除和修改等三种操作1)数据插入a) 元组值的插入I
11、NSERTINTO基本表名(列名表)VALUES(元组值)或者INSERTINTO基本表名(列名表)(TABLE(元组值),(元组值),)前一种格式只能插入一个元组,后一种格式可以插入多个元组。2)数据删除SQL的删除操作是指从基本表删除元组,其语法如下:DELETEFROM基本表名WHERE条件表达式其语义是从基本表中删除满足条件表达式的元组。3)数据修改当需要修改基本表中元组的某些列值时,可以用UPDATE语句实现,其句法如下:UPDATE基本表名SET列名值表达式,列名值表达式WHERE条件表达式其语义是:修改基本表中满足条件表达式的那些元组中的列值,需修改的列值在SET子句中指出。第三
12、章 技术介绍 §3.1 JSP技术介绍在 Sun 正式发布 JSP(JavaServer Pages) 之后,这种新的 Web 应用开发技术很快引起了人们的关注。JSP为创建高度动态的 Web 应用提供了一个独特的开发环境。按照 Sun 的说法, JSP 能够适应市场上包括 Apache WebServer 、 IIS4.0 在内的 85% 的服务器产品。 JSP运行环境 Sun 公司的 JSP 主页上可以下载 JSP 规范,这些规范定义了供应商在创建 JSP 引擎时所必须遵从的一些规则。 在运行JSP示例页面之前,要注意安装JSWDK的目录,特别是“
13、work”子目录下的内容。执行示例页面时,可以在这里看到 JSP 页面如何被转换成 Java 源文件,然后又被编译成class文件(即Servlet)。JSWDK软件包中的示例页面分为两类,它们或者是JSP文件,或者是包含一个表单的HTML文件,这些表单均由JSP代码处理。与ASP一样,JSP中的Java代码均在服务器端执行。因此,在浏览器中使用“查看源文件”菜单是无法看到JSP源代码的,只能看到结果HTML代码。所有示例的源代码均通过一个单独的“examples”页面提供。 JSP页面示例 下面分析一个简单的 JSP 页面。可以在 JSWDK 的 exampl
14、es 目录下创建另外一个目录存放此文件,文件名字可以任意,但扩展名必须为.jsp。从下面的代码清单中可以看到,JSP页面除了比普通 HTML 页面多一些 Java 代码外,两者具有基本相同的结构。Java代码是通过 < % 和 %> 符号加入到 HTML 代码中间的,它的主要功能是生成并显示一个从 0 到 9 的字符串。在这个字符串的前面和后面都是一些通过HTML代码输出的文本。 < HTML> < HEAD>< TITLE>JSP 页面 < /TITLE>< /HEAD> < BODY> < % pag
15、e language="java" %> < %! String str="0" %> < % for (int i=1; i < 10; i+) str = str + i; %> JSP 输出之前。 < P> < %= str %> < P> JSP 输出之后。 < /BODY> < /HTML>这个 JSP 页面可以分成几个部分来分析首先是 JSP 指令。它描述的是页面的基本信息,如所使用的语言、是否维持会话状态、是否使用缓冲等。
16、 JSP 指令由 < % 开始, %> 结束。在本例中,指令“ < % page language="java" %> ”只简单地定义了本例使用的是 Java 语言(当前,在 JSP 规范中 Java 是唯一被支持的语言)。 接下来的是 JSP 声明。 JSP 声明可以看成是定义类这一层次的变量和方法的地方。 JSP 声明由 < %! 开始, %> 结束。如本例中的“ < %! String str="0" %> ”定义了一个字符串变量。在每一项声明的后面都必须有一个分号,就象在普通 Java 类
17、中声明成员变量一样。 位于 < % 和 %> 之间的代码块是描述 JSP 页面处理逻辑的 Java 代码,如本例中的 for 循环所示。 最后,位于 < %= 和 %> 之间的代码称为 JSP 表达式,如本例中的“ < %= str %> ”所示。 JSP 表达式提供了一种将 JSP 生成的数值嵌入 HTML 页面的简单方法。会话状态维持是 Web 应用开发者必须面对的问题。有多种方法可以用来解决这个问题,如使用 Cookies 、隐藏的表单输入域,或直接将状态信息附加到 URL 中。 Java Servlet 提供了一个在多个请求之间持
18、续有效的会话对象,该对象允许用户存储和提取会话状态信息。 JSP 也同样支持 Servlet 中的这个概念。在 Sun 的 JSP 指南 中可以看到许多有关隐含对象的说明(隐含的含义是,这些对象可以直接引用,不需要显式地声明,也不需要专门的代码创建其实例)。例如 request 对象,它是 HttpServletRequest 的一个子类。该对象包含了所有有关当前浏览器请求的信息,包括 Cookies , HTML 表单变量等等。 session 对象也是这样一个隐含对象。这个对象在第一个 JSP 页面被装载时自动创建,并被关联到 request 对象上。与 ASP 中的会话对象相似, JSP
19、 中的 session 对象对于那些希望通过多个页面完成一个事务的应用是非常有用的。为说明 session 对象的具体应用,接下来我们用三个页面模拟一个多页面的 Web 应用。第一个页面( q1.html )仅包含一个要求输入用户名字的 HTML 表单,代码如下:< HTML>< BODY>< FORM METHOD=POST ACTION="q2.jsp">请输入您的姓名:< INPUT TYPE=TEXT NAME="thename">< INPUT TYPE=SUBMIT VALUE="
20、;SUBMIT">< /FORM>< /BODY>< /HTML>第二个页面是一个 JSP 页面( q2.jsp ),它通过 request 对象提取 q1.html 表单中的 thename 值,将它存储为 name 变量,然后将这个 name 值保存到 session 对象中。 session 对象是一个名字 / 值对的集合,在这里,名字 / 值对中的名字为“ thename ”,值即为 name 变量的值。由于 session 对象在会话期间是一直有效的,因此这里保存的变量对后继的页面也有效。 q2.jsp 的另外一个任务是询问第二个问
21、题。下面是它的代码:< HTML>< BODY>< % page language="java" %>< %! String name="" %>< %name = request.getParameter("thename");session.putValue("thename", name);%>您的姓名是: < %= name %>< p>< FORM METHOD=POST ACTION="q3.jsp&qu
22、ot;>您喜欢吃什么 ?< INPUT TYPE=TEXT NAME="food">< P>< INPUT TYPE=SUBMIT VALUE="SUBMIT">< /FORM>< /BODY>< /HTML>第三个页面也是一个 JSP 页面( q3.jsp ),主要任务是显示问答结果。它从 session 对象提取 thename 的值并显示它,以此证明虽然该值在第一个页面输入,但通过 session 对象得以保留。 q3.jsp 的另外一个任务是提取在第二个页面中的用户输入
23、并显示它:< HTML>< BODY>< % page language="java" %>< %! String food="" %>< %food = request.getParameter("food");String name = (String) session.getValue("thename");%>您的姓名是: < %= name %>< P>您喜欢吃: < %= food %>< /BODY&
24、gt;< /HTML>§3.2 B/S系统介绍传统的C/S架构(客户机/服务器,Client/Server)方式中,业务逻辑位于客户端,每完成一项事务,都要频繁地访问数据库,使得网络上数据流量非常大,对于慢速连接的用户,甚至无法使用。为弥补上述C/S架构的缺陷,人们发展出了三层或多层架构:客户机中间件(应用服务器)数据库服务器(ClientMiddle wareDatabase Server)。在这种架构中,业务逻辑放置于中间件服务器上,大量的数据流也位于中间件和数据库之间,而客户机只是简单地发出请求,中间件接受请求后进行事务处理并将处理的结果返回给客户机,这一
25、类型的客户机也称之为“廋客户”。B/S架构实际上是三层架构的一种,所不同的是客户端就是目前几乎每台电脑中都有的网络浏览器,而中间件则是Web应用服务器。注意到主要的业务逻辑均由位于Web应用服务器上的Servlet和JSP程序或EJB来处理。 B/S架构具备极大的优越性 1、面向电子商务时代的技术将来所有的应用系统几乎都在互联网或企业内部广域网上运行,发展电子商务成为企业不可避免的信息化道路。B/S架构的软件正是电子商务的基石,正是这类软件使得移动办公和分布式协同工作真正成为现实。无论在世界的那个角落,只需要一台可以联网的设备(计算机、PDA甚至手机)都可以方便地与客户联系和与他人协同工作。2
26、、软件操作、维护和升级方式的革命软件系统的改进和升级越来越频繁,B/S架构的产品在维护和升级方面具备显著的优势。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只对服务器进行,通过远程连接服务器,异地的运维人员甚至于可以做到远程维护和升级,这对人力、时间、费用的节省是相当惊人的。所有的客户端只是浏览器,所有的操作都和上网浏览网页类似,使用者接受的培训也仅限于业务逻辑而无需将大量精力浪费学习软件操作上。3、系统整合无论是办公自动化(OA)系统,人力资源(HR)系统,客户关系管理(CRM)系统,ERP等等,发展的趋势是不断融合。而采用统一的B/S结构开发的产品无论是现
27、在还是将来都是最好的选择,它提供了真正意义上无缝地与其它系统进行整合的方案。采用JAVA语言实现 1、跨越平台的限制尽管目前Windows桌面系统一统天下,但是服务器系统采用的操作系统却具有多样性,包括Linux、Unix、Windows NT/2000Server等系统都可以实现企业级应用。即便是桌面系统,中国政府出于安全和国家战略的考虑,希望有自己的操作系统,Linux的出现使这种想法变成了现实。传统的C/S架构的软件需要针对不同的操作系统开发不同版本的软件,面对众多的操作系统和软件快速的升级换代,采用这一架构开发软件,对于企业的IT投资无疑是一种巨大的风险。而采用Java语言实现的B/S
28、架构的软件产品真正做到了“一次编写处处运行(Write Once, Run Anywhere)” ,对企业而言,可以规避将来更换操作系统所带来的风险。2、健壮的系统Java语言实现的软件具有天然的健壮性。这是Java语言自身的特性保证的。利用Java写成的软件几乎不可能造成系统崩溃,这正是安全性要求很高的企业级应用所不可或缺的特性。第四章 公交查询系统设计分析根据数据库系统生存期的设计方法,从数据库应用系统和开发的全过程来考虑,将数据库应用系统设计分为以下几个阶段:1)规划;2)需求分析;3)概念设计;4)逻辑设计5)物理设计§4.1应用需求分析 &
29、#160; 要设计一个良好的公交查询系统,就必须首先明确该应用环境对系统的要求。公交查询系统的应用背景为:方便市民搭乘公交车出行;手动(目前)、自动(将来)、及时更新查询数据。因此,该系统需满足以下几方面需求: 1、查询功能:系统需要提供几种不同方式的查询手段,以实现灵活方便地管理整个系统。 2、数据的更新修改: 更新:系统允许管理员级别的用户对数据进行更新、修改并且存盘操作; 编辑:系统允许管理员级别的用户对数据进行编辑、删除的操作,保证现库的真实性
30、与实时性。 3、打印输出(暂未实现):系统可以将用户查询到的内容动态地生成报表,并打印输出。§4.2 系统功能模块划分公交查询系统功能划分模块如下:查询系统模块该模块实现公交查询功能。可实现按起点中转站终点查询查询和按线路查询两种查询方式。录入系统模块该模块实现数据的录入、修改、删除功能。§4.3 系统数据库设计 概念设计 概念设计的目标是产生反映城市公交查询系统需求的数据库概念结构,即概念模式。概念模式是独立于数据库逻辑结构,独立于支持数据库的DBMS,不依赖于计算机系统的1、E
31、R模型 ER模型是对现实世界的一种抽象。它的主要成分是实体、联系和属性。使用这三种成分,我们可以建立许多应用环境的ER模型。 2、 ER模型的操作 在利用ER模型进行数据库概念设计的过程中,常常需要对ER图进行种种变换。这些变换又称为ER模型的操作,包括实体类型、联系类型和属性的分裂、合并和增删等等。 3、利用ER方法的数据库概念设计 利用ER方法进行数据库的概念设计,可以分成三步进行:首先设计局部ER模式
32、,然后把各局部ER模式综合成一个全局ER模式,最后对全局ER模式进行优化,得到最终的ER模式,即概念模式。 设计局部的ER模式 通常,一个数据库系统都是为多个不同用户服务的。各个用户对数据的观点可能不一样,信息处理需求也可能不同。在设计数据库概念结构时,为了更好地模拟现实世界,一个有效的策略是“分而治之”,即先分别考虑各个用户的信息需求,形成局部概念结构,然后再综合成全局结构。在ER方法中,局部概念结构又称为局部ER模式,其图形表示称为ER图。 实体和属性的定义如下:
33、0; 站点(站点编号,站点名称,站点类别) 线路(线路编号,始发时间,终发时间,备注) 线路站点对应(线路编号,站点名称) SHAPE * MERGEFORMAT E/
34、R图表示4、联系定义ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。5、设计全局ER模式所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。1)确定公共实体类型为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结
35、构中的公共实体类型。在这一步中我们仅根据实体类型名和键枕认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。2)局部ER模式的合并合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。3)消除冲突冲突分为三类:属性冲突、结构冲突、命名冲突。设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型4)全局ER模式的优化在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理
36、需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。逻辑设计由于概念设计的结果是ER图,DBMS一般采用关系型,因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。由于关系模型古有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。设计结果是一组关系模式的定义。1)导出初始关系模式2)关系子模式子模式是用户所用到的那部分数据的描述。除了指出用户用到的数据外,还应指出数据与概念模式中相应数据的联系,即指出概念模式与子模式之间的对应性。
37、0;第五章 公交查询系统应用程序设计(部分) §5.1查询模块的功能实现<% page contentType="text/html; charset=ISO8859_1" %><% page import="java.sql.*,java.util.*,com.lanyuer.util.*;" %><%List routes = null;Connection connection;com.lanyuer.route.route_Manager route_Manager = com.lanyuer.route.
38、route_Manager.getInstance();connection = DataConnectionManager.getInstance().getConnection();try routes = route_Manager.selectes(connection); catch (Exception e) throw e; finally if (connec
39、tion != null) connection.close(); connection = null; %><html><head><title>公交查询</tit
40、le><meta http-equiv="Content-Type" content="text/html; charset=ISO8859_1"></head><SCRIPT language=JAVASCRIPT type=text/javascript><!-function loginSubmit(theObj) if (theObj.fromStep.value = "" && theObj
41、.toStep.value != "") alert("始发站不能为空"); theObj.fromStep.focus();
42、 return false; else if (theObj.fromStep.value != "" && theObj.toStep.value = "")
43、0; alert("终点站不能为空"); theObj.toStep.focus(); return false;
44、; else if (theObj.fromStep.value = "" && theObj.toStep.value = "") alert("始发站和终点站不能为空");
45、0; theObj.fromStep.focus(); return false; return true;/ -></SCRIPT><link rel=
46、"STYLESHEET" type="text/css" href="./css/all.css"><style type="text/css"><!-body font-size: 9pttable font-size: 9pta:active font-size: 9pt; color: #000000;A:hover font-size: 9pt; COLOR: #000000; TEXT-DECORATION: nonea:link
47、0; font-size: 9pt; color: #000000;a:visited font-size: 9pt; color: #000000;-></style><body bgcolor="#000000" text="#000000" topmargin="0" leftmargin="0" background="./image/back.gif"><table width="100%" height="
48、;100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="100%" height="100%" align="center"> <table width="600" height="400" border=&
49、quot;0" cellspacing="0" cellpadding="0" background="./image/login_bg.jpg"> <tr> <td height="100%" width="100%" align="center&q
50、uot; valign="top"> <table width="200" border="0" cellspacing="0" cellpadding="0"> <form name=
51、"login" method="post" action="selectStep.jsp" target="_parent" onsubmit="return loginSubmit(this)"> <tr>
52、; <td height="120" align="center" colspan="2"> </td>
53、160; </tr> <tr> <td height="24">始发站</td&g
54、t; <td height="24"><font color="#FFFFFF"> <input
55、type="text" name="fromStep" size="16" maxlength="16" class=myinput2 value=""> </font> </td>
56、 </tr> <tr> <td height="24&q
57、uot;>终点站</td> <td height="24"><font color="#FFFFFF">
58、60; <input name="toStep" type="text" size="16" maxlength="16" class=myinput2 value=""> </font> </td>
59、 </tr> <tr> <td
60、 height="30"> </td> <td height="30"> &l
61、t;input type="submit" value=" 提交 " class="myinput"> <input type="reset" value=" 重填 " class="myinput">
62、0; </td> </tr> </form>
63、160; <form name="login" method="get" action="route.jsp" target="_parent"> <tr>
64、160; <td height="24">线路</td> <td height="24"> &
65、#160; <select name="cRouteCode" style="width:110px"><%Iterator iterator = routes.iterator();while(iterator.hasNext() com.lanyuer.route.route route = (com.lanyuer.route.route)iterator.next
66、();%> <option value="<%=route.getcRouteCode()%>"><%=route.getcRouteCode()%>路</option><%> &
67、#160; </select> </td> </tr&
68、gt; <tr> <td height="30"> </td>
69、0; <td height="30"> <input type="submit" value=" 提交 " class="myinput">
70、60; </td> </tr> </for
71、m> </table> </td> </tr> <tr>
72、; <td height="180" align="center"> </td> </tr> </table> </td> </tr></table>&
73、lt;/body></html>§5.2管理更新的功能实现公交站点管理<% page contentType="text/html; charset=ISO8859_1" %><% page import="java.util.*,java.sql.*,com.lanyuer.util.*;" %><jsp:useBean id="reader" scope="request" class="com.lanyuer.util.JspParamRea
74、der"/><%reader.setRequest(request);List stopsets = null;Connection connection;com.lanyuer.route.stopset_Manager stopset_Manager = com.lanyuer.route.stopset_Manager.getInstance();com.lanyuer.route.stopset stopset1 = null;connection = DataConnectionManager.getInstance().getConnection();try
75、 if (reader.getString("delRoute_Pk","").length() > 0) stopset_Manager.deleteByPk(connection,com.lanyuer.route.stopset_Pk.valueOf(reader.getString("delRoute_Pk",""); stopsets = stopset_M
76、anager.selectes(connection); if (reader.getString("stopset_Pk","").length() > 0) stopset1 = stopset_Manager.selectByPk(connection,com.lanyuer.route.stopset_Pk.valueOf(reader.getString("stopset_Pk",""); catch (Exception e)
77、 throw e; finally if (connection != null) connection.close(); connect
78、ion = null; %><html><head><title>公交查询</title><meta http-equiv="Content-Type" content="text/html; charset=ISO8859_1"></head><link rel="STYLESHEET" type="text/css" href="./css/all
79、.css"><style type="text/css"><!-body font-size: 9pttable font-size: 9pta:active font-size: 9pt; color: #000000;A:hover font-size: 9pt; COLOR: #000000; TEXT-DECORATION: nonea:link font-size: 9pt; color: #000000;a:visited font-size: 9pt; co
80、lor: #000000;-></style><body bgcolor="#000000" text="#000000" topmargin="0" leftmargin="0" background="./image/back.gif"><table width="100%" height="100%" border="0" cellspacing="0" cellpaddin
81、g="0"> <tr> <td width="100%" height="100%" align="center"> <table width="600" height="400" border="0" cellspacing="0" cellpadding="0">&
82、#160; <tr> <td height="100%" width="100%" align="center" valign="top"> <table width=&quo
83、t;500" border="0" cellspacing="0" cellpadding="0"> <tr> <td h
84、eight="24">编号</td> <td align="center">名称</td> <td al
85、ign="center">类型1/0</td> <td align="center">操作</td> </tr>
86、; <tr><form action="stopset_save.jsp"><% if (stopset1 != null) %> <td height=
87、"24"><input type="hidden" name="pkValue" value="<%=stopset1.getPrimaryKey().toString()%>"><input type="text" name="iStopNo" value="<%=stopset1.getiStopNo()%>"></td>
88、60; <td align="center"><input type="text" name="cStopName" value="<%=stopset1.getcStopName()%>"></td>
89、60; <td align="center"><input type="text" name="iType" value="<%=stopset1.getiType()%>"></td> <td ali
90、gn="center"><input type="submit" value="保存"></td><% else %> <td height="24"><input type="hidden" nam
91、e="pkValue" value=""><input type="text" name="iStopNo" value=""></td> <td align="center"><input type="text&qu
92、ot; name="cStopName" value=""></td> <td align="center"><input type="text" name="iType" value=""></td> <td align="center"><input type="submit" value="保存"></td><% %></form>
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年石油化工安装工程内部承包合同示范文本
- 二零二五版智能家居装修设计与施工合同
- 二零二五年度车辆抵押担保汽车保险合同
- 二零二五版电视剧剧本创作合同终止协议
- 2025版高端酒店场地租赁合同模板
- 2025版商业地产场地租赁分成合同示范文本
- 2025版智能仓储厂房租赁安全协议范本
- 2025版早餐店连锁经营合作协议
- 2025版仓储物流园区建设承包管理合同样本
- 二零二五年度工业厂房消防喷淋系统升级改造合同
- 2024 入党积极分子预备党员发展对象培训考试题库答案
- 水库三个责任人培训课件
- 糖尿病护理和管理
- 党的理论知识考试题库及答案(2025年)
- 《子宫颈癌筛查规范(2025年版)》解读
- 2025年广东省中考化学真题(解析版)
- 照明组装生产车间试题带答案
- 财务部门半年工作复盘
- 江苏南京金陵中学2024~2025学年高一下册期末考试数学试题学生卷
- 福建福州第八中学2024~2025学年高一下册期末数学试题
- 供电系统安全培训
评论
0/150
提交评论