2.3.1 主流数据库产品
目前市场上数据库的主流厂商及产品有IBM DB2、Microso ft SQ L SERVER 2000、ORACLE 9i、S ybase。
IBM是通过DB2与WebSphere、Tivo li和Lotus四大品牌共同提供电子商务基础架构,而自己并不开发应用软件,目前一些ERP厂商、CRM 厂商以及电子商务软件厂商都与IBM建立了合作关系,将IBM 公司的数据库作为其应用软件的开发平台。Oracle则截然不同,它在自己的数据库平台上为用户开发了电子商务套件,其中包括ERP、CRM和SCM等企业应用软件。它认为这样可以使用户直接获得一整套解决方案,而不必考虑集成问题,而且,通过一家厂商就可以获得全部的服务和支持,避免在集成上的昂贵开销。Sybase公司作为客户端/服务器的倡导者,其开发工具PowerBuilder拥有众多的开发者。还有一部分不可忽视的是免费的数据库, 比如MYSQL等。
2.3.2Microsoft SQ L Server 2000概述
Microsoft SQL Server 2000是一个关系数据库管理系统(RDBMS),作为微软在Windows 系列平台上开发的数据库,一经推出就以其易用性得到了很多用户的青睐,相信大多数将自己的业务建立
- 9 -
哈尔滨工程大学学士学位论文
在Windows平台上的用户都会对它有相当的亲切感。今天,我们就来谈谈您所关注的数据库解决方案之微软篇。区别于Fo xPro、Access 小型数据库,SQL Server是一个功能完备的数据库管理系统。它包括支持开发的引擎、标准的SQL语言、扩展的特性(如复制、OLAP、分析)等功能。而像存储过程、触发器等特性,也是大型数据库才拥有的。可应用于各种商业组织及专业数据库和应用开发环境中。它的如下特点决定了本系统为什么采用Microso ft SQL Server 2000开发数据库服务器。
2.3.3 Microsoft S QL Se rver 2000的特点
1.易于使用
SQL Server 2000 提供了Enterprise Manager及Que ry Analyzer 等强大工具,让DBA的设计、开发、部署及管理数据库解决方案时得心应手。这些工具能自动完成许多极富挑战性的工作,以一种简单的方式来完成各种复杂的任务。SQL Server 2000能与各种开发工具,如Visual Basic, Visual InterDev 等无缝集成,使得开发者能迅速的设计和开发C/S或B/S解决方案。
2.相对于7.0的新特性
Microsoft SQL Server 2000是在SQL Server 7.0的基础上对性能、可靠性、质量以及易用性进行了扩展。SQL Server 2000中包含许多新特性,这些特性使其成为针对电子商务、数据仓库和在线商务解决方案的卓越的数据库平台。其增强的特性包括对丰富的扩展标记语言(XML)的支持、综合分析服务以及便捷的数据库管理。
3.电子商务支持
在使用由Microsoft SQL Server2000关系数据库引擎的情况下,XML数据可在关系表中进行存储,而查询则能以XML格式将有关结果返回。此外,XML支持还简化了后端系统集成,并实现了跨防火墙的无缝数据传输。你还可以使用Hypertext Transfer Protocol(超文本传输协议,HTTP)来访问SQL Server 2000,以实现面向SQL Server 2000数据库的安全Web连接和无须额外编程的联机分析处理(OLAP)
- 10 -
哈尔滨工程大学学士学位论文
多维数据集。
4.数据仓库
Microsoft SQL Server2000非常明显的改进就是增加了OLAP(联机分析处理)功能,这可以让很多中小企业用户也可以使用数据仓库的一些特性进行分析。OLAP可以通过多维存储技术对大型、复杂数据集执行快速、高级的分析工作。数据挖掘功能能够揭示出隐藏在大量数据中的倾向及趋势,它允许组织或机构最大限度的从数据中获取价值。通过对现有数据进行有效分析,这一功能可以对未来的趋势进行预测。
5.增强的在线商务
Microsoft SQL Server 2000简化了管理、优化工作,并且增强了迅速、成功的部署在线商务应用程序所需的可靠性和伸缩性。其中,用以提高可靠性的特性包括日志传送、在线备份和故障切换群集。在伸缩性方面的改进包括对多达32颗CPU和64 GB RAM的支持。通过自动优化和改进后的管理特性--诸如数据文件尺寸的自动管理、基于向导的数据库拷贝、自动内存管理和简化的故障切换群集安装与管理,在线商务应用程序能够被迅速部署并有效管理。
6.构筑"敏捷性商务"
所谓"敏捷性商务" 就是能够打破内部和外部的商业界限,对迅速改变的环境做出快速反应。。微软已经与关键的合作伙伴建立起了战略关系,创造出了能够与许多供应商的产品实现整合的解决方案,因而企业用户并不需要做出"要么完全接受,要么全部不要"的承诺。在部署解决方案的过程中,企业用户不一定要拆除原有的设备从头。敏捷商务让企业用户能够充分利用现有的系统,自主决定所需的硬件和软件解决方案以及由谁来提供,伸缩自如、游刃有余
2.4 JSP对数据库的操作
2.4.1 JDBC技术概述
一个独立于特定的数据库管理系统(DBMS-independent)用户界面是实现DBMS应用的广泛性和多样化的最快的方式,Java语言应
- 11 -
哈尔滨工程大学学士学位论文
用程序开发者正是基于此观点,提出了一个通用的一般的SQL数据库访问和存储结构,这就是JDBC。
JDBC是支持基本SQL功能的一个通用底层的应用程序接口,它在不同的数据库功能模块的层次上提供了一个统一的用户界面。这使得程序员只需要面对简单的数据库界面就可进行操作,使得独立于DBMS的Java应用程序的开发工具和产品的出现成为可能,同时也提供了多样化的数据库连接方式。
2.4.2 JDBC的结构
JDBC主要有两种接口,分别是面向程序开发人员的JDBC API 和面向底层的JDBC Drive AP I
JDBC API 是一系列抽象的接口,它使应用程序员能够进行数据库的连接,执行SQL语句,并且得到返回结果。
下面是它的一些重要的接口。
Java.sq l.DriveManager用来装载驱动程序并且为创建新的数据库连接提供支持。
Java.sq l.Co nnection完成对某一指定数据库连接功能。
Java.sq l.Statement在一个给定的连接中作为执行SQL声明的容器。
Java.sq l.Prep aredStatement用于执行预编译的SQL声明。
Java.sq l.Callab leS tatement用于执行数据库中存储过程的调用。
Java.sq l.ResultSet控制对于给定声明去得结果列的途径。
JDBC Driver API是面向驱动程序开发商的编程接口,对于大多数数据库驱动程序来说,仅仅实现JDBC API提供的抽象类就可以了。
JDBC驱动程序根据其实现方式分为4种类型:
1.JDBC-ODBC bridge
JDBC-ODBC桥驱动程序,将JDBC 调用转换为ODBC的调用。
2.native-API partly-Java driver
本地库Java驱动程序,将JDBC调用转换成对数据库的客户端
- 12 -
哈尔滨工程大学学士学位论文
API的调用
37838225bcd126fff7050b16-protocol all-Java driver(JDBC Proxy)
独立于DBMS的网络协议的Java驱动程序,将JDBC调用转
换为独立于特定数据库的网络协议。
4.native-protoco l all-Java driver
本地协议的Java驱动程序,将JDBC调用转换为特定数据库的
网络协议。
使用前两类JDBC驱动程序进行JDBC调用是与具体数据库相关,使用后两类驱动程序进行JDBC调用是与具体的数据库无关的。
2.4.3 通过JDBC访问数据库
2.4.
3.1加载驱动程序
为了与特定的数据库相连,JDBC必须加载相应的驱动程序。可以通过设置Java属性中的sq l.driver来指定驱动程序列表,这个属性是一系列用冒号隔开的driver类的名称。此外,还可以使用Class.forName方法显式加载一个驱动程序。
在本系统中即是采用的这种方法:
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
即直接加载sun公司提供的JDBC-ODBC brid ge驱动程序,由驱动程序负责向DriverManager登记。在与数据库相连接时,DriverManager将试图使用此驱动程序。
2.4.
3.2建立连接
DriverManager类的getCo nnectio n方法用于建立与某个数据源的连接。本系统中使用的语句:
String url="jdbc:odbc:jsp";
Connection
conn=DriverManager.getConnection(url,"sa","");
来与数据源jsp建立连接,若连接成功,则返回一个Connec tion类的对象c onn。以后对这个数据源的操作都是基于c onn对象的。
- 13 -
哈尔滨工程大学学士学位论文
2.4.
3.3操作数据库
在JDBC中是通过执行SQL语句来达到操作数据库的目的。对查询语句的执行方法可以分为3类,分别对应Statement, PreparedStatement和Callab leStateme nt对象。
Stateme nt对象主要用于一般查询语句的执行;PreparedStatement对象用于执行预编译的查询;CallableSta teme nt 对象用于执行数据库中的存储过程。
在执行查询语句之前必须首先建立一个Sta teme nt对象。Connec tion类的createStatement方法用于建立一个Sta teme nt对象。例如:
Statement stamt=conn.createStatement();
在Statement对象上可以使用execQue ry方法来执行一个查询语句。它的返回值是一个ResultSet类的对象。例如:
ResultSet rs=stamt.e xecQuery(“selec t * from s upp lier”);
对数据库进行更新操作包括插入,修改和删除纪录、创建和删除表、以及增加和删除某些列。这些操作对应于SQL语句中的INSERT,UPDATE,DELETE和CREATE,DROP等操作,对数据库的更新操作也是在一个Statement对象上完成的,但使用的是exec ute Update方法。
例如:
stamt.executeUpdate(“delete from supplier where suppid=?1?”);
2.4.
3.4检索结果集
执行SQL查询语句的结果都是返回一个ResultSet类的对象。要想让用户得到查询结果,必须对ResultSet对象进行处理。
ResultSe t对象包括一个由查询语句返回的表,这个表中包含所有的查询结果。对ResultSet对象的处理必须逐行进行。
ResultSe t对象维护一个指向当前纪录的指针。最初,这个指针指向第一行之前。可以通过ResultSet的ne xt方法移动指针指向下一个记录。
- 14 -
哈尔滨工程大学学士学位论文
ResultSet类的getXXX方法可以从某一列中获得结果。并将结果集中的SQL数据类型转换为它所返回的Ja va数据类型。其中XXX 是JDBC中的Java数据类型。
- 15 -
哈尔滨工程大学学士学位论文
第3章系统设计
3.1 系统综述
本系统适用于中小型企业和商业,用于管理进货、销售、库存和帐务统计。它主要包括供货商、客户、员工和货品等各个方面信息的管理;各种单据的录入、查询、修改和删除;库存货品的查询、盘点;各种帐务的录入、查询和统计;以及对使用本系统的用户进行管理。
考虑到应用本系统的用户构成状况,本系统采用了分级的用户管理体系。这样既能保证用户对系统的控制,还能保证用户数据的保密性,从而满足了系统的企业要求。
本系统采用全中文的用户界面,功能强大,操作简单,可以满足不同层次的用户的使用,使之尽早发挥其功能。
3.2 功能介绍
本系统由基本管理系统,进货管理系统、销售管理系统、库存管理系统、统计查询系统和用户管理系统六个部分构成,功能模块划分如图3.1所示。
图3.1系统功能模块划分
- 16 -
哈尔滨工程大学学士学位论文
3.2.1 基本信息管理模块
基本信息管理模块将供货商、客户、货品、员工等基本信息统一管理,包括各种信息的录入、查询、修改和删除。
1.供货商管理:可以设置并管理供货商及生产部门档案,档案信息包括客户(部门)名称、地址、联系人、联系电话、传真、邮政编码、开户银行、银行帐号、网址、EMAIL地址及备注信息。
2.客户管理:可以设置并管理客户档案,档案信息包括客户(部门)名称、地址、联系人、联系电话、传真、邮政编码、开户银行、银行帐号、纳税号、网址、EMAIL地址及备注信息。
3.货品档案管理档案信息包括货品名称、编号、货品描述、计量单位、进货价、零售价、批发价(可以设置3种不同批发价)。
4.仓库类别设置:允许设置和管理多个仓库。
5.员工设置:设置并管理员工档案。
6.收付款方式设置:设置各种收付款结算方式。
7.税率设置:设置纳税种类及纳税率。
8.收款期限设置:设置销售应收款收款期限。
9.运输方式设置:设置货品运输方式。
10.货品出库类别设置:设置货品出库类别,区分正常出库、赠品出库、破损出库等。
3.2.2 进货管理模块
进货管理模块将进货申请、进货订单、进货收料及供应商管理等功能结合、实现完善的供应商档案和供应商信息管理。

