java数据库销售管理系统实验分析报告完整版附代码.docx
《java数据库销售管理系统实验分析报告完整版附代码.docx》由会员分享,可在线阅读,更多相关《java数据库销售管理系统实验分析报告完整版附代码.docx(109页珍藏版)》请在冰豆网上搜索。
java数据库销售管理系统实验分析报告完整版附代码
java数据库销售管理系统实验报告完整版(附代码)
作者:
日期:
大连海事大学本科生实验报告
数据库原理-操作实训
院(系):
交通运输管理学院
专业:
课程名称:
电子商务数据库原理
学号:
2220113494
学生:
周慧敏
任课教师:
贺琳
完成日期
:
2013年12月
1.实验目的
掌握数据库模式设计,依据实际要求设计表结构,建立表的关系;结合一定的
开发工具实现数据库应用程序的开发。
2.实验环境
2.1硬件环境:
处理器:
Intel(R)Core(TM)i3CPUM380@2.53GHz2.53GHz
安装内存:
(RAM):
2GB(1.86GB可用)
2.2软件环境
操作系统:
Windows7
数据库管理系统:
微软公司的SQLServer2005
开发工具:
Eclipse
3.需求分析
销售管理系统,可用于企业的销售信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。
该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成销售信息的添加,查询,修改,删除的操作。
用ODBC驱区动实现前
台Java与后台SQL数据库的连接。
Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。
SQLServer2005数据库高效安全,两者结合可相互利用各
自的优势。
该系统实现的大致功能:
1.用户登陆界面。
该界面可以选择使用者的身份,“系统管理员,基本档案管理员,业务员”。
不同的身份有不同的操作界面和功能权限。
ID号和密码输入正确即可登录。
2.系统管理员界面,拥有最高权限。
提供了客户信息管理、产品信息管理、订单信息管理、
发货管理与签收管理等功能。
3.基本档案管理员界面。
提供了客户信息管理、产品信息管理等功能。
4.业务员界面。
提供了订单信息管理、发货管理与签收管理等功能。
5.登录的用户信息分别存储在SQL数据库的“unpw表”中,如果用户信息不存在这个表中,
将会无权利登录本管理系统。
6.保证了本销售管理系统的安全性。
系统功能图如下:
4.概念结构设计
根据以上对系统的需求分析,系统设计,本系统使用的数据库实体分别为客户信息实体,产品信息实体,订单信息实体,发货单实体,签收单实体。
1:
客户信息实体
客户信息实体包括客户名称、单位地址、联系电话、地址、开户银行、银行账号、发票抬头、所在区域等属性。
客户信息实体的E-R图如图所示。
品
3:
签收单实体
签收单实体包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量单价、运费、总价、收货日期等属性,E-R图如图所示。
2:
发货单实体
发货单实体包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量单价、运费、总价、发货日期等属性,E-R图如图所示。
E-R
5:
产品信息实体
产品信息实体主要包括产品名称、规格、型号、操作系统、产品描述、产品分类等属性。
图如图所示。
unpw
qx
产品信
7
un、pw、qx等属性,E-R图如图所示。
4:
unpw实体
unpw实体包括
操作)
6:
订单信息实体
订单信息实体主要包括客户名称、联系人、联系电话、发货地址、最后到货期限(日期)以及产品名称、型号、数量、产品要求等属性。
E-R图如图所示。
实体属性表:
实体
属性
客户信息
客户名称、单位地址、联系电话、地址、开户银行、银行账号、发票抬头、所在区域
产品信息
产品名称、规格、型号、操作系统、产品描述、产品分类
订单信息
客户名称、联系人、联系电话、发货地址、最后到货期限(日期)以及产品名称、型号、数量、产品要求
签收单
客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、收货日期
发货单
客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、发货日期
unpw(用户)
un(登录名)、pw(密码)、qx(用户)
产
单位
所在
1
签收单
运费
总价
运费
5.逻辑结构设计
(1)表-dbo.客户信息(客户信息表)
客户信息表包括客户名称、单位地址、联系电话、地址、开户银行、银行帐号、发票抬头、所在区域等信息。
户信县«-c
仏6发货单轰-Tbd订单信息s
数1B类型
允许空
nchar(lO)
B
单位地扯
nchar(lO)
凰
联系电话
nchar(lO)
地址
nchar(lO)
开户银行
nchar(lO)
0
银行账号
nchar(lO)
S
发票抬头
ndiar(lO)
所在区城
ndiar(lO)
g]
B
(2)表-dbo.产品信息(产品信息表)
产品信息表包括产品名称、规格、型号、操作系统、产品描述、产品分类等信息。
表-dbo严品信亘表-dba签处表•dbo客户信息表
鱷类型
允魁
nchar[10)
B
nchar(lO)
型号
nchar[10)
酬系统
ndw(10)
产品分类
ndiar(20)
ndidr(U)}
B
(3)表-dbo.订单信息(订单信息表)
订单信息表包括客户名称、联系人、联系电话、发货地址、最后到货期限(日期)以及产品名称、型号、数量、产品要求等信息。
表-Ubd订单信宜表列名
-dt>D”=显僖息表-dbo.-^Jr^^B丟
数据类型
允诈空
nchar(W)
联系人
ndiar[10)
ffl
联系电话
nchar(lO)
團
发货地址
ndiar(lO)
El
最后到货期限
nctiar(ia)
[3
产品名称
ndlar(10)
0
型号
nchar(ia)
國
敎里
int
产品要求
nchar(ia)
画B
(4)表-dbo.发货单信息(发货单表)
发货单表主要包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、发货日期等信息。
也春-dbo.il单债愿養-dbo产品信昱春
列名数娠粪型允諒空
(5)表-dbo.签收单信息(签收单表)
签收单表主要包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、收货日期等信息。
Sm>6签收单農•dbo<^dbo.at^>曩
列名数拯类型咒许空
(6)表-dbo.unpw(用户表)
用户表包括un、pw、qx等信息
表-dbo.unpw擴要
列窑教拥类型
|^b■■■»■■m■■■■■»■■■ri■■■■■Huaihibibimain■■■>■■«■■■»■■■■!
■1!
^
»jin?
diar(10)
pwchar(10)
甲qxint
6.数据库实现
(1)数据库关系图
(2)SQ语句实现
数据表的创建:
(i)客户信息表创建:
createtable客户信息表(
客户名称nchar(10)notnullprimarykey,单位地址nchar(10),
联系电话nchar(10),地址nchar(10),
开户银行nchar(10),
银行账号nchar(10),
发票抬头nchar(10),
所在区域nchar(10),
)
(ii)产品信息表创建:
createtable产品信息表(
产品名称nchar(10)notnullprimarykey,规格nchar(10),
型号nchar(10),
操作系统nchar(10),
产品描述nchar(10),
产品分类nchar(10),
)
(iii)订单信息表创建:
createtable订单信息表(
客户名称nchar(10)notnullprimarykey,联系人nchar(10),
联系电话nchar(10),
发货地址nchar(10),
最后到货期限nchar(10),
产品名称nchar(10),
型号nchar(10),
数量int,
产品要求nchar(10),
)
(iv)发货单表创建:
createtable发货单表(
客户名称nchar(10)notnullprimarykey,联系人nchar(10),
联系电话nchar(10),
发货地址nchar(10),地址nchar(10),
产品名称nchar(10),
型号nchar(10),
数量int,
单价int,
运费int,
总价int,
发货日期nchar(10),
)
(v)收货单表创建:
createtable收货单表(
客户名称nchar(10)notnullprimarykey,联系人nchar(10),
联系电话nchar(10),
发货地址nchar(10),地址nchar(10),
产品名称nchar(10),
型号nchar(10),
数量int,
单价int,
运费int,
总价int,
收货日期nchar(10),
)
(vi)管理员信息表创建:
createtableunpw表(qxintnotnullprimarykey,unvarchar(12)notnuII,pwvarchar(12)notnull
)
7.应用系统设计实现
(1)用户登录模块
(2)各用户操作模块
(i)系统管理员操作模块厂曲幘害胃理案统I口
系绩管理员
存户信息管理
(ii)基本档案管理员操作模块
基本档案管理员
|客户信息管理
|产品信慝管理
退出管理系锐
(iii)业务员操作模块
广曰鞋些苔理垂综〔口」|btfW
业势员
订单信息管理
发货管理婆收管理
退站管理丢绩
L
(3)系统管理员登录
在登陆界面选择“系统管理员”入系统管理员管理界面。
系统管理员
表。
表中存在的管理员才允许登录
登录界面
用户,
密码二
甬色:
燮录
角色,输入正确的ID和密码。
验证成功则可进
ID号和登录密码存在数据库中的管理员信息
凹j犍第普理至烷三|1・旦『
系统官理員
客户信息管理J
产品信—|
订羊信息管理|
发煲管理|签吹萱理[I
退岀管理乘统
(i)点击客户信息管理,弹出如下界面:
(ii)点击显示按钮后,会出现数据库里保存的客户信息:
&客户信息莒理
13加]删险储孜HJ显示
善户窖称
甲位地扯
联系电话
开户蟆行
慎行胀号
发專拾头
斫在区堰
Am/
□G
10086
Hei
ICBC
23456
Hei
Bob
DC
95533
Ji
ABC
13245
Ji
Mi畑
DR
12345
Liao
CBC
32451
ban
Tom
□MU
12580
Liao
CCB
12345
Liao
(iii)点击增加按钮,弹出如下界面,输入要增加的客户信息,成功后会弹出增加成功的提示窗口:
容户名称三张三
确定
发票拾头;
所在区域二Liao
(iv)增加客户信息成功后客户信息管理界面会增加一行客户信息,如图所示:
區客户信邑背3亘[=I曲
増加刪除陸洗查闻显示
容户容称
单位地址
联系电话
地址
开户银行
银行账号
岌票抬头
所在区域
Amy
□G
10006
Hei
ICBC
23456
Hei
Bob
□C
95533
Ji
ABC
13245
Mike
DR
12345
Liao
CBC
32451
Liao
Tom
DMU
12530
Liao
CCB
12345
Liao
张三
海事
12530
Liao
ABC
66654
Liao
(V)选中一条客户信息,点击删除按钮,成功后会出现删除成功的提示窗口:
(vi)成功删除Ton客户的信息后,客户信息管理界面变化如下:
焙加删睫陆眈查舸軽示
卑户無称
单位地址
联乗电话
开户银行
帳行羸号
垸票枱头
所在区I症
Amy
DG
10086
Hei
ICBC
23456
Hei
Bob
DC
955-33
Ji
ABC
13245
Ji
Mike
DR
12345
Lias
cec
32451
□爭D
张三
莓辜1258Q
Liau
ABC
66654
Liao
(vii)选中一行客户信息,点击修改按钮,出现如下界面,输入要修改的信息,成
功后弹出修改成功的提示窗口:
(此处修改了客户Tom勺联系电话)
X
(viii)点击查询按钮,弹出如下窗口:
在文本框中输入“Hei“,即可查询所在区域为”Hei“的客户信息:
其他模块与客户信息管理模块类似,均能实现信息的查询、修改、删除、增加、显示等功能,在此不再赘述;点击退出系统即可完成本次操作。
厂匾铠售善理票统
系绒管理员
存户信层管理
经过系统一系列的增删改查操作之后,sqlsever2005数据库上的客户信息表同时也发生了改变:
单删11
辭电话
删
开户艙
谎砒号
新头
航在或
Tool
DMJ
125H
Liao
cce
12345
IUL
Liao
Ain/
DG
100B6
Hei
ICBC
J456
AU/
He
Bob
DC
95533
J
ABC
13245
AUZ
JI
DR
1ZH5
Liao
CBC
咖1
NUU.
LidO
NULL
Mil
Mil
Mil
NUU.
NUU.
胸
8.实验总结(实验心得)
本次操作实训虽然很辛苦,但实在是受益匪浅。
在操作实训过程中碰到了很多问题,冈寸开始的时候,还真不知道从哪里下手。
但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次操作实训我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。
理论和实践的相结合是学习最有效的方法。
在实验的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,这次操作实训之后,一定把以前所学过的知识重新温故。
通过这次操作实训使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
附录:
代码
Control.java
packagezhm;
publicclassControl{
publicstaticvoidmain(String[]args){
newDLFrame();
}
}
DLFrame.java
packagezhm;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.sql.*;
publicclassDLFrameextendsJFrameimplementsActionListener,ItemListener{//登录界面privatestaticfinallongserialVersionUID=1L;
JPanelp1=null;
JPanelp2=null;
JPanelp3=null;
JLabeluserName=newJLabel("用户:
”);
JTextFieldtxtUser=newJTextField();
JLabelpassword=newJLabel("密码:
”);
JPasswordFieldtxtPwd=newJPasswordField(6);
JLabelrole=newJLabel("角色:
");
JComboBoxcbrole=newJComboBox();
JButtonbtnLogin=newJButton("登录");
JButtonbtncz=newJButton("重置”);
JButtonbtnCancel=newJButton("取消");
JLabelimageLabel;
Iconimage;
staticintOK=1;
staticintCANCEL=0;
intactionCode=0;
Connectioncon=null;
Statementstmt=null;
ResultSetrs=null;
intqxian=0;
@SuppressWarnings("deprecation")
publicDLFrame(){//构造方法
super(”登录界面”);
p1=newJPanel();
p2=newJPanel();
p3=newJPanel();
cbrole.addItem("系统管理员");
cbrole.addItem("基本档案管理员”);
cbrole.addltem(”业务员");
/*image=newImageIcon("pictureWst.jpg");
imageLabel=newJLabel(image);
p1.add(imageLabel);*/
this.setLayout(newFlowLayout());
this.setBounds(150,150,250,250);
p2.setLayout(newGridLayout(4,2));
p2.add(userName);
p2.add(txtUser);
p2.add(password);
p2.add(txtPwd);
p2.add(role);
p2.add(cbrole);
p3.add(btnLogin);
p3.add(btncz);
p3.add(btnCancel);
this.add(p1);
this.add(p2);
this.add(p3);
this.setResizable(false);
this.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE);this.-show();
btnLogin.addActionListener(this);
cbrole.addItemListener(this);
btncz.addActionListener(this);
btnCancel.addActionListener(this);
}
publicvoidconnDB(){//连接数据库
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
try{
con=DriverManager.getConnection(
"jdbc:
sqlserver:
//localhost:
1433;DatabaseName=销售管理系统”"sa","2191826");
stmt=con.createStatement();
}catch(SQLExceptione){
e.printStackTrace();
}
}
publicvoidcloseDB()//关闭连接
{
try{
stmt.close();
con.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
publicvoiditemStateChanged(ItemEvente){
if(e.getStateChange()==ItemEvent.SELECTED){JComboBox
>jcb=(JComboBox
>)e.getSource();qxian=jcb.getSelectedIndex();
}
}
@SuppressWarnings("deprecation")
publicvoidactionPerformed(ActionEvente){
Objectsource=e.getSource();
Stringun=null;
Stringpw=null;
booleansuccess=false;//用于判断是否登录成功
if(source==btnLogin){
if(txtUser.getText().equals("")||txtPwd.getPassword().equals("")){//判断是否输入了用户名和密码
JOptionPane.showMessageDialog(null,"登录名和密码不能为空!
”);
}else{
this.connDB();
try{
rs=stmt.executeQuery("select*fromunpwwhereqx="+qxian);while(rs.next()){
un=rs.getString("un").trim();
pw=rs.getString("pw").trim();
if(txtUser.getText().equals(un)){
if(txtPwd.geText().equals(pw)){actionCode=OK;this.setVisible(false);if(qxian==0){
newsysM