java数据库销售管理系统实验报告完整版附代码.docx
《java数据库销售管理系统实验报告完整版附代码.docx》由会员分享,可在线阅读,更多相关《java数据库销售管理系统实验报告完整版附代码.docx(132页珍藏版)》请在冰豆网上搜索。
java数据库销售管理系统实验报告完整版附代码
java数据库销售管理系统实验报告完整版(附代码)
大连海事大学本科生实验报告
数据库原理-操作实训
院(系):
交通运输管理学院
专业:
电子商务
课程名称:
数据库原理
学号:
2220113494
学生:
周慧敏
任课教师:
贺琳
完成日期:
2013年12月
安全,两者结合可相互利用各自的优势。
该系统实现的大致功能:
1.用户登陆界面。
该界面可以选择使用者的身份,“系统管理员,基本档案管理员,业务员”。
不同的身份有不同的操作界面和功能权限。
ID号和密码输入正确即可登录。
2.系统管理员界面,拥有最高权限。
提供了客户信息管理、产品信息管理、订单信息管理、发货管理与签收管理等功能。
3.基本档案管理员界面。
提供了客户信息管理、产品信息管理等功能。
4.业务员界面。
提供了订单信息管理、发货管理与签收管理等功能。
5.登录的用户信息分别存储在SQL数据库的“unpw表”中,如果用户信息不存在这个表中,将会无权利登录本管理系统。
6.保证了本销售管理系统的安全性。
系统功能图如下:
4.概念结构设计
根据以上对系统的需求分析,系统设计,本系统使用的数据库实体分别为客户信息实体,产品信息实体,订单信息实体,发货单实体,签收单实体。
1:
客户信息实体
客户信息实体包括客户名称、单位地址、联系电话、地址、开户银行、银行账号、发票抬头、所在区域等属性。
客户信息实体的E-R图如图所示。
2:
发货单实体
发货单实体包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、发货日期等属性,E-R图如图所示。
3:
签收单实体
签收单实体包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、收货日期等属性,E-R图如图所示。
4:
unpw实体
unpw实体包括un、pw、qx等属性,E-R图如图所示。
5:
产品信息实体
产品信息实体主要包括产品名称、规格、型号、操作系统、产品描述、产品分类等属性。
E-R图如图所示。
6:
订单信息实体
订单信息实体主要包括客户名称、联系人、联系电话、发货地址、最后到货期限(日期)以及产品名称、型号、数量、产品要求等属性。
E-R图如图所示。
实体属性表:
实体
属性
客户信息
客户名称、单位地址、联系电话、地址、开户银行、银行账号、发票抬头、所在区域
产品信息
产品名称、规格、型号、操作系统、产品描述、产品分类
订单信息
客户名称、联系人、联系电话、发货地址、最后到货期限(日期)以及产品名称、型号、数量、产品要求
签收单
客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、收货日期
发货单
客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、发货日期
unpw(用户)
un(登录名)、pw(密码)、qx(用户)
5.逻辑结构设计
(1)表-dbo.客户信息(客户信息表)
客户信息表包括客户名称、单位地址、联系电话、地址、开户银行、银行帐号、发票抬头、所在区域等信息。
(2)表-dbo.产品信息(产品信息表)
产品信息表包括产品名称、规格、型号、操作系统、产品描述、产品分类等信息。
(3)表-dbo.订单信息(订单信息表)
订单信息表包括客户名称、联系人、联系电话、发货地址、最后到货期限(日期)以及产品名称、型号、数量、产品要求等信息。
(4)表-dbo.发货单信息(发货单表)
发货单表主要包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、发货日期等信息。
(5)表-dbo.签收单信息(签收单表)
签收单表主要包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、收货日期等信息。
(6)表-dbo.unpw(用户表)
用户表包括un、pw、qx等信息。
6.数据库实现
(1)数据库关系图
(2)SQL语句实现
数据表的创建:
(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)notnull,
pwvarchar(12)notnull
)
7.应用系统设计实现
(1)用户登录模块
(2)各用户操作模块
(i)系统管理员操作模块
(ii)基本档案管理员操作模块
(iii)业务员操作模块
(3)系统管理员登录
在登陆界面选择“系统管理员”角色,输入正确的ID和密码。
验证成功则可进入系统管理员管理界面。
系统管理员ID号和登录密码存在数据库中的管理员信息表。
表中存在的管理员才允许登录。
(i)点击客户信息管理,弹出如下界面:
(ii)点击显示按钮后,会出现数据库里保存的客户信息:
(iii)点击增加按钮,弹出如下界面,输入要增加的客户信息,成功后会弹出增加成功的提示窗口:
(iv)增加客户信息成功后客户信息管理界面会增加一行客户信息,如图所示:
(v)选中一条客户信息,点击删除按钮,成功后会出现删除成功的提示窗口:
(vi)成功删除Tom客户的信息后,客户信息管理界面变化如下:
(vii)选中一行客户信息,点击修改按钮,出现如下界面,输入要修改的信息,成功后弹出修改成功的提示窗口:
(此处修改了客户Tom的联系电话)
(viii)点击查询按钮,弹出如下窗口:
在文本框中输入“Hei“,即可查询所在区域为”Hei“的客户信息:
其他模块与客户信息管理模块类似,均能实现信息的查询、修改、删除、增加、显示等功能,在此不再赘述;点击退出系统即可完成本次操作。
经过系统一系列的增删改查操作之后,sqlsever2005数据库上的客户信息表同时也发生了改变:
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.addItem("业务员");
/*image=newImageIcon("picture\\st.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.setDefaultCloseOperation(JFrame.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.getText().equals(pw)){
actionCode=OK;
this.setVisible(false);
if(qxian==0){
newsysManagerFrame();//进入系统管理员界面
}
if(qxian==1){
newbaseManagerFrame();//进入基本档案管理员界面
}
if(qxian==2){
newbusinessManFrame();//进入业务员界面
}
success=true;
break;
}else{
JOptionPane.showMessageDialog(null,"密码错误!
");
txtPwd.setText("");
success=true;
}
}
}
if(!
success){
JOptionPane.showMessageDialog(null,"登录名错误!
");
txtUser.setText("");
txtPwd.setText("");
}
}catch(SQLExceptione1){
e1.printStackTrace();
}
}
}elseif(source==btncz){
txtUser.setText("");
txtPwd.setText("");
}elseif(source==btnCancel){
System.exit(0);
}
}
}
sysManagerFrame.java
packagezhm;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
publicclasssysManagerFrameextendsJFrameimplementsActionListener{//系统管理员界面
privatestaticfinallongserialVersionUID=1L;
JPanelp1=newJPanel();
JPanelp2=newJPanel();
JButtonbtns=newJButton("客户信息管理");
JButtonbtnc=newJButton("产品信息管理");
JButtonbtnsc=newJButton("订单信息管理");
JButtonbtng=newJButton("发货管理");
JButtonbtnu=newJButton("签收管理");
JButtonbtnClose=newJButton("退出管理系统");
JLabell=newJLabel("系统管理员");
@SuppressWarnings("deprecation")
sysManagerFrame(){//构造方法
super("销售管理系统");
setSize(205,300);
add("North",p1);
add("Center",p2);
p1.add(l);
p2.add(btns);
p2.add(btnc);
p2.add(btnsc);
p2.add(btng);
p2.add(btnu);
p2.add(btnClose);
btns.addActionListener(this);
btnc.addActionListener(this);
btnsc.addActionListener(this);
btng.addActionListener(this);
btnu.addActionListener(this);
btnClose.addActionListener(this);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
show();
}
publicvoidactionPerformed(ActionEvente){
if(e.getActionCommand()=="客户信息管理")
newCustomerManager("客户信息管理").display();
if(e.getActionCommand()=="产品信息管理"){
newProductManager("产品信息管理").display();
}
if(e.getActionCommand()=="订单信息管理"){
newOrderManager("订单信息管理").display();
}
if(e.getActionCommand()=="发货管理"){
newsendManager("发货管理").display();
}
if(e.getActionCommand()=="签收管理"){
newRecei