java数据库销售管理系统实验报告完整版(附代码)
- 格式:doc
- 大小:955.50 KB
- 文档页数:76
一、实训背景随着我国经济的快速发展,企业对信息管理的要求越来越高。
进销存系统作为一种企业内部管理工具,能够有效提高企业的运营效率,降低成本。
为了使学生对进销存系统有一个全面的认识,提高学生的实际操作能力,本次实训选择了基于Java 的超市进销存管理系统进行实践。
二、实训目标1. 熟悉进销存系统的基本概念和功能模块;2. 掌握Java编程语言和数据库技术,实现进销存系统的开发;3. 学会使用Eclipse、MySQL等开发工具和环境;4. 培养学生的团队协作能力和沟通能力。
三、实训内容1. 系统需求分析:根据超市的实际情况,分析系统的需求,包括销售管理、采购管理、库存管理、财务管理等模块。
2. 系统设计:根据需求分析,设计系统的数据库结构、界面布局和功能模块。
3. 系统开发:使用Java编程语言和MySQL数据库技术,实现进销存系统的各个功能模块。
4. 系统测试:对系统进行功能测试、性能测试和兼容性测试,确保系统的稳定性和可靠性。
5. 系统部署:将系统部署到服务器上,供实际使用。
四、实训过程1. 需求分析:通过查阅资料、与相关人员进行沟通,明确了超市进销存系统的需求,包括销售管理、采购管理、库存管理、财务管理等模块。
2. 系统设计:根据需求分析,设计了系统的数据库结构、界面布局和功能模块。
数据库结构包括商品信息、供应商信息、销售信息、采购信息、库存信息等;界面布局采用简洁明了的风格,方便用户操作;功能模块包括登录、销售管理、采购管理、库存管理、财务管理等。
3. 系统开发:使用Java编程语言和MySQL数据库技术,实现了进销存系统的各个功能模块。
具体包括:- 销售管理:实现销售订单、销售出货、客户退货、部门零售以及统计查询等功能;- 采购管理:实现采购订单、采购入库、供应商管理、采购统计等功能;- 库存管理:实现库存盘点、库存调整、库存预警等功能;- 财务管理:实现收入、支出、利润等财务数据的统计和分析。
java数据库销售管理系统实验报告完整版数据库原理-操作实训院(系):交通运输治理学院专业:电子商务课程名称:数据库原理学号:2220183494学生:周慧敏任课教师:贺琳完成日期: 2019 年 12 月1.实验目的把握数据库模式设计,依据实际要求设计表结构,建立表的关系;结合一定的开发工具实现数据库应用程序的开发。
2.实验环境2.1 硬件环境:处理器:Intel(R) Core(TM) i3 CPU M 380 @ 2.53GHz 2.53GHz安装内存:(RAM):2GB(1.86GB可用)2.2 软件环境操作系统:Windows7数据库治理系统:微软公司的SQL Server2005开发工具:Eclipse3.需求分析销售治理系统,可用于企业的销售信息治理,查询,更新与爱护,使用方便,易用性强,图形界面清晰明了。
该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的储备,用SQL语句完成销售信息的添加,查询,修改,删除的操作。
用ODBC驱动实现前台Java与后台SQL数据库的连接。
Java语言跨平台性强,能够在windows,linux,ubuntu等系统下使用,方便简单,安全性好。
SQLServer2005数据库高效安全,两者结合可相互利用各自的优势。
该系统实现的大致功能:1.用户登陆界面。
该界面能够选择使用者的身份,“系统治理员,差不多档案治理员,业务员”。
不同的身份有不同的操作界面和功能权限。
ID号和密码输入正确即可登录。
2.系统治理员界面,拥有最高权限。
提供了客户信息治理、产品信息治理、订单信息治理、发货治理与签收治理等功能。
3.差不多档案治理员界面。
提供了客户信息治理、产品信息治理等功能。
4.业务员界面。
提供了订单信息治理、发货治理与签收治理等功能。
5.登录的用户信息分不储备在SQL数据库的“unpw表”中,假如用户信息不存在那个表中,将会无权益登录本治理系统。
1.1 课程设计的目的通过本次课程设计,使学生能够全面、深刻地掌握数据库系统的设计流程。
根据在数据库原理课程中所学到的数据库理论知识,结合某个具体的实际需求,最终开发出一个较为实用的数据库系统。
1.2 课程设计的背景和意义1.2.1课程设计的背景20世纪90年代后期特别是近几年,我国的超市产业飞速发展,其经营模式更为复杂,旧的管理体制已经无法适应超市的发展,这就迫切的需要引进新的管理技术。
超市的数据和业务越来越庞大,而计算机就是一种高效的管理系统,这就需要我们把超市的管理与计算机结合起来,从而超市管理系统应运而生。
依靠现代化的计算机信息处理技术来管理超市,节省了大量的人力、物力,改善了员工的并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。
1.2.2 课程设计的意义“数据库课程设计”的设计思想旨在强调学生的实际编程能力的培养与创意灵感的发挥。
为此,本课程结合学科特点,除了让学生掌握数据库原理的理论知识,还增加了需求功能让学生完成,并鼓励学生的创作出个性的程序,满足客户需求,与市场的实际项目相结合。
学生对此热情高,实际收获大,效果好。
通过课堂学习和参与相关项目设计,学生对书本支持有了深刻的理解,实践性教学取得了良好效果。
1.3 课程设计环境操作系统:Windows xp开发软件:Microsoft Visual Studio 2005数据库:Microsoft SQL Server 2005第2章系统需求分析随着人们生活水平的不断提高,对于物质的需求也越来越高,而超市作为日常生活用品聚集的场所,随着全球各种超市的数目的不断增加,规模不断增大,其管理难度也相应的增加,而为了适应当今信息化发展的时代,一套完整的超市商品管理系统显得尤为重要。
2.1 问题的提出在信息化高速发展的今天,超市商品管理的信息化管理已成为必不可缺的一部分,但是目前的大多是超市商品管理系统应用难度较高,许多工作需要技术人员配合才能完成,角色分工不明确;改版工作量大,系统扩展能力差,应用时更是降低了灵活性,这就使得一套完善的、能够正常工作的商品管理系统应运而生。
1。
1 课程设计的目的通过本次课程设计,使学生能够全面、深刻地掌握数据库系统的设计流程。
根据在数据库原理课程中所学到的数据库理论知识,结合某个具体的实际需求,最终开发出一个较为实用的数据库系统。
1.2 课程设计的背景和意义1.2。
1课程设计的背景20世纪90年代后期特别是近几年,我国的超市产业飞速发展,其经营模式更为复杂,旧的管理体制已经无法适应超市的发展,这就迫切的需要引进新的管理技术。
超市的数据和业务越来越庞大,而计算机就是一种高效的管理系统,这就需要我们把超市的管理与计算机结合起来,从而超市管理系统应运而生。
依靠现代化的计算机信息处理技术来管理超市,节省了大量的人力、物力,改善了员工的并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。
1。
2。
2 课程设计的意义“数据库课程设计"的设计思想旨在强调学生的实际编程能力的培养与创意灵感的发挥.为此,本课程结合学科特点,除了让学生掌握数据库原理的理论知识,还增加了需求功能让学生完成,并鼓励学生的创作出个性的程序,满足客户需求,与市场的实际项目相结合。
学生对此热情高,实际收获大,效果好。
通过课堂学习和参与相关项目设计,学生对书本支持有了深刻的理解,实践性教学取得了良好效果.1。
3 课程设计环境操作系统:Windows xp开发软件:Microsoft Visual Studio 2005数据库:Microsoft SQL Server 2005第2章系统需求分析随着人们生活水平的不断提高,对于物质的需求也越来越高,而超市作为日常生活用品聚集的场所,随着全球各种超市的数目的不断增加,规模不断增大,其管理难度也相应的增加,而为了适应当今信息化发展的时代,一套完整的超市商品管理系统显得尤为重要。
2.1 问题的提出在信息化高速发展的今天,超市商品管理的信息化管理已成为必不可缺的一部分,但是目前的大多是超市商品管理系统应用难度较高,许多工作需要技术人员配合才能完成,角色分工不明确;改版工作量大,系统扩展能力差,应用时更是降低了灵活性,这就使得一套完善的、能够正常工作的商品管理系统应运而生.2。
基于java的手机销售系统实验报告1.3 系统设计思想对于本系统,以网页销售模式为主,通过网络平台来达到手机产品的销售,为各大手机商提供了一个综合平台进行产品销售。
浏览器作为客户端、手机购买者作为用户、后台管理员有独立的后台管理系统。
因为相关手机信息较为综合,所以要处理的数据很多,本网站上的数据流量也将特别大,不仅要做到界面简单易操作,还要保证系统的安全稳定,所以具体要符合以下几点:首先也是最要的是整个系统的稳定性和安全性对于用户而言,友好的界面将变得非常重要,一个网站如果简单美观,并且在信息查询方面非常便捷,如此一般能抓住用户的心可以使网站访问量大大增加首页能将不同品牌手机分类,也便于有某具体手机品牌要求的用户快速检索出自己所需要的手机类型首页设置关于排序功能的模块,是本网站可以从销量、售价等方面进行排行使客户一目了然,方便客户选购可以实现网上的交易功能,添加/删除购物车内的信息,选择自己意愿的的付款方式以及配送地址已注册的会员可以随时从注册界面修改自己的个人信息顾客可以随时查看自己的订单,并进行相应操作后台管理员可以发布或者删除公告,以用于向到达网页的客户发布商品优惠信息或关于网站停服维护等信息已注册的用户可以使用留言板功能,为客户间提供信息沟通平台,不仅可以互相之间提问解答,也可以对已购产品作出评价为后来到的用户选购做一个参考对于顾客输入的各种类型数据进行检验,尽可能地排除因为个人疏忽而造成的错误在制作该系统是,秉承着尽最大努力实现其易操作性,对于后台工作人员则需让其更易维护4.1 系统模块总体设计利用层次图来表示系统中各模块之间的关系。
层次方框图是用树形结构的一系列多层次的矩形框描绘数据的层次结构。
树形结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的各层矩形框代表各个数据的子集,最底层的各个矩形框代表组成这个数据的实际数据元素(不能再分割的元素)。
随着这种结构的精细化,层次方框图对数据结构也描绘得越来越详细,这种模式非常适合于需求分析阶段的需要。
课程设计说明书课程名称: Java程序设计课程设计设计项目: 产品销售管理系统学生姓名:学号:专业:软件工程班级:指导教师: _2017 年 2 月一、任务与具体要求建立数据库:产品库(产品ID、名称、规格等),销售员库(销售员ID、姓名、性别、电话等),销售记录库(销售日期、销售产品ID、售出数量、单价、销售员ID等)。
实现对销售数据的输入、查询、修改与维护(例如操作员管理、数据备份等)等功能。
二、设计说明书包括的内容需求分析、系统功能结构、软硬件环境、开发工具、数据库结构设计、各个功能模块的详细实现方法、系统测试数据与结果、设计体会、参考文献等三、应完成的图纸系统功能结构框架图、各功能模块窗口界面图、算法流程图、测试结果图等四、评语及成绩指导教师(签字)_____________ ________年____月日目录1 问题概述 (1)2 系统需求分析 (1)3 系统概要设计 (1)3.1系统的主要功能 (1)3.2 系统的总体结构 (2)3.3 系统软硬件环境 (3)3.4 数据结构设计 (3)4 系统的详细设计 (4)4.1 添加客户信息记录 (4)4.2 显示客户信息记录 (6)4.3 删除客户信息记录 (8)5 系统测试及调试 (10)6 结束语 (13)7 参考文献 (18)8 附录 (19)1 问题概述设计一个产品销售管理系统,以解决传统产品信息管理方式的诸多不便和弊端。
2 系统需求分析在客户的日常管理中,经常需要对产品的相关信息进行处理,采用传统的手工记录,查询方式,显然有很多不便,如多次的增、删、改可能使记录变得混乱,为今后的信息提取带来很多麻烦。
为了解决这一问题,可采用现代化的手段——计算机进行系统的管理。
这样可大大提高管理的质量和效率,并且使客户的日常管理也从手工操作中解脱出来,减少纸制材料的数量,对日常信息的查询、方便、快捷。
因此,基于这些方面的考虑,决定开发本系统。
3 系统概要设计3.1系统的主要功能系统的主要功能是实现基本的客户的数据管理和维护。
课程设计(项目设计)说明书项目名称:房屋销售管理信息系统的设计与实现专业班级:学号:姓名:指导教师:完成时间:2013.07.06目录引言1 系统分析与设计 (1)1.1 系统目标 (2)1.2 系统模块分析 (2)1.3 总体设计 (3)1.4 类的设计 (4)1.5 系统知识点 (4)2 系统实现 (7)2.1 主窗口功能实现 (7)2.2 录入 (8)2.3 查询 (10)2.4 修改 (11)2.5 删除 (12)3 系统测试(截图) (13)4 收获与体会 (18)5 参考文献 (18)6 附录 (18)房屋销售管理信息系统的设计与实现引言1.Java用户界面概述图形用户界面(Graphics User Interface,缩写GUI)是指以图形的显示方式与用户实现交互操作的应用程序界面,设计具有GUI特征的应用程序被称为GUI应用程序设计。
Java提供了十分完善的图形用户界面功能,使得软件开发人员可以轻松地开发出功能强大、界面友善、安全可靠的应用程序,充分体现了Java语言的时代感与面向对象程序设计的优越性。
在Java语言中,为GUI应用程序设计提供了强大的功能,其相关的类主要封装在两包(java.awt和javax.swing)中,其中包含了实现图形用户界面的所有基本元素,这些基本元素主要包括容器、组件、绘图工具与布局管理器等。
组件是与用户实现交互操作的部件,容器是包容组件的部件,布局管理器是管理组件在容器中布局的部件,绘图工具是绘制图形的部件。
Java.awt是javal.l用来建立GUI的图形包,这里的“awt”是抽象窗口工具包。
JAVA设计用户界面需要以下四个基本步骤:(1)创建和设置组件;(2)将组件加入到容器中;(3)布局组件;(4)处理有组件产生的事件。
当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
榆林学院[超市库存管理系统]专业:[计算机科学与技术] 班级:[ 13级计本1班] 学生姓名:[ 李治生]学号:[1312210142]一、需求分析 (3)二、概要设计 (3)三、详细设计 (4)1、数据库设计 (4)用户登录界面: (6)进入主界面: (9)四、软件测试 (39)五、总结 (40)六、附录: (41)一、需求分析本系统主要是用来帮助小型超市进行库存管理系统,能够有效的帮助小型超市进行库存管理!其中包括增删改查等基本的应用。
极大的提高了超市的库存管理效率,节省了大量的时间。
*********************************************************** ***********************************************************二、概要设计1、本系统的每一个功能模块都包含了多个功能。
整个系统主要完成对超市商品的日常管理,包括进货管理,库存管理和供应商管理等方面。
在功能上系统可以完成对相关信息的浏览、查询、添加、删除、修改等功能。
本课题的核心之一是销售管理、库存管理和进货管理三者之间的联系,同时系统有完整的用户管理功能。
本系统采用java语言和SQL Server 2008作为开发工具。
这种系统优势在于系统比较简单,但功能强大,扩展性能也比较好,完全能够处理一般超市的日常任务2、整体分为3个模块(货物,供应商,记录)每个模块之间相互关联,都有自己的增删改查!3、程序流程图如下:开始登陆界面N密码正确Y主界面货物管理供应商管理查询记录进货计划OVER三、详细设计1、数据库设计Goods表:Lzs(用户登录名,密码):Recond表():记录表Supplier(供应商表):用户登录界面:设计代码如下:package source;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;@SuppressWarnings("serial")public class loginframe extends JFrame implements ActionListener { JTextField 用户名;JPasswordField 密码;JButton 登录,重置;Box baseBox,box1,box2,box3;//盒式布局ImagePanel p;//用于插入图片的面板JSplitPane split;//拆分窗格Font f;//设置字体JLabel userName,psw;Function wMain;Connection con;Statement sql;ResultSet rs;String dbdriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";String dburl = "jdbc:sqlserver://localhost:1433;DatabaseName=LZS";String user = "sa";String pass = "123";public loginframe(){setLayout(new FlowLayout());init();setBounds(130,80,960,600);setVisible(true);setResizable(false);try{Class.forName(dbdriver);}catch(ClassNotFoundException classnotfound){System.out.println("未能找到SQLServerDriver,请检查是否已加载SQLServer驱动");}}void init(){f = new Font("幼圆",Font.BOLD,18);p = new ImagePanel(new ImageIcon("E:/Java文件/SuperMarket/picture/1.jpg").getImage());登录= new JButton("登录");登录.addActionListener(this);重置= new JButton("重置");重置.addActionListener(this);用户名= new JTextField(16);用户名.setFont(f);密码= new JPasswordField(16);userName = new JLabel("用户名:");userName.setFont(f);psw = new JLabel("密码:");psw.setFont(f);box1 = Box.createVerticalBox();box1.add(userName);box1.add(Box.createVerticalStrut(20));box1.add(psw);box2 = Box.createVerticalBox();box2.add(Box.createVerticalStrut(240));box2.add(用户名);box2.add(Box.createVerticalStrut(20));box2.add(密码);box2.add(Box.createVerticalStrut(20));box3 = Box.createHorizontalBox();box3.add(登录);box3.add(Box.createHorizontalStrut(20));box3.add(重置);box2.add(box3);box2.add(Box.createVerticalStrut(200));baseBox = Box.createHorizontalBox();baseBox.add(box1);baseBox.add(Box.createHorizontalStrut(15));baseBox.add(box2);//baseBox.add(登录);split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false,p,baseBox);split.setDividerLocation(0.5);add(split,BorderLayout.PAGE_START);}public void actionPerformed(ActionEvent e){if(e.getSource() == 登录){String Uname = 用户名.getText().trim();char[]psw = 密码.getPassword();String passWord = new String(psw);try{con =DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=LZS","sa","123");System.out.println("数据库连接成功!");sql=con.createStatement();String string = "SELECT * FROM lzs WHERE Uname= '"+Uname+"' AND mima = '"+passWord+"'";rs = sql.executeQuery(string);if(rs.next()){wMain = new Function();wMain.setTitle("超市库存管理系统");wMain.setVisible(true);this.dispose();// wMain.pack();}else{JOptionPane.showMessageDialog(this, "您输入的用密码不正确","警告对话框",JOptionPane.WARNING_MESSAGE);密码.setText(null);密码.requestFocus();}con.close();}catch(SQLException ee){ee.printStackTrace();}}else if(e.getSource() == 重置){用户名.setText("");密码.setText("");}}}进入主界面:第一菜单(货物):第二菜单(供应商):第三菜单(记录):设计代码如下:package source;import java.awt.*;import java.awt.event.*;import javax.swing.*;@SuppressWarnings("serial")public class Function extends JFrame implements ActionListener{ Font f;//菜单栏JMenuBar menubar;//菜单条JMenu 货物,供应商,记录; //菜单JMenuItem 货物管理,退出,供应商管理,查询记录,进货计划;//菜单项//Box box;JLabel label;ImagePanel p;//用于插入图片的面板//构造函数Function(){setLayout(new FlowLayout());init();setTitle("超市库存管理系统");setLocation(20,30);setSize(1200,800);setBounds(130,80,960,600);setVisible(true);setResizable(false);}void init(){menubar = new JMenuBar();f = new Font("华文行楷",Font.BOLD,50);Font f2 = new Font("宋体",0,12);p = new ImagePanel(new ImageIcon("E:Java文件/SuperMarket/picture/2.jpg").getImage());//库房货物管理菜单货物= new JMenu("货物");货物.setFont(f2);货物管理= new JMenuItem("货物管理");货物管理.setFont(f2);货物管理.addActionListener(this);退出= new JMenuItem("退出");退出.setFont(f2);退出.addActionListener(this);货物.add(货物管理);货物.add(退出);menubar.add(货物);//货物供应商菜单供应商= new JMenu("供应商");供应商.setFont(f2);供应商管理= new JMenuItem("供应商管理");供应商管理.setFont(f2);供应商管理.addActionListener(this);供应商.add(供应商管理);menubar.add(供应商);//货物进货、入库和出库记录查询菜单记录= new JMenu("记录");记录.setFont(f2);查询记录= new JMenuItem("查询记录");查询记录.setFont(f2);查询记录.addActionListener(this);进货计划= new JMenuItem("进货计划");进货计划.setFont(f2);进货计划.addActionListener(this);记录.add(查询记录);记录.add(进货计划);menubar.add(记录);label = new JLabel("欢迎进入超市库存管理系统");label.setFont(f);p.add(label);label.setBounds(300,400,800,200);add(p,BorderLayout.CENTER);setJMenuBar(menubar);}public void actionPerformed(ActionEvent e){if(e.getSource()==供应商管理){SupplierManage smTable = new SupplierManage();smTable.setVisible(true);smTable.pack();}else if(e.getSource()==货物管理){goods goTable = new goods();goTable.setVisible(true);goTable.pack();}else if(e.getSource()==查询记录){record reTable = new record();reTable.setVisible(true);reTable.pack();}else if(e.getSource() ==进货计划){plan plTable = new plan();plTable.setVisible(true);plTable.pack();}else if(e.getSource()==退出){this.dispose();}}}进入第一菜单(货物管理):在此菜单下,可进行货物的增删改查操作,设计代码如下:package source;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;import javax.swing.table.DefaultTableModel;@SuppressWarnings("serial")public class goods extends JFrame implements ActionListener{JTable table;JLabel label;JTextField inputText;String []name = {"货物号","货物名","进货价","售价","折扣价","余量","余量预警值","供应商"};String []strings = new String[8];JButton 添加,修改,删除,退出,确认修改;JPanel p;JLabel []labels = new JLabel[8];JTextField []fields = new JTextField[8];Box baseBox,box1,box2;ImagePanel pp;//用于插入图片的面板JSplitPane split;//拆分窗格DefaultTableModel deModel = null;Connection con;Statement sql;ResultSet rs;String dbdriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";String dburl = "jdbc:sqlserver://localhost:1433;DatabaseName=LZS";String user = "sa";String pass = "123";goods(){setLayout(new BorderLayout());init();// Toolkit tk = Toolkit.getDefaultToolkit();// Image img = tk.getImage("E:Java文件/SuperMarket/picture/2.jpg");// setIconImage(img);setTitle("货物管理");setBounds(130,80,960,600);;//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setResizable(false);try{Class.forName(dbdriver);}catch(ClassNotFoundException classnotfound){classnotfound.printStackTrace();}}void init(){pp = new ImagePanel(new ImageIcon("E:/Java文件/SuperMarket/picture/2.jpg").getImage());添加= new JButton("添加");修改= new JButton("修改");删除= new JButton("删除");退出= new JButton("退出");确认修改= new JButton("确认修改");label = new JLabel("请输入想要删除或修改的货物名:");inputText = new JTextField(8);添加.addActionListener(this);修改.addActionListener(this);删除.addActionListener(this);退出.addActionListener(this);确认修改.addActionListener(this);p = new JPanel();p.add(label);p.add(inputText);p.add(添加);p.add(修改);p.add(删除);p.add(退出);p.add(确认修改);add(p,BorderLayout.SOUTH);labels[0] = new JLabel("货物号");labels[1] = new JLabel("货物名");labels[2] = new JLabel("进货价");labels[3] = new JLabel("售价");labels[4] = new JLabel("折扣价");labels[5] = new JLabel("余量");labels[6] = new JLabel("余量预警值");labels[7] = new JLabel("供应商");for(int i = 0;i<8;i++){fields[i] = new JTextField(20);}//用盒式容器装要录入的数据和标签box1 = Box.createVerticalBox();box1.add(Box.createVerticalStrut(15));for(int i = 0;i<8;i++){box1.add(labels[i]);box1.add(Box.createVerticalStrut(35));}box2 = Box.createVerticalBox();box2.add(Box.createVerticalStrut(10));for(int i = 0;i<8;i++){box2.add(fields[i]);box2.add(Box.createVerticalStrut(14));}baseBox = Box.createHorizontalBox();baseBox.add(box1);baseBox.add(Box.createHorizontalStrut(15));baseBox.add(box2);//添加表格add(baseBox,BorderLayout.EAST);deModel = new DefaultTableModel(name,0);table = new JTable(deModel);table.setCellSelectionEnabled(false);table.setEnabled(false);table.setShowHorizontalLines(true);table.setShowVerticalLines(true);//add(new JScrollPane(table),BorderLayout.CENTER);split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false,newJScrollPane(table),baseBox);split.setDividerLocation(0.5);add(split,BorderLayout.CENTER);String sqlString = "select * from goods";try{//连接数据库con = DriverManager.getConnection(dburl, user, pass);sql = con.createStatement();JOptionPane.showMessageDialog(this, "数据库连接成功!","消息对话框",RMATION_MESSAGE);rs = sql.executeQuery(sqlString);while(rs.next()){for(int i = 0;i<8;i++){strings[i]=rs.getString(i+1);//把查询的结果填入表格中}deModel.addRow(strings);deModel.fireTableStructureChanged();//更新中的数据}}catch(SQLException ee){ee.printStackTrace();}}public void actionPerformed(ActionEvent e){if(e.getSource() == 添加){String sqlString = "INSERT INTO goods VALUES('"+fields[0].getText()+"','"+fields[1].getText()+"','"+fields[2].getText()+"','"+fields[3].getText()+"','" +fields[4].getText()+"','"+fields[5].getText()+"','"+fields[6].getText()+"','"+fields[7].getText()+"')";try{sql.execute(sqlString);JOptionPane.showMessageDialog(this, "操作成功!","消息对话框",RMATION_MESSAGE);//更新表格中的数据for(int i = deModel.getRowCount()-1;i>=0;i--){deModel.removeRow(i);deModel.fireTableStructureChanged();}rs = sql.executeQuery("select * from goods");while(rs.next()){for(int j = 0;j<8;j++){strings[j]=rs.getString(j+1);}deModel.addRow(strings);deModel.fireTableStructureChanged();//更新中的数据}}catch(SQLException ee){ee.printStackTrace();}for(int i = 0;i<8;i++){fields[i].setText("");}fields[0].requestFocus();//设置光标的位置,在第一个文本框上面}else if(e.getSource() == 修改){try{rs = sql.executeQuery("select * from goods");while(rs.next()){for(int i = 0;i<8;i++){strings[i]=rs.getString(i+1);}if(strings[1].trim().compareTo(inputText.getText().trim())==0){for(int i = 0;i<8;i++){fields[i].setText(strings[i]);}}}fields[0].setEditable(false);fields[1].setEditable(false);}catch(SQLException ee){ee.printStackTrace();}}else if(e.getSource() == 确认修改){String sqlString = "UPDATE goods SET shangpinhao ='"+fields[0].getText()+"',shangpinming='"+fields[1].getText()+"',jinhuojia='"+fields[2].getText()+"',s houji='"+fields[3].getText()+"',zhekoujia='"+fields[4].getText()+"',yuliang='"+fields[5].getText()+"',y uliangyujingzhi='"+fields[6].getText()+"',gongyingshang='"+fields[7].getText()+"'where shangpinming ='"+inputText.getText()+"'";try{sql.execute(sqlString);JOptionPane.showMessageDialog(this, "操作成功!","消息对话框",RMATION_MESSAGE);//更新表格中的数据for(int i = deModel.getRowCount()-1;i>=0;i--){deModel.removeRow(i);deModel.fireTableStructureChanged();}rs = sql.executeQuery("select * from goods");while(rs.next()){for(int j = 0;j<8;j++){strings[j]=rs.getString(j+1);}deModel.addRow(strings);deModel.fireTableStructureChanged();//更新中的数据}}catch(SQLException ee){ee.printStackTrace();}for(int i = 0;i<8;i++){fields[i].setText("");}fields[0].setEditable(true);fields[1].setEditable(true);inputText.setText("");fields[0].requestFocus();//设置光标的位置,在第一个文本框上面}else if(e.getSource() == 删除){String sqlString = "DELETE FROM goods WHERE shangpinming = '"+inputText.getText().trim()+"'";try{sql.execute(sqlString);//将表格中的内容清空for(int i = deModel.getRowCount()-1;i>=0;i--){deModel.removeRow(i);deModel.fireTableStructureChanged();}rs = sql.executeQuery("select * from goods");while(rs.next()){for(int i = 0;i<8;i++){strings[i]=rs.getString(i+1);//把查询的结果填入表格中}deModel.addRow(strings);deModel.fireTableStructureChanged();//更新中的数据}JOptionPane.showMessageDialog(this, "操作成功!","消息对话框",RMATION_MESSAGE);inputText.setText("");}catch(SQLException ee){ee.printStackTrace();}}else if(e.getSource()==退出){this.dispose();}}}进入第二菜单(供应商管理界面):在此界面下可进行供应商的增删改查操作:设计代码如下:package source;import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.*;import javax.swing.table.DefaultTableModel;import java.util.Date;@SuppressWarnings("serial")public class SupplierManage extends JFrame implements ActionListener{ JTable table;JLabel label;JTextField inputText;String []name = {"添加时间","供应商","联系电话","地址","邮箱","备注"};String []strings = new String[6];JButton 修改,删除,添加,退出,确认修改;JPanel p;JLabel []labels = new JLabel[5];JTextField []fields = new JTextField[5];Box baseBox,box1,box2;JSplitPane split;//拆分窗格DefaultTableModel deModel = null;Connection con;Statement sql;ResultSet rs;Date date;String dbdriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";String dburl = "jdbc:sqlserver://localhost:1433;DatabaseName=LZS";String user = "sa";String pass = "123";SupplierManage(){setLayout(new BorderLayout());init();Toolkit tk = Toolkit.getDefaultToolkit();Image img = tk.getImage("C:/Documents and Settings/Administrator/workspace/招聘_求职管理系统/picture/003.jpg");setIconImage(img);setTitle("供应商管理");setBounds(130,80,960,600);;setResizable(false);try{Class.forName(dbdriver);}catch(ClassNotFoundException classnotfound){classnotfound.printStackTrace();}}void init(){修改= new JButton("修改");删除= new JButton("删除");添加= new JButton("添加");退出= new JButton("退出");确认修改= new JButton("确认修改");label = new JLabel("请输入想要删除或修改的供应商:");inputText = new JTextField(6);修改.addActionListener(this);删除.addActionListener(this);添加.addActionListener(this);退出.addActionListener(this);确认修改.addActionListener(this);p = new JPanel();p.add(label);p.add(inputText);p.add(修改);p.add(删除);p.add(添加);p.add(退出);p.add(确认修改);add(p,BorderLayout.SOUTH);//labels[0] = new JLabel("添加时间");labels[0] = new JLabel("供应商");labels[1] = new JLabel("联系电话");labels[2] = new JLabel("地址");labels[3] = new JLabel("邮箱");labels[4] = new JLabel("备注");for(int i = 0;i<5;i++){fields[i] = new JTextField(20);}//用盒式容器装要录入的数据和标签box1 = Box.createVerticalBox();box1.add(Box.createVerticalStrut(15));for(int i = 0;i<5;i++){box1.add(labels[i]);box1.add(Box.createVerticalStrut(70));}box2 = Box.createVerticalBox();box2.add(Box.createVerticalStrut(10));for(int i = 0;i<5;i++){box2.add(fields[i]);box2.add(Box.createVerticalStrut(60));}baseBox = Box.createHorizontalBox();baseBox.add(box1);baseBox.add(Box.createHorizontalStrut(15));baseBox.add(box2);//添加表格add(baseBox,BorderLayout.EAST);deModel = new DefaultTableModel(name,0);table = new JTable(deModel);table.setCellSelectionEnabled(false);table.setEnabled(false);table.setShowHorizontalLines(true);table.setShowVerticalLines(true);//add(new JScrollPane(table),BorderLayout.CENTER);split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false,new JScrollPane(table),baseBox);split.setDividerLocation(0.5);add(split,BorderLayout.CENTER);String sqlString = "select * from supplier";try{//连接数据库con = DriverManager.getConnection(dburl,user,pass);System.out.println("数据库连接成功!");sql=con.createStatement();rs = sql.executeQuery(sqlString);while(rs.next()){for(int i = 0;i<6;i++){strings[i]=rs.getString(i+1);//把查询的结果填入表格中}deModel.addRow(strings);deModel.fireTableStructureChanged();//更新中的数据}}catch(SQLException ee){ee.printStackTrace();}}public void actionPerformed(ActionEvent e){if(e.getSource()==修改){try{rs = sql.executeQuery("select * from supplier");while(rs.next()){for(int i = 0;i<6;i++){strings[i]=rs.getString(i+1);}if(strings[1].trim().compareTo(inputText.getText().trim())==0){for(int i = 0;i<5;i++){fields[i].setText(strings[i+1]);}}}fields[0].setEditable(false);}catch(SQLException ee){ee.printStackTrace();}}else if(e.getSource() == 确认修改){String sqlString = "UPDATE supplier SET gongyingshang ='"+fields[0].getText()+"',lianxidianhua='"+fields[1].getText()+"',dizhi='"+fields[2].getText()+"',youxi ang='"+fields[3].getText()+"',beizhu='"+fields[4].getText()+"'where gongyingshang='"+inputText.getText()+"'";try{sql.execute(sqlString);JOptionPane.showMessageDialog(this, "操作成功!","消息对话框",RMATION_MESSAGE);//更新表格中的数据for(int i = deModel.getRowCount()-1;i>=0;i--){deModel.removeRow(i);deModel.fireTableStructureChanged();}rs = sql.executeQuery("select * from supplier");while(rs.next()){for(int j = 0;j<6;j++){strings[j]=rs.getString(j+1);}deModel.addRow(strings);deModel.fireTableStructureChanged();//更新中的数据}fields[0].setEditable(true);}catch(SQLException ee){ee.printStackTrace();}for(int i = 0;i<5;i++){fields[i].setText("");}inputText.setText("");fields[0].requestFocus();//设置光标的位置,在第一个文本框上面}else if(e.getSource() == 删除){String sqlString = "DELETE FROM supplier WHERE gongyingshang ='"+inputText.getText()+"'";try{sql.execute(sqlString);//将表格中的内容清空for(int i = deModel.getRowCount()-1;i>=0;i--){deModel.removeRow(i);deModel.fireTableStructureChanged();}rs = sql.executeQuery("select * from supplier");while(rs.next()){for(int i = 0;i<6;i++){strings[i]=rs.getString(i+1);//把查询的结果填入表格中}deModel.addRow(strings);deModel.fireTableStructureChanged();//更新中的数据}JOptionPane.showMessageDialog(this, "操作成功!","消息对话框",RMATION_MESSAGE);inputText.setText("");}catch(SQLException ee){ee.printStackTrace();}}else if(e.getSource() == 添加){date=new Date();String sqlString = "INSERT INTO supplier VALUES('"+date+"','"+fields[0].getText()+"','"+fields[1].getText()+"','"+fields[2].getText()+"','"+fields[3].get Text()+"','"+fields[4].getText()+"')";try{sql.execute(sqlString);JOptionPane.showMessageDialog(this, "操作成功!","消息对话框",RMATION_MESSAGE);//更新表格中的数据for(int i = deModel.getRowCount()-1;i>=0;i--){deModel.removeRow(i);deModel.fireTableStructureChanged();}rs = sql.executeQuery("select * from supplier");while(rs.next()){for(int j = 0;j<6;j++){strings[j]=rs.getString(j+1);}deModel.addRow(strings);deModel.fireTableStructureChanged();//更新中的数据}}catch(SQLException ee){ee.printStackTrace();}for(int i = 0;i<5;i++){fields[i].setText("");}inputText.setText("");fields[0].requestFocus();//设置光标的位置,在第一个文本框上面}else if(e.getSource()==退出){this.dispose();}}}进入第三菜单(记录界面):在此界面下可进行对货物进货的记录的增删改查:库存记录设计代码如下:package source;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.table.DefaultTableModel;import java.sql.*;@SuppressWarnings("serial")public class plan extends JFrame implements ActionListener{JButton 添加,删除,退出;JTable table;//表JLabel label;//JTextField inputText;DefaultTableModel deModel = null;JSplitPane split;//拆分窗格JTextField []text = new JTextField[2];//用于填写签约信息的文本框String []name = {"日期","商品名","供应商","操作","数量"};String strings[] = new String[5];JPanel p1,p3;//二个面板JLabel []labels = new JLabel[5];JComboBox choice1,choice2,choice3,inputText;Connection con;Statement sql;ResultSet rs;String dbdriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";String dburl = "jdbc:sqlserver://localhost:1433;DatabaseName=LZS"; String user = "sa";String pass = "123";Box baseBox,box1,box2;//盒式布局plan() {setLayout(new BorderLayout());init();Toolkit tk = Toolkit.getDefaultToolkit();Image img = tk.getImage("e:/java文件/SuperMarket/picture/1.jpg");setIconImage(img);setTitle("进货计划");setBounds(130,80,960,600);;setResizable(false);try{Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");}catch(ClassNotFoundException classnotfound){classnotfound.printStackTrace();}}void init(){添加= new JButton("添加");删除= new JButton("删除");退出= new JButton("退出");添加.addActionListener(this);删除.addActionListener(this);退出.addActionListener(this);choice1=new JComboBox();choice2=new JComboBox();choice3=new JComboBox();inputText=new JComboBox();label = new JLabel("请输入想要删除的日期:"); //inputText = new JTextField(6);p1 = new JPanel();p1.add(label);p1.add(inputText);p1.add(添加);p1.add(删除);p1.add(退出);add(p1,BorderLayout.SOUTH);labels[0] = new JLabel("日期");labels[1] = new JLabel("商品名");labels[2] = new JLabel("供应商");labels[3] = new JLabel("操作");labels[4] = new JLabel("数量");for(int i = 0;i<2;i++){text[i] = new JTextField(20);}choice3.addItem("计划");choice3.addItem("已预定");//用盒式容器装要录入的数据和标签box1 = Box.createVerticalBox();box1.add(Box.createVerticalStrut(20));for(int i = 0;i<5;i++){box1.add(labels[i]);box1.add(Box.createVerticalStrut(70));}box2 = Box.createVerticalBox();box2.add(Box.createVerticalStrut(20));box2.add(text[0]);box2.add(Box.createVerticalStrut(60));box2.add(choice1);box2.add(Box.createVerticalStrut(60));box2.add(choice2);box2.add(Box.createVerticalStrut(60));box2.add(choice3);box2.add(Box.createVerticalStrut(60));box2.add(text[1]);box2.add(Box.createVerticalStrut(60));baseBox = Box.createHorizontalBox();baseBox.add(box1);baseBox.add(Box.createHorizontalStrut(15));baseBox.add(box2);add(baseBox,BorderLayout.EAST);//添加表格//添加表格deModel = new DefaultTableModel(name,0);table = new JTable(deModel);table.setCellSelectionEnabled(true);table.setEnabled(true);table.setShowHorizontalLines(true);table.setShowVerticalLines(true);split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false,newJScrollPane(table),baseBox);split.setDividerLocation(0.5);add(split,BorderLayout.CENTER);String sqlString = "select * from record";try{//连接数据库con = DriverManager.getConnection(dburl,user,pass);sql = con.createStatement();JOptionPane.showMessageDialog(this, "数据库连接成功!","消息对话框",RMATION_MESSAGE);rs = sql.executeQuery(sqlString);while(rs.next()){for(int i = 0;i<5;i++){strings[i]=rs.getString(i+1);//把查询的结果填入表格中}if(strings[3].trim().compareTo("计划")==0||strings[3].trim().compareTo("已预定")==0){inputText.addItem(strings[0]);deModel.addRow(strings);deModel.fireTableStructureChanged();}//更新中的数据}rs = sql.executeQuery("select * from goods");while(rs.next()){for(int i = 0;i<5;i++){strings[i]=rs.getString(i+1);//把查询的结果填入表格中}choice1.addItem(strings[1]);}rs = sql.executeQuery("select * from supplier");while(rs.next()){for(int i = 0;i<5;i++){strings[i]=rs.getString(i+1);//把查询的结果填入表格中}choice2.addItem(strings[1]);}}catch(SQLException ee){ee.printStackTrace();}}public void actionPerformed(ActionEvent e){if(e.getSource()==添加){String sqlString = "INSERT INTO record VALUES('"+text[0].getText()+"','"+choice1.getSelectedItem().toString()+"','"+choice2.getSelectedItem().to String()+"','"+choice3.getSelectedItem().toString()+"','"+text[1].getText()+"')";try{sql.execute(sqlString);//将表格中的内容清空for(int i = deModel.getRowCount()-1;i>=0;i--){deModel.removeRow(i);deModel.fireTableStructureChanged();}rs = sql.executeQuery("select * from record");while(rs.next()){for(int i = 0;i<5;i++){strings[i]=rs.getString(i+1);//把查询的结果填入表格中}if(strings[3].trim().compareTo("计划")==0||strings[3].trim().compareTo("已预定")==0){deModel.addRow(strings);deModel.fireTableStructureChanged();}//更新中的数据}JOptionPane.showMessageDialog(this, "操作成功!","消息对话框",RMATION_MESSAGE);}catch(SQLException ee){ee.printStackTrace();}for(int i = 0;i<2;i++){text[i].setText("");}}。
java数据库销售管理系统实验报告完整版12大连海事大学本科生实验报告数据库原理-操作实训院 (系): 交通运输管理学院专业: 电子商务课程名称: 数据库原理学号: 22 3494学生: 周慧敏任课教师: 贺琳完成日期: 年 12 月3 2020年5月29日1.实验目的掌握数据库模式设计,依据实际要求设计表结构,建立表的关系;结合一定的开发工具实现数据库应用程序的开发。
2.实验环境2.1 硬件环境:处理器:Intel(R) Core(TM) i3 CPU M 380 @ 2.53GHz 2.53GHz安装内存:(RAM):2GB(1.86GB可用)2.2 软件环境操作系统: Windows7数据库管理系统:微软公司的SQL Server开发工具: Eclipse3.需求分析销售管理系统,可用于企业的销售信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。
该软件用java语言编写,用SQLServer 数据库作为后台的数据库进行信息的存储,用SQL语句完成销售信息的添加,查询,修改,删除的操作。
用ODBC驱动实现前台Java与后台SQL数据库的连接。
Java语言跨平台性强,能够在windows,linux,ubuntu等系统下使用,方便简单,安全性好。
SQLServer 数据库高效安全,两者结合可相互利用各自的优势。
该系统实现的大致功能:42020年5月29日1.用户登陆界面。
该界面能够选择使用者的身份,”系统管理员,基本档案管理员,业务员”。
不同的身份有不同的操作界面和功能权限。
ID号和密码输入正确即可登录。
2.系统管理员界面,拥有最高权限。
提供了客户信息管理、产品信息管理、订单信息管理、发货管理与签收管理等功能。
3.基本档案管理员界面。
提供了客户信息管理、产品信息管理等功能。
4.业务员界面。
提供了订单信息管理、发货管理与签收管理等功能。
5.登录的用户信息分别存储在SQL数据库的”unpw表”中,如果用户信息不存在这个表中,将会无权利登录本管理系统。
大连海事大学本科生实验报告数据库原理-操作实训院(系):交通运输管理学院专业:电子商务课程名称:数据库原理学号:**********学生:周慧敏任课教师:**完成日期: 2013 年 12 月1.实验目的掌握数据库模式设计,依据实际要求设计表结构,建立表的关系;结合一定的开发工具实现数据库应用程序的开发。
2.实验环境2.1 硬件环境:处理器:Intel(R)Core(TM)***************** 2.53GHz安装内存:(RAM):2GB(1.86GB可用)2.2 软件环境操作系统:Windows7数据库管理系统:微软公司的SQL Server2005开发工具:Eclipse3.需求分析销售管理系统,可用于企业的销售信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。
该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成销售信息的添加,查询,修改,删除的操作。
用ODBC驱动实现前台Java与后台SQL数据库的连接。
Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。
SQLServer2005数据库高效安全,两者结合可相互利用各自的优势。
该系统实现的大致功能:1.用户登陆界面。
该界面可以选择使用者的身份,“系统管理员,基本档案管理员,业务员”。
不同的身份有不同的操作界面和功能权限。
ID号和密码输入正确即可登录。
2.系统管理员界面,拥有最高权限。
提供了客户信息管理、产品信息管理、订单信息管理、发货管理与签收管理等功能。
3.基本档案管理员界面。
提供了客户信息管理、产品信息管理等功能。
4.业务员界面。
提供了订单信息管理、发货管理与签收管理等功能。
5.登录的用户信息分别存储在SQL数据库的“unpw表”中,如果用户信息不存在这个表中,将会无权利登录本管理系统。
6.保证了本销售管理系统的安全性。
系统功能图如下:4.概念结构设计根据以上对系统的需求分析,系统设计,本系统使用的数据库实体分别为客户信息实体,产品信息实体,订单信息实体,发货单实体,签收单实体。
1:客户信息实体客户信息实体包括客户名称、单位地址、联系电话、地址、开户银行、银行账号、发票抬头、所在区域等属性。
客户信息实体的E-R图如图所示。
发货单实体包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、发货日期等属性,E-R图如图所示。
3:签收单实体签收单实体包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、收货日期等属性,E-R图如图所示。
unpw实体包括un、pw、qx等属性,E-R图如图所示。
5:产品信息实体产品信息实体主要包括产品名称、规格、型号、操作系统、产品描述、产品分类等属性。
E-R 图如图所示。
6:订单信息实体订单信息实体主要包括客户名称、联系人、联系电话、发货地址、最后到货期限(日期)以及产品名称、型号、数量、产品要求等属性。
E-R图如图所示。
实体属性表:5.逻辑结构设计(1)表-dbo.客户信息(客户信息表)客户信息表包括客户名称、单位地址、联系电话、地址、开户银行、银行帐号、发票抬头、所在区域等信息。
(2)表-dbo.产品信息(产品信息表)产品信息表包括产品名称、规格、型号、操作系统、产品描述、产品分类等信息。
订单信息表包括客户名称、联系人、联系电话、发货地址、最后到货期限(日期)以及产品名称、型号、数量、产品要求等信息。
(4)表-dbo.发货单信息(发货单表)发货单表主要包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、发货日期等信息。
签收单表主要包括客户名称、联系人、联系电话、发货地址、地址、产品名称、型号、数量、单价、运费、总价、收货日期等信息。
(6)表-dbo.unpw(用户表)用户表包括un、pw、qx等信息。
6.数据库实现(1)数据库关系图(2)SQL语句实现数据表的创建:(i)客户信息表创建:create table 客户信息表(客户名称 nchar(10) not null primary key , 单位地址 nchar(10),联系电话 nchar(10),地址 nchar(10),开户银行 nchar(10),银行账号 nchar(10),发票抬头 nchar(10),所在区域 nchar(10),)(ii)产品信息表创建:create table 产品信息表(产品名称 nchar(10) not null primary key , 规格 nchar(10),型号 nchar(10),操作系统 nchar(10),产品描述 nchar(10),产品分类 nchar(10),)(iii)订单信息表创建:create table 订单信息表(客户名称 nchar(10) not null primary key , 联系人 nchar(10),联系电话 nchar(10),发货地址 nchar(10),最后到货期限 nchar(10),产品名称 nchar(10),型号 nchar(10),数量 int,产品要求 nchar(10),)(iv)发货单表创建:create table 发货单表(客户名称 nchar(10) not null primary key , 联系人 nchar(10),联系电话 nchar(10),发货地址 nchar(10),地址 nchar(10),产品名称 nchar(10),型号 nchar(10),数量 int,单价 int,运费 int,总价 int,发货日期 nchar(10),)(v)收货单表创建:create table 收货单表(客户名称 nchar(10) not null primary key , 联系人 nchar(10),联系电话 nchar(10),发货地址 nchar(10),地址 nchar(10),产品名称 nchar(10),型号 nchar(10),数量 int,单价 int,运费 int,总价 int,收货日期 nchar(10),)(vi)管理员信息表创建:create table unpw表(qx int not null primary key ,un varchar(12) not null,pw varchar(12) not null)7.应用系统设计实现(1)用户登录模块(2)各用户操作模块(i)系统管理员操作模块(ii)基本档案管理员操作模块(iii)业务员操作模块(3)系统管理员登录在登陆界面选择“系统管理员”角色,输入正确的ID和密码。
验证成功则可进入系统管理员管理界面。
系统管理员ID号和登录密码存在数据库中的管理员信息表。
表中存在的管理员才允许登录。
(i)点击客户信息管理,弹出如下界面:(ii)点击显示按钮后,会出现数据库里保存的客户信息:(iii)点击增加按钮,弹出如下界面,输入要增加的客户信息,成功后会弹出增加成功的提示窗口:(iv)增加客户信息成功后客户信息管理界面会增加一行客户信息,如图所示:(v)选中一条客户信息,点击删除按钮,成功后会出现删除成功的提示窗口:(vi)成功删除Tom客户的信息后,客户信息管理界面变化如下:(vii)选中一行客户信息,点击修改按钮,出现如下界面,输入要修改的信息,成功后弹出修改成功的提示窗口:(此处修改了客户Tom的联系电话)(viii)点击查询按钮,弹出如下窗口:在文本框中输入“Hei“,即可查询所在区域为”Hei“的客户信息:其他模块与客户信息管理模块类似,均能实现信息的查询、修改、删除、增加、显示等功能,在此不再赘述;点击退出系统即可完成本次操作。
经过系统一系列的增删改查操作之后,sql sever 2005数据库上的客户信息表同时也发生了改变:8.实验总结(实验心得)本次操作实训虽然很辛苦,但实在是受益匪浅。
在操作实训过程中碰到了很多问题,刚开始的时候,还真不知道从哪里下手。
但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次操作实训我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。
理论和实践的相结合是学习最有效的方法。
在实验的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,这次操作实训之后,一定把以前所学过的知识重新温故。
通过这次操作实训使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
附录:代码Control.javapackage zhm;public class Control {public static void main(String[] args) {new DLFrame();}}DLFrame.javapackage zhm;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class DLFrame extends JFrame implements ActionListener, ItemListener {// 登录界面private static final long serialVersionUID = 1L;JPanel p1 = null;JPanel p2 = null;JPanel p3 = null;JLabel userName = new JLabel("用户:");JTextField txtUser = new JTextField();JLabel password = new JLabel("密码:");JPasswordField txtPwd = new JPasswordField(6);JLabel role = new JLabel("角色:");JComboBox<String> cbrole = new JComboBox<String>();JButton btnLogin = new JButton("登录");JButton btncz = new JButton("重置");JButton btnCancel = new JButton("取消");JLabel imageLabel;Icon image;static int OK = 1;static int CANCEL = 0;int actionCode = 0;Connection con = null;Statement stmt = null;ResultSet rs = null;int qxian = 0;@SuppressWarnings("deprecation")public DLFrame() {// 构造方法super("登录界面");p1 = new JPanel();p2 = new JPanel();p3 = new JPanel();cbrole.addItem("系统管理员");cbrole.addItem("基本档案管理员");cbrole.addItem("业务员");/*image = new ImageIcon("picture\\st.jpg");imageLabel = new JLabel(image);p1.add(imageLabel);*/this.setLayout(new FlowLayout());this.setBounds(150, 150, 250, 250);p2.setLayout(new GridLayout(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);}public void connDB() { // 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=销售管理系统","sa", "2191826");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void itemStateChanged(ItemEvent e) {if (e.getStateChange() == ItemEvent.SELECTED) {JComboBox<?> jcb = (JComboBox<?>) e.getSource();qxian = jcb.getSelectedIndex();}}@SuppressWarnings("deprecation")public void actionPerformed(ActionEvent e) {Object source = e.getSource();String un = null;String pw = null;boolean success = false;// 用于判断是否登录成功if (source == btnLogin) {if (txtUser.getText().equals("") || txtPwd.getPassword().equals("")) {// 判断是否输入了用户名和密码JOptionPane.showMessageDialog(null, "登录名和密码不能为空!");} else {this.connDB();try {rs = stmt.executeQuery("select * from unpw where qx="+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) {new sysManagerFrame();// 进入系统管理员界面}if (qxian==1) {new baseManagerFrame();// 进入基本档案管理员界面}if (qxian==2) {new businessManFrame();// 进入业务员界面}success = true;break;} else {JOptionPane.showMessageDialog(null, "密码错误!");txtPwd.setText("");success = true;}}}if (!success) {JOptionPane.showMessageDialog(null, "登录名错误!");txtUser.setText("");txtPwd.setText("");}} catch (SQLException e1) {e1.printStackTrace();}}} else if (source == btncz) {txtUser.setText("");txtPwd.setText("");} else if (source == btnCancel) {System.exit(0);}}}sysManagerFrame.javapackage zhm;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class sysManagerFrame extends JFrame implements ActionListener {// 系统管理员界面private static final long serialVersionUID = 1L;JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton btns = new JButton("客户信息管理");JButton btnc = new JButton("产品信息管理");JButton btnsc = new JButton("订单信息管理");JButton btng = new JButton("发货管理");JButton btnu = new JButton("签收管理");JButton btnClose = new JButton("退出管理系统");JLabel l = new JLabel("系统管理员");@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();}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "客户信息管理")if (e.getActionCommand() == "产品信息管理") {new ProductManager("产品信息管理").display();}if (e.getActionCommand() == "订单信息管理") {new OrderManager("订单信息管理").display();}if (e.getActionCommand() == "发货管理") {new sendManager("发货管理").display();}if (e.getActionCommand() == "签收管理") {new ReceiveManager("签收管理").display();}if (e.getActionCommand() == "退出管理系统") {System.exit(0);}}}baseManagerFrame.javapackage zhm;import java.awt.event.*;import javax.swing.*;public class baseManagerFrame extends JFrame implements ActionListener {// 系统管理员界面private static final long serialVersionUID = 1L;JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton btns = new JButton("客户信息管理");JButton btnc = new JButton("产品信息管理");JButton btnClose = new JButton("退出管理系统");JLabel l = new JLabel("基本档案管理员");@SuppressWarnings("deprecation")baseManagerFrame() {// 构造方法super("销售管理系统");setSize(205, 300);add("North", p1);add("Center", p2);p1.add(l);p2.add(btns);p2.add(btnc);p2.add(btnClose);btns.addActionListener(this);btnc.addActionListener(this);btnClose.addActionListener(this);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);show();}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "客户信息管理")if (e.getActionCommand() == "产品信息管理") {new ProductManager("产品信息管理").display();}if (e.getActionCommand() == "订单信息管理") {new OrderManager("订单信息管理").display();}if (e.getActionCommand() == "退出管理系统") {System.exit(0);}}}businessManFrame.javapackage zhm;import java.awt.event.*;import javax.swing.*;public class businessManFrame extends JFrame implements ActionListener {// 业务员界面private static final long serialVersionUID = 1L;JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton btnsc = new JButton("订单信息管理");JButton btng = new JButton("发货管理");JButton btnu = new JButton("签收管理");JButton btnClose = new JButton("退出管理系统");JLabel l = new JLabel("业务员");@SuppressWarnings("deprecation")businessManFrame() {// 构造方法super("销售管理系统");setSize(205, 300);add("North", p1);add("Center", p2);p1.add(l);p2.add(btnsc);p2.add(btng);p2.add(btnu);p2.add(btnClose);btnsc.addActionListener(this);btng.addActionListener(this);btnu.addActionListener(this);btnClose.addActionListener(this);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);show();}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "订单信息管理") {new OrderManager("订单信息管理").display();}if (e.getActionCommand() == "发货管理") {new sendManager("发货管理").display();}if (e.getActionCommand() == "签收管理") {new ReceiveManager("签收管理").display();}if (e.getActionCommand() == "退出管理系统") {System.exit(0);}}}CustomerAdd.javapackage zhm;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class CustomerAdd extends JFrame implements ActionListener{// 用于客户信息管理中增加或修改某条记录的界面private static final long serialVersionUID = 1L;JLabel l1 = new JLabel("客户名称:");JLabel l2 = new JLabel("单位地址:");JLabel l3 = new JLabel("联系电话:");JLabel l4 = new JLabel("地址:");JLabel l5 = new JLabel("开户银行:");JLabel l6 = new JLabel("银行账号:");JLabel l7 = new JLabel("发票抬头:");JLabel l8 = new JLabel("所在区域:");JTextField t1 = new JTextField(10);JTextField t2 = new JTextField(10);JTextField t3 = new JTextField(10);JTextField t4 = new JTextField(10);JTextField t5 = new JTextField(10);JTextField t6 = new JTextField(10);JTextField t7 = new JTextField(10);JTextField t8 = new JTextField(10);JButton btnOK = new JButton("确定");JButton btnCancel = new JButton("取消");JPanel p = new JPanel();Connection con = null;Statement stmt = null;ResultSet rs = null;boolean isNewsm = true;// 用于判断是否显示客户信息管理的界面@SuppressWarnings("deprecation")public CustomerAdd() {// 构造方法this.setTitle("增加");this.setBounds(300, 300, 225, 350);p.setLayout(new FlowLayout(FlowLayout.LEFT));p.add(l1);p.add(t1);p.add(l2);p.add(t2);p.add(l3);p.add(t3);p.add(l4);p.add(t4);p.add(l5);p.add(t5);p.add(l6);p.add(t6);p.add(l7);p.add(t7);p.add(l8);p.add(t8);p.add(btnOK);p.add(btnCancel);this.add(p);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btnOK.addActionListener(this);btnCancel.addActionListener(this);this.show();}public void connDB() { // 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=销售管理系统","sa", "2191826");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void insertst() { // 插入记录String x = null;String y = null;String z = null;String a = null;String b = null;String c = null;String d = null;String e = null;x = t1.getText();y = t2.getText();z = t3.getText();a = t4.getText();b = t5.getText();c = t6.getText();d = t7.getText();e = t8.getText();if (this.getTitle() == "修改") {// 如果是修改记录,先删除再增加try {this.connDB();@SuppressWarnings("unused")int rs1 = stmt.executeUpdate("delete from 客户信息where 客户名称='"+ x + "'");} catch (SQLException e1) {e1.printStackTrace();}}String str = "insert into 客户信息values('" + x + "','" + y + "','"+ z + "','" + a + "','" + b + "','" + c + "','" + d + "','" + e + "')";this.connDB();// 连接数据库try {stmt.executeUpdate(str);JOptionPane.showMessageDialog(null, this.getTitle() + "成功!","提示", RMATION_MESSAGE, new ImageIcon("menu4.gif"));this.setVisible(false);}catch (SQLException e1) {JOptionPane.showMessageDialog(null, "客户名称已存在!");t1.setText("");}}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "确定") {this.insertst();if (isNewsm) {new CustomerManager("客户信息管理").display();}isNewsm = true;}if (e.getActionCommand() == "取消") {this.setVisible(false);new CustomerManager("客户信息管理").display();}}}CustomerManager.javapackage zhm;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;public class CustomerManager extends JFrame implements ActionListener {// 客户信息管理private static final long serialVersionUID = 1L;JPanel p = new JPanel();JButton btnAdd = new JButton("增加");JButton btnDelete = new JButton("删除");JButton btnAlter = new JButton("修改");JButton btnSearch = new JButton("查询");JButton btnDisplay = new JButton("显示");JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();;JTable sTable;JScrollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs = null;Object[][] playerInfo;CustomerSelect sst;String mxh = null;boolean bstd = false;CustomerManager(String title) {// 构造方法super(title);add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB(); // 连接数据库//this.display();this.setBounds(300, 300, 600, 450);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);show();}CustomerManager(CustomerSelect sst,String title) {// 构造方法super(title);this.sst = sst;bstd = true;add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(300, 300, 600, 450);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);this.setResizable(false);show();}public void display() {// 显示所有客户的基本信息int i = 0;int j = 0;List<String> al = new ArrayList<String>();try {rs = stmt.executeQuery("select * from 客户信息");while (rs.next()) { // 找出表中的记录数赋给ial.add(rs.getString("客户名称"));al.add(rs.getString("单位地址"));al.add(rs.getString("联系电话"));al.add(rs.getString("地址"));al.add(rs.getString("开户银行"));al.add(rs.getString("银行账号"));al.add(rs.getString("发票抬头"));al.add(rs.getString("所在区域"));i++;}} catch (SQLException e) {e.printStackTrace();}playerInfo = new Object[i][8];String[] columnNames = { "客户名称", "单位地址", "联系电话", "地址", "开户银行", "银行账号", "发票抬头", "所在区域",};try {rs = stmt.executeQuery("select * from 客户信息order by 客户名称");while (rs.next()) {playerInfo[j][0] = rs.getString("客户名称");playerInfo[j][1] = rs.getString("单位地址");playerInfo[j][2] = rs.getString("联系电话");playerInfo[j][3] = rs.getString("地址");playerInfo[j][4] = rs.getString("开户银行");playerInfo[j][5] = rs.getString("银行账号");playerInfo[j][6] = rs.getString("发票抬头");playerInfo[j][7] = rs.getString("所在区域");j++;}} catch (SQLException e) {e.printStackTrace();}sTable = new JTable(playerInfo, columnNames);// 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);}public void connDB() { // 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=销售管理系统","sa", "2191826");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭数据库连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void delete() {// 删除某个客户的基本信息String xh = null;String xm = null;@SuppressWarnings("unused")String xn = null;@SuppressWarnings("unused")String xp = null;@SuppressWarnings("unused")String xr = null;String xs = null;String xb = null;@SuppressWarnings("unused")String yx = null;int row = -1;row = sTable.getSelectedRow();if (row == -1) {// 判断要删除的信息是否被选中JOptionPane.showMessageDialog(null, "请选择要删除的记录!");} else {if (!bstd) {// 判断选择的是不是查询后的结果int j1 = 0;try {rs = stmt.executeQuery("select * from 客户信息");while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应xh = rs.getString("客户名称");xm = rs.getString("单位地址");xn = rs.getString("联系电话");xp = rs.getString("地址");xr = rs.getString("开户银行");xs = rs.getString("银行账号");xb = rs.getString("发票抬头");yx = rs.getString("所在区域");j1++;}} catch (SQLException e) {e.printStackTrace();}int i1 = 0;try {@SuppressWarnings("unused")int rs1 = stmt.executeUpdate("delete from 客户信息where 客户名称='"+ xh + "'"); // 删除数据库中当前被选中的记录JOptionPane.showMessageDialog(null, "记录删除成功!");this.dispose();new CustomerManager("客户信息管理").display();} catch (SQLException e) {e.printStackTrace();}} else {try {@SuppressWarnings("unused")int rs1 = stmt.executeUpdate("delete from 客户信息where 客户名称='"+ xh + "'");JOptionPane.showMessageDialog(null, "记录删除成功!");this.dispose();new CustomerManager("客户信息管理").display();} catch (SQLException e) {e.printStackTrace();}}}}public void update() {// 修改某个客户的基本信息String xh = null;String xm = null;String xn = null;String xp = null;String xr = null;String xs = null;String xb = null;String yx = null;int row = -1;row = sTable.getSelectedRow();if (row == -1) {JOptionPane.showMessageDialog(null, "请选择要修改的记录!");} else {int j1 = 0;try {if (!bstd) {// 判断选择的是不是查询后的结果rs = stmt.executeQuery("select * from 客户信息");} else {rs = stmt.executeQuery("select * from 客户信息where 客户名称='" + xh+ "'");}while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应xh = rs.getString("客户名称");xm = rs.getString("单位地址");xn = rs.getString("联系电话");xp = rs.getString("地址");xr = rs.getString("开户银行");xs = rs.getString("银行账号");xb = rs.getString("发票抬头");yx = rs.getString("所在区域");j1++;}} catch (SQLException e) {e.printStackTrace();}CustomerAdd cadd = new CustomerAdd();cadd.setTitle("修改");cadd.t1.setText(xh);cadd.t2.setText(xm);cadd.t3.setText(xn);cadd.t4.setText(xp);cadd.t5.setText(xr);cadd.t6.setText(xs);cadd.t7.setText(xb);cadd.t8.setText(yx);cadd.t1.setEnabled(false);this.dispose();}}public void select() {// 显示某个查询的结果String mx;mx = sst.x;playerInfo = new Object[1][8];String[] columnNames = { "客户名称", "单位地址", "联系电话", "地址", "开户银行", "银行账号", "发票抬头", "所在区域"};try {rs = stmt.executeQuery("select * from 客户信息where 所在区域='" + mx + "'");while (rs.next()) {playerInfo[0][0] = rs.getString("客户名称");playerInfo[0][1] = rs.getString("单位地址");playerInfo[0][2] = rs.getString("联系电话");playerInfo[0][3] = rs.getString("地址");playerInfo[0][4] = rs.getString("开户银行");playerInfo[0][5] = rs.getString("银行账号");playerInfo[0][6] = rs.getString("发票抬头");playerInfo[0][7] = rs.getString("所在区域");}} catch (SQLException e) {e.printStackTrace();}if (playerInfo[0][7] == null) {this.dispose();JOptionPane.showMessageDialog(null, "客户所在区域不存在!");new CustomerManager("客户信息管理").display();} else {sTable = new JTable(playerInfo, columnNames);// 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);}} public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "增加") {new CustomerAdd();this.dispose();}if (e.getActionCommand() == "删除") {this.delete();}if (e.getActionCommand() == "修改") {this.update();}if (e.getActionCommand() == "查询") {sst = new CustomerSelect();this.dispose();}if (e.getActionCommand() == "显示") {this.dispose();new CustomerManager("客户信息管理").display();}}}CustomerSelect.javapackage zhm;import java.awt.event.*;import javax.swing.*;public class CustomerSelect extends JFrame implements ActionListener {// 用于客户信息管理中查询时输入所在区域的界面private static final long serialVersionUID = 1L;JLabel ltitle = new JLabel("所在区域:");JTextField t1 = new JTextField(8);JButton btnOK = new JButton("确定");JPanel p = new JPanel();String x = null;@SuppressWarnings("deprecation")public CustomerSelect() { // 构造方法p.add(ltitle);p.add(t1);p.add(btnOK);add(p);this.setBounds(450, 420, 300, 240);btnOK.addActionListener(this);this.setResizable(false);this.show();}public void actionPerformed(ActionEvent e) {x = t1.getText();// 取得当前输入所在区域的值if (x.equals("")) {// 判断是否输入了所在区域JOptionPane.showMessageDialog(null, "所在区域不能为空,请重新输入!");} else {this.dispose();new CustomerManager(this,"客户信息管理").select();}}}ProductAdd.javapackage zhm;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class ProductAdd extends JFrame implements ActionListener{// 用于产品信息管理中增加或修改某条记录的界面private static final long serialVersionUID = 1L;JLabel l1 = new JLabel("产品名称:");JLabel l2 = new JLabel("规格:");JLabel l3 = new JLabel("型号:");JLabel l4 = new JLabel("操作系统:");JLabel l5 = new JLabel("产品分类:");JLabel l6 = new JLabel("产品描述:");JTextField t1 = new JTextField(10);JTextField t2 = new JTextField(10);JTextField t3 = new JTextField(10);JTextField t4 = new JTextField(10);JTextField t5 = new JTextField(10);JTextField t6 = new JTextField(10);JButton btnOK = new JButton("确定");JButton btnCancel = new JButton("取消");JPanel p = new JPanel();Connection con = null;Statement stmt = null;ResultSet rs = null;boolean isNewsm = true;// 用于判断是否显示产品信息管理的界面public ProductAdd() {// 构造方法this.setTitle("增加");this.setBounds(300, 300, 220, 350);p.setLayout(new FlowLayout(FlowLayout.LEFT));p.add(l1);p.add(t1);p.add(l2);p.add(t2);p.add(l3);p.add(t3);p.add(l4);p.add(t4);p.add(l5);p.add(t5);p.add(l6);p.add(t6);p.add(btnOK);p.add(btnCancel);this.add(p);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btnOK.addActionListener(this);btnCancel.addActionListener(this);。