毕业设计(论文)-江苏电力建设第三工程公司物资管理系统设计与实现_第1页
毕业设计(论文)-江苏电力建设第三工程公司物资管理系统设计与实现_第2页
毕业设计(论文)-江苏电力建设第三工程公司物资管理系统设计与实现_第3页
毕业设计(论文)-江苏电力建设第三工程公司物资管理系统设计与实现_第4页
毕业设计(论文)-江苏电力建设第三工程公司物资管理系统设计与实现_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

专专 科科 毕毕 业业 论论 文文 江苏电力建设第三工程公司物资管理 系统 System of Jiangsu power construction third engineering company material management 学院名称: 宿迁学院 专业班级: 计算机应用于技术(2) 学生姓名: 指导教师姓名: 指导教师职称: 讲师 2011 年 6 月 宿迁学院, I 江苏电力建设第三工程公司物资管理系统江苏电力建设第三工程公司物资管理系统设计与实现 专业班级:计算机科学与技术计专(2)班 学生姓名: 指导教师: 职称:讲师 摘摘 要:要: 在信息时代的今天,计算机参与企业日常业务管理已经成为企业现代化建 设的当务之急。物资管理信息系统的设计开发正是适应了这种要求。物资管理 信息系统是典型的信息管理系统(MIS) ,其开发主要包括后台数据库的建立和 维护以及前端应用程序的开发两个方面,对于前者要求建立起数据一致性和完 整性强、数据安全性好的库,而对于后者则要求应用程序功能完备,易使用等 特点。 我们使用 oracle 公司的 myeclipse 开发工具,利用其提供的各种面向对象 的开发工具,用 mysql5.5 作为数据库管理系统。简单介绍了该系统的编程环境 和实现关系型数据库。在可行性研究和需求分析的基础上,对系统的设计方案、 功能模块、数据库设计和系统的测试等进行了较详细的论述。 本系统主要由物资种类管理、入库、出库的管理、物资的查询、供应商管 理、领料部门管理等功能,采用 mysql 小型型数据库,具备强大的数据存储、 查询功能,既能充分满足数据量和用户数的增长需要,又为不同管理层用户提 供了多角度数据查询,使企业管理人员可以随时掌握企业的经营状况。 关键词: 物资管理、myeclipse、Mysql 5.5、面向对象、系统开发、数据库 宿迁学院, II System of Jiangsu power construction third engineering company material management design and realization Abstract During this information times , combining computer with enterprise usual events management has become an emergent task that every enterprise must accomplish as soon as possible. Material management system is a typical information management system ( MIS ), which development includes the two aspects of the establishment of the database of backstage supporter and maintenance as well as the development of front application program mainly, for the former asking establishment, which takes data consistency with integrity the storehouse of good, strong, data safety, and for the latter asking application program function perfect, the characteristics such as use are easy. Via analysis. We use Visual Basic developing instruments of oracle Company, utilize its various kinds of target-oriented developing instruments of offered, Regard as the data base management system with Mysql5.5. Have introduced the programming environment of this system and realize the relevant database briefly. On the basis of analyzing in feasibility study and demand, have carried on more detailed argumentation to plan of design, function module, data design of storehouse and systematic test, etc. Of the system. This system is mainly managed by system management customer management, goods data management, stock management model, it adopt the Mysql5.5 large database, with a function of saving and searching data. It also satisfy the increasing demands of the customer and the date. It provides the function of data searching to different customers, so the managers of the company can control the condition of operating the business enterprise at any time. Key Words: Material management system 、myeclipse andMysql5.5、Face to the object、System development、Database 宿迁学院, 目录 引言1 1.1 课题背景 2 1.2 课题的意义 2 1.3 可行性分析 2 1.3.1 技术可行性.2 1.3.2 经济可行性.3 1.3.3 开发环境可行性.3 第二章 开发环境简介.4 2.1 总体开发环境 4 2.1.1 JDK 下载和安装.4 2.1.2 环境变量的设置.4 2.2 开发工具 4 2.3 使用 JDBC 连接数据库 .5 2.4 JAVA 开源 WEB框架STRUTS 介绍 6 2.4.1 struts 整体框架6 2.4.2 struts 工作原理6 2.4.3 基于 struts 的 MVC 三层模式介绍 .6 2.5 软硬件环境需求 8 第三章 开发语言和后台数据库介绍9 3.1 JAVA 语言简介9 3.2 MYSQL 数据库简介 9 3.3 SQL 语言介绍.11 3.4 实现 SQL 数据库系统 .12 3.4.1 Java 数据库基础 JDBC API 12 3.4.2 Java 数据库应用系统的实现13 3.5 JSP 技术及其特点17 第四章 系统总体设计18 4.1 设计目标 .18 4.2 设计系统的目标 .18 4.3 数据的描述 .18 4.3.1 静态数据18 4.3.2 动态数据 .19 4.4 系统整体流程图设计 .19 4.5 数据流图 .20 4.6 系统 E-R 图设计 .20 4.7 数据词典 .24 第五章 系统详细设计28 5.1 系统框架搭建 .28 宿迁学院, 5.1.1 structs 框架28 5.1.2 模型层、控制器层的实现 .28 5.1.3 业务逻辑层的实现 .28 5.1.4 页面设置 .29 5.2 乱码解决 .31 5.2.1 页面乱码31 5.2.2 数据库乱码 .32 5.3 系统界面实现 .32 5.3.1 登录界面32 5.3.2 导航页面 .33 5.3.3 数据插入界面 .33 5.3.4 数据插入成功界面 .34 5.3.5 数据删除界面 .34 5.3.6 数据查询界面 .35 5.4 页面具体实现过程 .36 5.5 系统代码实现 .36 5.5.1 数据库连接的实现 .36 5.5.2 表示层实现login 为例37 5.5.3 业务逻辑处理实现login 为例39 5.5.4 插入数据验证合法性的实现领料单插入数据为例 .41 5.5.5 查询数据分页的实现送料查询 .47 第六章 结论50 致谢.51 参考文献.52 宿迁学院, 1 引言 仓库在现实生活中用途十分广泛,各种商城、超市要利用仓库存放物资, 药房、医院等要利用仓库存放药品,企业、工厂等要利用仓库存放原材料、生 产成品,因此仓库的管理成了一项十分重要的工作。 人工管理仓库既费时又费力,而且容易造成混乱,严重时会影响商城、企 业的正常运作,造成恶劣的后果。随着信息技术的发展,办公自动化的普及, 如何快速,高效,便捷的管理仓库受到了高度的关注;因此为了解决这个问题 我们提供这个系统以满足仓库管理需求,本系统是基于江苏电力建设第三工程 公司的物资管理系统。 本系统模拟江苏电力建设第三工程公司的物资管理管理,系统主要针对于 日常库存信息的管理,包括物资管理、入库操作、入库查询统计、出库操作、 出库查询统计、库存查询统计等处理情况。用户可以通过相应的模块,对仓库 里的物品的基本情况和库存数量进行查询,管理员通过简单的操作即可轻松的 管理仓库,查询各项相关信息,并能进行入库和出库操作等。 通过江苏电力建设第三工程公司的物资管理系统的设计与实现,使我们巩 固和加深对数据库基础理论和基本知识的理解,进一步掌握了使用数据库进行 软件设计的基本思想和方法,提高了运用数据库理论解决实际问题的能力,锻 炼了实际动手能力、创新能力,培养了调查研究、查阅技术文献、资料、手册 以及编写文档的能力。 宿迁学院, 2 1.1 课题背景 在当今科技信息迅速发展的关键时期,许多企业在仓库管理上十分重视, 准确的掌握仓库的基本信息,有助于更好的物资管理和维护,对仓库里的物品 的基本情况和库存数量进行查询,管理员通过简单的操作即可轻松的管理仓库, 查询各项相关信息,并能进行入库和出库操作等。 人工管理仓库既费时又费力,而且容易造成混乱,严重时会影响商城、企 业的正常运作,造成恶劣的后果。随着信息技术的发展,办公自动化的普及, 如何快速,高效,便捷的管理仓库受到了高度的关注;因此为了解决这个问题 我们提供这个系统以满足仓库管理需求,本系统是基于江苏电力建设第三工程 公司的仓库管理系统。 通过仓库管理系统的设计与实现,使我们巩固和加深对数据库基础理论和 基本知识的理解,进一步掌握了使用数据库进行软件设计的基本思想和方法, 提高了运用数据库理论解决实际问题的能力,锻炼了实际动手能力、创新能力, 培养了调查研究、查阅技术文献、资料、手册以及编写文档的能力。 1.2 课题的意义 学习知识就是为了应用。而对于 Java 语言本身的基本语法及运用,在整个 系统的开发过程中涉及到 Java 及 java web 的大部分基本知识内容,如:事件、 线程、JDBC 数据库连接、web 方面的 MVC 模式等知识。 本次的访客及员工外出登记系统虽然没有其他现有登记系统功能那么强大, 但可以做为一个小的缩影。实现本系统所使用到的技术可以增强自己亲自动手 实践的能,它足以可以使我体会 java web 中 struts 框架的内涵。所以这次毕 业设计的课题我选择了访客及员工外出登记系统。 设计该登记系统是对大学 4 年来所学知识的一个总结,也为我将来从事软件开发打好语言的基础。 Java 语言是计算机专业重要的一门语言,但是要想很熟练的掌握 Java 语言 并非是件容易的事情,但是我愿意用我所学来的知识去努力的完成这个课题设 计,此次设计当中也可以给我更加的熟练的掌握 Java 语言的机会6。 1.3 可行性分析 1.3.1 技术可行性 宿迁学院, 3 经过大学三年的理论加实践学习,总体来讲基本掌握了开发系统所需要的 JAVA 语言以及 MySQL 数据库知识,在自己电脑上已经安装了开发环境 完全可以运行程序,而且学校分配了指导教师针对学生进行开发系统指导,这 样可以大大减少学生走弯路的次数,另外加上自己借鉴参考书籍和同学的相互 帮助,因此,在技术上是完全可行的。 1.3.2 经济可行性 对于整个系统而言,在系统未运行之前,初期投资比较小。花费相对而言 比较小,而且减少了数据的流通环节,提高了效率,又保证了各项数据的准确 性,适应了当前的发展形式。 1.3.3 开发环境可行性 我们采用 JAVA 开发工具。Java 是一种简单的,面向对象的,分布式的,解 释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。 Java 语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承, 但支持接口之间的多继承,并支持类与接口之间的实现机制,Java 语言是一个 纯的面向对象程序设计语言。最重要的一点是它具有很强的可移植性,大大降 低了开发的成本。Java 语言的优良特性使得它应用具有无比的健壮性和可靠性, 这也减少了应用系统的维护费用。 宿迁学院, 4 第二章 开发环境简介 本章说明的是论文的相关知识和技术,如总体开发环境、MyEclipse 开发 工具、插件工具、系统原理等进行介绍。 2.1 总体开发环境 JAVA 程序是运行与虚拟机之上的,故在开发之前首先要安装虚拟机(JVM) , 搭建开发环境。 2.1.1 JDK 下载和安装 JDK 中包含了 Java 开发中必需的工具,Java 程序的运行环境(JRE)和 JAVA 虚拟机(JVM)。故只需要安装 JDK 就可以解释运行 Java 程序。JDK 可以到 SUN 公司的官方网站上下载。 2.1.2 环境变量的设置 在安装好 JDK 后还要配置环境变量,然后才能运行 JAVA 程序。环境变量的 配置方法如下(Window XP 系统): 1右击“我的电脑” ,点击“属性” 。 2选择“高级”选项卡,点击“环境变量” 。 3在“系统变量”中,设置 3 项属性,JAVA_HOME、PATH 和 CLASSPATH(大小写无所谓) 。若已存在则点击“编辑” ,不存在则点击“新建” 。 4 JAVA_HOME 指明 JDK 安装路径,就是安装时所选择的路径(如 D:jdk1.6) ,此路径下包括 lib,bin,jre 等文件夹(此变量最好设置,因为 以后运行 tomcat,MyEclipse 等都需要依靠此变量) 。 Path 使得系统可以在任何路径下识别 java 命令,设为:%JAVA_HOME%bin CLASSPATH 为 java 加载类(class or lib)路径,只有类在 classpath 中, java 命令才能识别,设为: .;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar(要加.表示当前路径 (%JAVA_HOME%就是引用前面指定的 JAVA_HOME)1。 2.2 开发工具 MyEclipse 简介 宿迁学院, 5 MyEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本 身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。同时, MyEclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT) 。 虽然大多数用户很乐于将 MyEclipse 当作 Java IDE 来使用,但 MyEclipse 的目标不仅限于此。MyEclipse 还包括插件开发环境(Plug-in Development Environment,PDE) ,这个组件主要针对希望扩展 MyEclipse 的 软件开发人员,因为它允许他们构建与 MyEclipse 环境无缝集成的工具。由 于 MyEclipse 中的每样东西都是插件,对于给 MyEclipse 提供插件,以及 给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的 发挥场所。 这种平等和一致性并不仅限于 Java 开发工具。尽管 MyEclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。 MyEclipse 框架还可以用来作为与软件开发无关的其他应用程序类型的基础。 基于 MyEclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服 务和数据库访问的支持2。 2.3 使用 JDBC 连接数据库 JDBC(Java Database Connectivity)是一种可以执行 SQL 语言的 Java API。JDBC 由 Java 编程语言编写的类及接口组成,使用它可以将 Java 程序链 接到 Oracle、SQL Server、Sybase、IBM DB2、Informix、MySQL 等多种关系型 的数据库。程序员通过 JDBC 可以编写出具有平台无关性的数据库应用程序。 JDBC 的主要功能有以下几个方面。 1. 建立与数据库的连接。 向数据库发送请求,通过 SQL 语言操作数据库中的数据,包括查找、添加、 删除操作等。 宿迁学院, 6 2. 获取并处理数据库的返回的结果。 这些功能都是通过 JDBC 中的一系列接口来实现的,这些接口都在 java.sql 包中。其中主要的接口及作用如下。 1. DriverManager:数据库驱动程序的加载,以及与数据库连接的建立 2. Connection:建立与特定数据库的连接 3. Statement:向已经建立连接的数据库发送 SQL 语句,并在指定的连接 中处理该 SQL 语句。 4. ResultSet:用于处理数据库操作结果集3。 2.4 Java 开源 Web 框架 struts 介绍 2.4.1 struts 整体框架 基于 struts 的 MVC 模式即 Model-View-Controller 的缩写,是一种常用的 设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更 富于变化。Struts 是 MVC 的一种实现,它将 Servlet 和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts 继承了 MVC 的各项特性,并根据 J2EE 的特点,做了相应的变化与扩展4。 2.4.2 struts 工作原理 控制:struts 需要用到一个 XML 文件 Struts-config.xml,与之相关 联的 是 Controller,在 Struts 中,承担 MVC 中 Controller 角色的是一个 Servlet,叫 ActionServlet。 ActionServlet 是一个通用的控制组件。这个控 制组件提供了处理所有发送到 Struts 的 HTTP 请求的入口点。它截取和分发这 些请求到相应的 动作类(这些动作类都是 Action 类的子类) 。另外控制组件也 负责用相应的请求参数填充 Action From(通常称之为 FromBean),并传给动 作类(通常称之为 ActionBean) 。动作类实现核心商业逻辑,它可以访问 java bean 或调用 EJB。最后动作类把控制权传给后续的 JSP 文件,后者生成视图。 所有这些控制逻辑利用 Struts-config.xml 文件来配置。 宿迁学院, 7 2.4.3 基于 struts 的 MVC 三层模式介绍 视图(View):主要由 JSP 生成页面完成视图,Struts 提供丰富的 JSP 标签 库: Html,Bean,Logic,Template 等,这有利于分开表现逻辑和程序逻辑。 模型(Module):模型以一个或多个 java bean 的形式存在。这些 bean 分为 三类:Action Form、Action、JavaBean or EJB。Action Form 通常称之为 FormBean,封装了来自于 Client 的用户请求信息,如表单信息。Action 通常 称之为 ActionBean,获取从 ActionSevlet 传来的 FormBean,取出 FormBean 中的相关信息,并做出相关的处理,一般是调用 Java Bean 或 EJB 等。 控制(Controller):在 Struts 中,用户的请求一般以*.do 作为请求服务 名,所有的*.do 请求均被 指向 ActionSevlet,ActionSevlet 根据 Struts- config.xml 中的配置信息,将用户请求封装成一个指定名称的 FormBean,并 将此 FormBean 传至指定名称的 ActionBean,由 ActionBean 完成相应的业务操 作,如文件操作,数据库操作等。 每一个*.do 均有对应的 FormBean 名称和 ActionBean 名称,这些在 Struts-config.xml 中配置。 在一个典型的 Web 应用程序中,视图表现层是应用程序的前端,直接面向 最终用户。在这一层,采用 Struts 框架来构建 java Web 应用程序。Web 应用 程序不同于传统上的网站,这些网站通常仅提供静态页面,而 Web 应用程序可 以和数据库交互,当用户与系统交互的时候,业务逻辑可以给用户一个用户化 的响应。 在 Web 应用程序发展初期,Web 应用程序通常是基于 JSP(java Server Pages)的,使用 JSP 编写代码时通常会将读取数据库的代码、页面设计代码以 及控制流程代码都混合在一起。在实际的编码过程中,这种形式的编码方式给 将来维护人员的维护带来了很多不便,特别是对比较大的系统更是难以维护4。 后来在软件开发发展过程中出现了一种 MVC(Model-View-Controller)体 系结构。 1. Model 表示业务逻辑或者是数据库代码。 2. View 表示页面设计代码。 3. Controller 表示控制器,是 Web 执行流程的控制中心。 宿迁学院, 8 MVC 体系中,Controller 本质上是一个 Servlet,将客户端请求转发到相 应的 Action 类。Struts 是一个为开发基于模型(Model)-视图(View)-控制 器(Controller)模式应用架构的开源框架。 Struts 还为我们在开发中提供了很多不错的功能: 1. 管理用户的请求,作出相应的响应。 2. 提供一个流程控制器,委派调用业务和其他上层处理。 3. 处理异常。 4. 装配需要显示的数据模型。 5. 执行页面验证。 6. 直接与数据库通讯的代码4。 2.5 软硬件环境需求 根据系统的基本功能需求,以及客户的信息系统环境,计划采用 B/S 即: 浏览器/服务器模式来构建管理系统,这样方便维护和使用。同时,根据客户对 技术的具体建议,计划采用 J2EE 技术开发。 由于本系统不涉及复杂的数据分析和出理,为了减低开发难度,根据本系 统的基本功能,计划采用 J2EE 模型 1 的结构来开发,具体的软硬件环境要求如 下。 1. 硬件环境:普通办公用个人计算机作为服务器即可。 2. 操作系统:可以采用 Windows XP 以上系统。 3. 数据库系统:采用 MySQL。 4. web 服务器:采用 Tomcat 5.0 以上系统。 5. java 运行环境:采用 JDK 1.5 以上版本。 6. 客户端:采用浏览器工具即可。 宿迁学院, 9 第三章 开发语言和后台数据库介绍 3.1 JAVA 语言简介 Java 语言是 Sun MicroSystems 公司于 1995 年正式命名并推出的一种面 向对象的编程语言-OOP(abbr.Object Oriented Programming)。Sun 公司说: Java 程序设计语言被设计成是 by programmers for programmers,其随着 Internet 的发展而广为流行。用它开发的系统“一次开发,到处运行”的特色 以及程序开发设计时所体现出的面向对象的思想深深地触动着人们。它的语言 简洁、集多种程序设计语言之大成,且面向对象、具有可移植性、分布性、安 全性、高性能等特色。Java 在向 Internet/Intranet,甚至计算机世界的各个 领域渗透,慢慢改变着人们的思维。而今 Internet 热浪一浪高过一浪,从外 部世界走向企业内部形成 Intranet,促进了 Java 技术的利用开发。计算机业 界中的 IBM、ORACAL 、APPLE、Sun、Netscape 五家公司还联合推出“网络计算 机(NC-1)”规范。抛开“Wintel”臃肿不堪的体系结构,使用户端价格低廉、 易于使用,并成为能够连接网络的简单计算机-NC(Network Computer),即所说 的“瘦客户”机,NC 支持 Java 虚拟机(JVM),能够运行 Java 开发的应用程序 (Application)和小程序(Applet)并支持多媒体应用。NC 和 Java 的结合诞生 了新的时代:网络计算机时代。就连 Sun 的冤家对头 Microsoft 的比尔.盖茨也 不得不承认:“Java 是长时间以来最卓越的程序设计语言”5。 3.2 MySQL 数据库简介 MySQL 是最受欢迎的开源 SQL 数据库管理系统,它由 MySQL AB 开发、发布 宿迁学院, 10 和支持。MySQL AB 是一家基于 MySQL 开发人员的商业公司,它是一家使用了一 种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL 是 MySQL AB 的注册商标。 MySQL 是一个快速的、多线程、多用户和健壮的 SQL 数据库服务器。MySQL 服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置 (mass-deployed)的软件中去。MySQL 网站( )提供了关于 MySQL 和 MySQL AB 的最新的消息6。 1. MySQL 是一个数据库管理系统 一个数据库是一个结构化的数据集合。它可以是从一个简单的销售表到一 个美术馆、或者一个社团网络的庞大的信息集合。如果要添加、访问和处理存 储在一个计算机数据库中的数据,你就需要一个像 MySQL 这样的数据库管理系 统。从计算机可以很好的处理大量的数据以来,数据库管理系统就在计算机处 理中和独立应用程序或其他部分应用程序一样扮演着一个重要的角色。 2. MySQL 是一个关系数据库管理系统 关系数据库把数据存放在分立的表格中,这比把所有数据存放在一个大仓 库中要好得多,这样做将增加你的速度和灵活性。 “MySQL”中的 SQL 代表 “Structured Query Language” (结构化查询语言) 。SQL 是用于访问数据库的 最通用的标准语言,它是由 ANSI/ISO 定义的 SQL 标准。SQL 标准发展自 1986 年以来,已经存在多个版本:SQL-86,SQL-92,SQL:1999,SQL:2003,其中 SQL:2003 是该标准的当前版本。 3. MySQL 是开源的 开源意味着任何人都可以使用和修改该软件,任何人都可以从 Internet 上下载和使用 MySQL 而不需要支付任何费用。只要自己愿意,就可以研究其源 代码,并根据你的需要修改它。MySQL 使用 GPL(GNU General Public License,通用公共许可),在 hpt://licenses 中定义了自己在不 同的场合对软件可以或不可以做什么。如果自己觉得 GPL 不爽或者想把 MySQL 的源代码集成到一个商业应用中去,就可以向 MySQL AB 购买一个商业许可版本。 4. MySQL 服务器是一个快的、可靠的和易于使用的数据库服务器。 宿迁学院, 11 MySQL 服务器原本就是开发比已存在的数据库更快的用于处理大的数据库 的解决方案,并且已经成功用于高苛刻生产环境多年。尽管 MySQL 仍在开发中, 但它已经提供一个丰富和极其有用的功能集。它的连接性、速度和安全性使 MySQL 非常适合访问在 Internet 上的数据库。 5. MySQL 服务器工作在客户/服务器或嵌入系统中 MySQL 数据库服务器是一个客户/服务器系统,它由多线程 SQL 服务器组成, 支持不同的后端、多个不同的客户程序和库、管理工具和广泛的应用程序接口 (APIs)。 MySQL 也可以是一个嵌入的多线程库,你可以把它连接到你的应用中而得到一个小、 快且易于管理的产品6。 3.3 SQL 语言介绍 SQL(Structured Query Language),即结构化查询语言,是关系数据库的 标准语言语言。SQL 是一个通用的、功能极强的关系数据库语言。SQL 语言有着 非常突出的优点,主要是: 1综合统一 2高度非过程化 3面向集合的操纵方式 4以同一种语言结构提供多种使用方式 5语言简洁,易学易用 非过程化语言:SQL 是一个非过程化的语言,因为它一次处理一个记录, 对数据提供自动导航。SQL 允许用户在高层的数据结构上工作,而不对单个记 录进行操作,可操作记录集,所有 SQL 语句接受集合作为输入,返回集合作为 输出。SQL 的集合特性允许一条 SQL 语句的结果作为另一条 SQL 语句的输入。 SQL 不要求用户指定对数据的存放方法, 这种特性使用户更易集中精力于 要得到的结果;所有 SQL 语句使用查询优化器,它是 RDBMS 的一部分,由它决 定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿 使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。 统一的语言:SQL 可用于所有用户的 DB 活动模型,包括系统管理员、数据 库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。以前 宿迁学院, 12 的数据库管理系统为上述各类操作提供单独的语言,而 SQL 将全部任务统一在 一种语言中。 所有关系数据库的公共语言:由于所有主要的关系数据库管理系统都支持 SQL 语言,用户可将使用 SQL 的技能从一个 RDBMS(关系数据库管理系统)转到另 一个,所有用 SQL 编写的程序都是可以移植的7。 3.4 实现 SQL 数据库系统 3.4.1 Java 数据库基础 JDBC API Java 语言在数据库应用方面,特别在基于 Web 的 B/S 结构的在线数据库应 用方面的烦琐复杂配置等,并不能使用户和程序开发双方都十分满意。SunSoft 虽提供了用 Java 语言编写成的 Java 与数据库的接口规范 JDBC(Java DataBase Connectivity,而 JavaSoft 说 JDBC 并不代表什么),使 Java 程序可以通过统一 标准规范的 JDBC API 来与不同的数据库通信。确保了“100%纯 Java”的解决 方案。JDBC API 定义了 Java 中的类和接口,表示数据库连接、SQL 指令、结 果集合等。它允许 Java 程序员发送 SQL 指令并处理结果。JDBC API 提供两种 主要接口:一是面向开发人员的 java.sql 程序包,使得 Java 程序员能够进行 数据库连接,执行 SQL 查询,并得到结果集合。Java2 的 java.sql 包提供了 6 个类和 18 个接口,下文将介绍;另一是面向底层数据库厂商的 JDBC Drivers ,目前为止,Java2 的 JDBC Drivers 仅提供下述四种类型的数据库驱动方式, 且各有利弊: 1. JDBC-ODBC bridge plus ODBC driver 方式:JDBC-ODBC 桥接方式利用 微软的开放数据库互连接口(ODBC API)同数据库服务器通讯,客户端计算机首 先应该安装并配置 ODBC driver 和 JDBC-ODBC bridge 两种驱动程序。这是 Applets 访问你的数据库最可能的解决方式,但这对 Internet 和 Intranet 用 户而言简直是一个非常令人讨厌和麻烦的解决方案。 2. Native-API partly Java driver 方式:这种驱动方式将数据库厂商的 特殊协议转换成 Java 代码及二进制类码,使 Java 数据库客户方与数据库服务 器方通信。例如:Oracle 用 SQLNet 协议,DB2 用 IBM 的数据库协议。数据库厂 宿迁学院, 13 商的特殊协议也应该被安装在客户机上。这也是令人讨厌和麻烦的解决方案。 3. JDBC-Net pure Java driver 方式:这种方式是纯 Java driver。数据 库客户以标准网络协议(如 HTTP、SHTTP)同数据库访问服务器通信,数据库访 问服务器然后翻译标准网络协议成为数据库厂商的专有特殊数据库访问协议(也 可能用到 ODBC driver)与数据库通信。对 Internet 和 Intranet 用户而言这 是一个理想的解决方案。Java driver 被自动的,以透明的方式随 Applets 自 Web 服务器而下载并安装在用户的计算机上。 4. Native-protocol pure Java driver 方式:这种方式也是纯 Java driver。数据库厂商提供了特殊的 JDBC 协议使 Java 数据库客户与数据库服务 器通信。然而,将把代理协议同数据库服务器通信改用数据库厂商的特殊 JDBC driver。这对 Intranet 应用是高效的,可是数据库厂商的协议可能不被防火 墙支持,缺乏防火墙支持在 Internet 应用中会存在潜在的安全隐患。 综上四种方式中,只有第三、四种方式的驱动支持 Applet 的零安装。因为 JDBC drivers 完全用 Java 写成,并从 Web 服务器上随 applet 下载。为了支 持零安装,驱动程序应该被放在 Web 上,并与 applet 在相同目录。而第四种 存在安全隐患,第三种产品为数不多,现今较成熟的 IDS JDBC driver 属于此 种( ),但也要用到 ODBC driver 辅助。 即便如此,利用 Java 技术开发单机环境应用程序,局域网范围或 Intranet 环 境下的应用程序、动态 Web 应用(Live Intranet)等,Java 语言是高效、安全、 稳定的。Java 语言已赢得了众多厂商的支持,基于其上的 Java API-JDBC 也发 展迅速。Sun 承诺任何 Java Applet 或 Java 应用软件都能够与数据库结合,并 且仍将不遗余力的支持未来 Java 技术的发展。Java 语言的跨平台特性,使之 成为 Internet 和 Intranet 环境下开发数据库应用系统的理想选择方案8。 3.4.2 Java 数据库应用系统的实现 1. 设置数据库的连接 为了利用 JDBC,你将需要一个数据库服务器和一个数据库驱动器。对 JDBC 而言,数据库服务器的类型无关紧要,JDBC 会提供一个独立于数据库服 宿迁学院, 14 务器的访问数据库的方法。这是 JDBC 的主要优势所在。 还需要一个数据库驱动器,用来提供 JDBC 与你的数据库的连接。作者选 用了较可能的 JDBC-ODBC bridge 方式。为此需设置 32-bit ODBC 的数据源, 选择 System DSN(数据可被多用户访问,User DSN 不同) ,增加新的数据源, 配置新数据源的路径为 Action.mdb 数据库服务器的所在位置9。 安装完成,Java 程序员可以进行编制程序的阶段。首先程序员引用 java.sql 包中相应的类与接口来进行对 JDBC 驱动器的管理:用 Class 类中的 forName() 方法装入 JDBC 驱动器,以 JDBC-ODBC bridge 方式为例,装入 JDBC 驱动执 行的语句为 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);用 DriverManager 类中 getDrivers()方法返回所有安装在你的计算机中的 JDBC 驱动器, getConnection()建立与数据库的连接等。getConnection()方法 提供下面三种形式: getConnection(String url) getConnection(String url,String userID,String password) getConnection(String url,Properties arguments) 其中字符串 url 表示数据库服务器所在处的特殊的 URL。URL 是被用来与 不同的数据库驱动建立连接的统一网络资源,其形式如下: jdbc:subprotocol:subname 所有的 JDBC 数据库协议开始于 jdbc:。Subprotocol 是被用来辨别 JDBC 驱 动方式的。例如:JDBC-ODBC bridge 用 jdbc:odbc:subname 这种用户协议形式, IDS JDBC driver 用 jdbc:ids:subname 形式。数据库协议的 subname 标识数据库 并且与 subprotocol 和 JDBC 驱动方式有关。例如,以 JDBC-ODBC bridge 方式, 我用下面的 URL 形式建立与数据源 Tend 建立连接: jdbc:odbc:tend getDrivers()和 getConnection()方法是 DriverManager 类中最重要的方法,还有其 它一些方法在此略9。 宿迁学院, 15 2. 与数据库进行连接 用 DriverManager 类的 getConnection() 方法建立起与数据库连接, getConnection()返回一个对象,此对象是 java.sql 包中的 Connection 接口 对象。该接口定义了与之连接的数据库交互的一些方法、常量等,这些方法用 来管理数据库的连接、获得连接的信息、提交数据库处理事件并且预处理可执 行的 SQL 语句。下面是 Connection 接口的一些重要的方法: close()-关闭一个数据库连接 getMetaData()-返回一个 DatabaseMetaData 接口对象,该接口能被用来 获得有关数据库的详细信息,包括数据库结构和数据库内容等。 createStatement()-创建一个 SQL 语句对象。 prepareStatement()-用 SQL 字符串创建一个 SQL 预处理语句对象。预处理语 句对象是可以被高效执行的预编译过的 SQL 语句。 下面提供一段程序,实现了 JDBC 的驱动及数据库的连接,供参考: import java.sql.*; import java.util.*; class ConnectApp public static void main(String args) try / Load the JDBC-ODBC bridge driver 方式 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); String url=“jdbc:odbc:tend“; / 连接到数据库 Connection connection=DriverManager.getConnection(url); / 得到数据库的信息 宿迁学院, 16 DatabaseMetaData meta=connection.getMetaData(); 3. 利用结果集工作 数据库查询被执行后,查询的结果作为一个两维(行、列)数据表返回。 ResultSet 接口被用来提供访问查询结果的数据表,查询结果被当作 ResultSet 对 象而返回,ResultSet 对象提供“指针”,指针每次访问数据库表的一行。当 ResultSet 对象从查询中返回时,指针初始指向数据表的第一行,ResultSet 的 next() 方法用来移动指针到数据表的下一行,如果到达表尾,next() 方法返回 假的布尔值-false,否则为真。ResultSet 接口提供大量的获得数据的方法,这些 方法返回数据表中任意位置的数据,不论是基本数据类型或引用数据类型的数 据。getMetaData()方法返回 ResultSetMetaData 接口对象,该对象包含数据表行 的信息。ResultSetMetaData 接口提供变量和从 ResultSet 对象获取信息的方法, getColumnCount() 方法返回数据表的列数,getColumnName() 方法返回提取的 数据库中的列名称,即数据库字段名,getColumnType() 方法返回列的 SQL 类 型,ResultMetaData 中其它的方法被用访问列的额外属性,如列的显示宽度、 数据格式及读/写状态等。注意 ResultSet 中的列其始索引号为 1 而不是 0。下面 提供一段程序: static void displayResults(ResultSet r) throws SQLException / 获得数据结果集合 ResultSetMetaData rmeta = r.getMetaData();、 / 确定数据集的列数,亦字段数 int numColumns=rmeta.getColumnCount(); / 输出每一个数据值 for(int i=1;i=numColumns;+i) if(inumColumns) System.out.print(rmeta.getColumnName(i)+“ | “); Else 宿迁学院, 17 System.out.println(rmeta.getColumnName(i); while(r.next() for(int i=1;i=numColumns;+i) if(inumColumns) System.out.print(r.getSt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论