好莱坞icloud照种子1.2.3.4波icloud照

&>&&>&&>&&>&学生选课(数据库课程设计)(java+sqlsever数据库+设计文档)
学生选课(数据库课程设计)(java+sqlsever数据库+设计文档)
上传大小:2.04MB
sqlsever数据库课程设计,内含java(swing)工程+sqlsever数据库+开发文档,可直接食用
综合评分:3(2位用户评分)
所需积分:1
下载次数:196
审核通过送C币
创建者:amixuse
创建者:windy8848
创建者:aotumemedazhao1996
课程推荐相关知识库
上传者其他资源上传者专辑
数据库热门标签
VIP会员动态
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
学生选课(数据库课程设计)(java+sqlsever数据库+设计文档)
会员到期时间:剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:2790人阅读
数据库(18)
原文:http://blog.chinaunix.net/uid--id-191915.html
—图和相关说明
类别(类别编号,类别名称,上级类别)
仓库(仓库编号,隶属单位,备注)
用户(用户名,密码,权限类型);
客户(客户编号,联系人,单位,联系电话,传真,通信地址,邮政编码)
产品(编号,名称,规格,计算单位,参考价格,数量下限,数量下限,有效期,警告
出库(出库类型,产品类型,单价,数量,总价格,客户单位,出库仓库,经办用户,出库日期)
入库(入库类型,产品名称,生产日期,单价,数量,总价格,客户单位,入库仓库,经办用户,入库日期)
库存(产品入库单价,库存数量,生产日期)
&&逻辑设计
(一)、表的定义如下 :
Client表(客户信息表)&&&&&&&&&Product(产品信息表)
ProinStore(库存信息表)&&&&&&&&Takeout(出库表)
StoreIn(入库表)&&&&&&&&&&&&&&Users(用户表)
ProType(产品类型表)&&&&&&&Storehouse(仓库信息表)
&(二)、视图定义如下:
一、report2(报表视图)
CREATE VIEW&&Report2
SELECT SiType, Pid, Pprice, Pnum, (Pprice * Pnum) As Amount,
&Cid, Sid, EmpName, OptDate FROM StoreIn
SELECT Ttype, Pid, Pprice, Pnum, (Pprice * Pnum) As Amount, Cid, Sid, EmpName, OptDate FROM TakeOut
二、 库存统计视图
CREATE VIEW&&Total_Num
SELECT dbo.ProInStore.Pid, SUM(dbo.ProInStore.Pnum) AS Total
FROM dbo.ProInStore INNER JOIN
&&&&&&dbo.Product ON dbo.ProInStore.Pid = dbo.Product.Pid
GROUP BY dbo.ProInStore.Pid
三、库存视图
CREATE VIEW dbo.v_ProInStore
SELECT p.Pid, SUM(s.Pnum) AS SumNum
FROM dbo.Product p INNER JOIN
&&&&&&dbo.ProInStore s ON p.Pid = s.Pid
GROUP BY p.Pid
四、入库视图
CREATE VIEW dbo.v_storein
SELECT p.Pid, SUM(i.Pnum) AS SumNum, SUM(i.Pnum * i.Pprice)
&&&&&&AS SumPrice
FROM dbo.Product p INNER JOIN
&&&&&&dbo.StoreIn i ON p.Pid = i.Pid
GROUP BY p.Pid
五、出库视图
CREATE VIEW dbo.v_takeout
SELECT p.Pid, SUM(t.Pnum) AS SumNum, SUM(t.Pnum * t.Pprice)
&&&&&&AS SumPrice
FROM dbo.Product p INNER JOIN
&&&&&&dbo.TakeOut t ON p.Pid = t.Pid
GROUP BY p.Pid
六、失效期统计视图
CREATE VIEW dbo.Valid
SELECT dbo.ProInStore.SpId AS&库存记录编号, dbo.Product.Pname AS&产品名称,
&&&&&&dbo.ProInStore.Pprice AS&产品价格, dbo.ProInStore.Pnum AS&产品数量,
&&&&&&dbo.ProInStore.MakeDate AS&生产日期, dbo.Storehouse.Sname AS&仓库名称,
&&&&&&ROUND(DATEDIFF(day, DATEADD(day, dbo.Product.Valid, dbo.ProInStore.MakeDate),
&&&&&&GETDATE()), 0) AS&距离失效期的天数
FROM dbo.ProInStore INNER JOIN
&&&&&&dbo.Product ON dbo.ProInStore.Pid = dbo.Product.Pid AND DATEDIFF(day,
&&&&&&GETDATE(), dbo.ProInStore.MakeDate)
&&&&&&&= dbo.Product.Valid - dbo.Product.AlarmDays INNER JOIN
&&&&&&dbo.Storehouse ON dbo.ProInStore.Sid = dbo.Storehouse.Sid
总体模块设计如下:
模块一(基本信息管理)(由本人完成)
准备工作:
完成对数据库连接和操作的类
添加一个指向对象的指针
添加一个指向对象的指针
初始化—连接数据库
执行语句,
备份数据库
恢复数据库
一、用户登陆:
实现代码如下:
请输入用户名
请输入密码
定义对象,用于从表中读取数据
如果读取的数据与用户输入数据不同,则返回
用户信息不正确,无法登录!
你可能是非法用户警告
二、客户的实现代码
void CClientManDlg::Refresh_Data()
&&&&UpdateData(TRUE); //将控件的值读取到成员变量中
&&&&CString cS
&&&&CString cC&&//读取客户类型值
&&&&cCtype.Format(&%d&, m_Ctype.GetCurSel() + 1);
&&&&//设置SELECT语句,按客户单位排序
&&&&cSource = &SELECT Cid, Cname AS&客户单位, Contact AS&联系人, Address AS&通信地址,&;
&&&&cSource += & Postcode AS&邮政编码, Phone AS&联系电话, Fax AS&传真电话, Memo AS&备注&;
&&&&cSource += & FROM Client WHERE Ctype=& + cCtype + & ORDER BY Cname&;
&&&&m_adodc.SetRecordSource(cSource);
&&&&m_adodc.Refresh();
&&&&//设置表格列宽度
&&&&_variant_t vI
&&&&vIndex = long(0);
&&&&m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
BOOL CClientManDlg::OnInitDialog()
&&&&CDialog::OnInitDialog();
&&&&// TODO: Add extra initialization here
&&&&m_Ctype.SetCurSel(0);&&//设置客户类型
&&&&Refresh_Data();&&//刷新表格中的记录集
&&&&return TRUE;&&// return TRUE unless you set the focus to a control
&&&&&&&&&&&&&&&&&&// EXCEPTION: OCX Property Pages should return FALSE
void CClientManDlg::OnAddButton()
&&&&// TODO: Add your control notification handler code here
&&&&UpdateData(TRUE);
&&&&//打开编辑对话框
&&&&CClientEditD
&&&&dlg.cCid = &&;
&&&&dlg.iCtype = m_Ctype.GetCurSel() + 1;
&&&&if (dlg.DoModal() == IDOK)
&&&&&&&&Refresh_Data();
void CClientManDlg::OnSelchangeCtypeCombo()
&&&&// TODO: Add your control notification handler code here
&&&&Refresh_Data();
void CClientManDlg::OnModiButton()
&&&&// TODO: Add your control notification handler code here
&&&&if (m_adodc.GetRecordset().GetEof())
&&&&&&&&MessageBox(&请选择要修改的记录&);
&&&&UpdateData(TRUE);
&&&&CClientEditD
&&&&dlg.cCid = m_datagrid.GetItem(0); //记录编号
&&&&dlg.iCtype = m_Ctype.GetCurSel() + 1;&&//客户类型
&&&&dlg.m_Cname = m_datagrid.GetItem(1); //单位名称
&&&&dlg.cCname = m_datagrid.GetItem(1);
&&&&dlg.m_Contact = m_datagrid.GetItem(2); //联系人
&&&&dlg.m_Address = m_datagrid.GetItem(3); //通信地址
&&&&dlg.m_Postcode = m_datagrid.GetItem(4); //邮政编码
&&&&dlg.m_Phone = m_datagrid.GetItem(5); //联系电话
&&&&dlg.m_Fax = m_datagrid.GetItem(6); //传真
&&&&dlg.m_Memo = m_datagrid.GetItem(7); //备注信息
&&&&if (dlg.DoModal() == IDOK)
&&&&&&&&Refresh_Data();
void CClientManDlg::OnDelButton()
&&&&// TODO: Add your control notification handler code here
&&&&if (m_adodc.GetRecordset().GetEof())
&&&&&&&&MessageBox(&请选择要删除的记录&);
&&&&CString C
&&&&Cid = m_datagrid.GetItem(0);
&&&&CStoreI
&&&&if (obj.HaveClient(Cid) == 1)
&&&&&&&&MessageBox(&客户出现在入库单中,不能删除&);
&&&&CTakeOut obj1;
&&&&if (obj1.HaveClient(Cid) == 1)
&&&&&&&&MessageBox(&客户出现在出库单中,不能删除&);
&&&&if (MessageBox(&是否删除当前记录&,&请确定&, MB_YESNO) == IDYES)
&&&&&&&&CC
&&&&&&&&clt.sql_delete(m_datagrid.GetItem(0));
&&&&&&&&Refresh_Data();
三、仓库信息管理
void CStoreHouseManDlg::Refresh_Data()
&&&&UpdateData(TRUE);
&&&&CString cS
&&&&cSource = &SELECT Sid, Sname AS&仓库单位, Memo AS&备注&;
&&&&cSource += & FROM Storehouse ORDER BY Sname&;
&&&&m_adodc.SetRecordSource(cSource);
&&&&m_adodc.Refresh();
&&&&//设置表格列宽度
&&&&_variant_t vI
&&&&vIndex = long(0);
&&&&m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
&&&&vIndex = long(1);
&&&&m_datagrid.GetColumns().GetItem(vIndex).SetWidth(100);
&&&&vIndex = long(2);
&&&&m_datagrid.GetColumns().GetItem(vIndex).SetWidth(420);
void CStoreHouseManDlg::OnAddButton()
&&&&// TODO: Add your control notification handler code here
&&&&UpdateData(TRUE);
&&&&//打开编辑对话框
&&&&CStoreHouseEditD
&&&&dlg.cSid = &&;
&&&&if (dlg.DoModal() == IDOK)
&&&&&&&&Refresh_Data();
void CStoreHouseManDlg::OnModiButton()
&&&&// TODO: Add your control notification handler code here
&&&&if (m_adodc.GetRecordset().GetEof())
&&&&&&&&MessageBox(&请选择要修改的记录&);
&&&&UpdateData(TRUE);
&&&&CStoreHouseEditD
&&&&dlg.cSid = m_datagrid.GetItem(0); //记录编号
&&&&dlg.m_Sname = m_datagrid.GetItem(1); //仓库名称
&&&&dlg.m_Memo = m_datagrid.GetItem(2); //备注信息
&&&&if (dlg.DoModal() == IDOK)
&&&&&&&&Refresh_Data();&&&&
void CStoreHouseManDlg::OnDelButton()
&&&&// TODO: Add your control notification handler code here
&&&&if (m_adodc.GetRecordset().GetEof())
&&&&&&&&MessageBox(&请选择要删除的记录&);
&&&&CString S
&&&&Sid = m_datagrid.GetItem(0);
&&&&CStoreI
&&&&if (obj.HaveStore(Sid) == 1)
&&&&&&&&MessageBox(&此仓库信息出现在入库单中,不能删除&);
&&&&CTakeOut obj1;
&&&&if (obj1.HaveStore(Sid) == 1)
&&&&&&&&MessageBox(&此仓库信息出现在出库单中,不能删除&);
&&&&CProInStore obj2;
&&&&if (obj2.HaveStore(Sid) == 1)
&&&&&&&&MessageBox(&此仓库信息出现在库存产品信息中,不能删除&);
&&&&if (MessageBox(&是否删除当前记录&,&请确定&, MB_YESNO) == IDYES)
&&&&&&&&CS
&&&&&&&&sh.sql_delete(Sid);
&&&&&&&&Refresh_Data();
&&&&}&&&&&&
BOOL CStoreHouseManDlg::OnInitDialog()
&&&&CDialog::OnInitDialog();
&&&&// TODO: Add extra initialization here
&&&&Refresh_Data();
&&&&return TRUE;&&// return TRUE unless you set the focus to a control
&&&&&&&&&&&&&&&&&&// EXCEPTION: OCX Property Pages should return FALSE
四、用户信息管理
void CUserManDlg::OnAddButton()
&&&&CUserEditD
&&&&dlg.iUserType = 2;
&&&&if (dlg.DoModal() == IDOK)
&&&&&&&&m_adodc.Refresh(); }
void CUserManDlg::OnModiButton()
{&&&if (m_datalist.GetText() == &&)
&&&&&&&&MessageBox(&请选择用户&);
&&&&if (curUser.GetUserName() != &Admin& && curUser.GetUserName() != m_datalist.GetText()
&&&&&&&&&& m_datalist.GetBoundText() == &1&)
&&&&{&&&//除Admin外,其他管理员只能修改普通用户信息
&&&&&&&&MessageBox(&只能对普通用户进行密码复位&);
&&&&if (MessageBox(&是否对当前用户进行密码复位&,&请确认&, MB_YESNO) == IDYES){&&&&&CU
&&&&&&&&usr.SetPwd(&888888&); //设置默认密码
&&&&&&&&usr.sql_updatePwd(m_datalist.GetText());
&&&&&&&&MessageBox(&密码已经复位&);}}
void CUserManDlg::OnDelButton()
{ if (m_datalist.GetText() == &&){
&&&&&&&&MessageBox(&请选择用户&);
&&&&if (curUser.GetUserName() != &Admin& && m_datalist.GetBoundText() == &1&){&&//除Admin外,其他管理员只能删除普通用户
&&&&&&&&MessageBox(&只能删除普通用户&);
&&&&&&&&}if (m_datalist.GetText() == &Admin&){
&&&&&&&&MessageBox(&不能删除Admin用户&);
&&&&if (MessageBox(&是否删除当前用户&,&请确认&, MB_YESNO) == IDYES)
&&&&{&&&CU
&&&&&&&&usr.sql_delete(m_datalist.GetText());
&&&&&&&&m_adodc.Refresh();}&}
五、用户密码修改
void CChangePwdDlg::OnOK()
{//将对话框中编辑框的数据读取到成员变量中
&&&&UpdateData(TRUE);
&&&&//检查数据有效性
&&&&if (m_OldPwd == &&)
&&&&&&&&MessageBox(&请输入旧密码&);
&&&&if (m_NewPwd1 == &&)
&&&&&&&&MessageBox(&请输入新密码&);
&&&&if (m_NewPwd1 != m_NewPwd2)
&&&&&&&&MessageBox(&两次输入的新密码不同&);
&&&&//定义CUsers对象,用于从表Users中读取数据
&&&&user.GetData(m_UserName);
&&&&//如果读取的数据与用户输入数据不同,则返回
&&&&if (user.GetPwd() != m_OldPwd)
&&&&&&&&MessageBox(&用户密码不正确!&);
&&&&user.SetPwd(m_NewPwd1);
&&&&user.sql_updatePwd(m_UserName);
&&&&MessageBox(&密码修改成功,下次登录请使用新密码&);
&&&&CDialog::OnOK();
一、进入系统
输入密码正确进入主界面
二、进入主界面
三、进入客户信息管理
点击添加按钮
选中要修改的表项
点击修改:
同样选中要删除的表项点击删除得到如下
点击确定即可删除,不想删除点击“否”。
进入仓库管理
操作步骤相同不在赘述了。
进入用户管理六、进入用户密码修改
一、领略到了数据库设计在计算机领域的重要性。数据库作为一个永久存储形式在应用中发挥着重要的作用。在数据库设计中,我明白了数据库设计中不是范式越高越好的。我们要根据我们的应用来决定,一切应该以需求为首要选择。
&二、对变成环境、一些控件的使用和界面的美化方面更加熟悉。因为《仓库管理系统》中涉及到很多控件的使用,只有很好的使用这些控件才可以给出一个很好的界面呈现在用户的面前。这样更有利于数据库和用户之间的交流。这里就要涉及一些平时不太常见的控件的使用问题。为了更好的在系统中利用这些控件,我上网查询了一些关于控件使用的资料,最主要的是MSDN上面、还有借了一些这方面的书籍。在界面的美化方面,我了解了一些WINDOWS自定义界面的知识,现在的软件其实好多面向用户的时候用户首先看的就是一个软件的界面是否有好,是否漂亮。其实,界面美化是很重要的。因为美,是人一直追求的。主要知识有:自定义窗口形状,按钮的3D效果,控件的自定义等等。这些都是通过面向对象编程的一些特性实现的,又得是通过多态,又得是通过类的继承。
三、利用软件工程学开发系统。虽然这个《仓库管理系统》是一个小的系统,但只有从这些小的项目中就利用软件工程学的知识,这样可以开发在系统设计和实现中我们可以总结很多经验和教训。我们一般按照瀑布开发模型、增量模型、螺旋模型来做我们的项目。
数据库及应用&徐人凤&曾建华&高等教育出版社&2004年1月
&[2]软件编程规范&徐人凤&孙宏伟&王梅&2005年7月高等教育出版社
《数据库开发经典案例解析》,清华大学出版社,6年
《开发与应用》,机械工业出版社,年月
《数据库系统概论(第三版)萨师煊王珊
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:298689次
积分:4038
积分:4038
排名:第7319名
原创:87篇
转载:101篇
评论:58条
(2)(1)(2)(2)(1)(1)(5)(1)(2)(2)(2)(1)(2)(1)(1)(1)(2)(5)(3)(6)(6)(2)(3)(3)(10)(4)(12)(12)(4)(7)(3)(6)(1)(27)(13)(4)(10)(16)(2)数据库课程设计报告_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
数据库课程设计报告
上传于|0|0|文档简介
&&用Java和Mysql数据库编写超市管理系统
实现收银等功能
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩13页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢当前位置: >>
数据库系统课程设计-仓库管理系统-java
实验报告仓库管理系统实验课程 姓名 实验者 1 班级 学号 姓名 实验者 2 班级 学号 实验时间 指导老师1数据库实验 目录P3 P4 P6 P7 P17 P18 要求 参考资料阅读心得 概述(设计思路、实现功能、运用技术)实现及操作(
关键代码解析、运行结果、类方法的介绍)存在问题和需要改善的地方 附录(完整代码 包括 分布调试代码)2 要求:使用 ACCESS、SQL SERVER、ORACLE、MYSQL 等作后台数据库,选择 ASP、VB、VC、JAVA 等作为前台开发工具设计一个小型管理系统。 所设计的小型管理系统应包含输入输出、 查询、 插入、删除等基本功能,功能越强大越好。根据题目的基本需求,设计数据库、编写程序, 并写出详细的设计说明书。 每班以 2 人为一组自由分组,由班长将分组情况报到指导教师处; 需要提交的文档资料:设计说明书每人一份(包括:参考资料的阅读心得,功能需求 说明,设计思路,数据表结构及作用,数据关系图,存储过程代码及相关注释,设计体会) ; 电子文档:可运行的,能实现全部或者主要基本功能的小型系统。 课程设计说明书编写规范 : a. 需求分析:题目要求达到的功能,所提供的原始数据,需要输出的数据及样式等。 b. 数据库设计:根据要求设计数据库的结构,包括:表、数据完整性、关系、视图。 c. 开发方案选择:主要是前端开发平台的选择与方案的比较,至少比较两套方案。 d. 安全性设计:登录用户、数据库用户、数据库角色、命令许可等方面。 e. 前台应用程序设计:要求至少完成通过前台程序实现对后台数据库的数据查询、插 入、删除与更新。涉及到数据的所有操作要求采用存储过程的方式进行。 f. 附录或参考资料:参考资料来源,阅读心得。3 参考资料阅读心得:参考资料(老师提供) : 2、 教材信息数据库 高校的教材管理需要相应的数据库环境,请根据如下系统需求定义数据表结构及关系, 并通过编写存储过程来实现其中的两项功能: 1) 、教材出入库 (1)教材入库 将教材内部识别号、入库时间,入库数,适用对象等信息输入到教材入库记录表中,并 更新在库教材信息表。教材入库后把教材征订单相应项目做教材收到标记。 (暂不处理 订单中某教材只入库其中一部分的情况,即缺货情况。 ) (2)教材出库 教师或学生或班级或其它人员领用教材,需要把教材内部编号,教材代号,出库时间, 出库数量,使用单位(指班级或教师,可多个班级或教师) ,用途,经办人等信息输入 到教材出库记录表中。并同时更新教材信息表中的在库数量。为便于教材信息的录入, 可通过班级名称、 课程名称或教材名称查询到要出库的教材信息表中相应教材的内部编 号。 (3)教材信息录入 将教材的内部识别号(由本系统自动维护) ,代号,书名,编著者,出版社,版次,定 价,入库时间,入库数,适用对象等信息录入到系统的数据库中。 2) 、教材查询 (1)在库教材查询 查询教材在库情况: 可按书名、代号等查询, 可查询某班级使用的教材及在库数量,可查询某课程使用的 教材及在库数量。可查询指定教材的在库数量,价值总额。 可查询教材在库的统计信息:在库教材总数、种类总数、价值总额。 (2)教材出库查询 教材出库信息查询: 按教材代号等信息查询教材出库情况,可查询某使用对象(包括班级、教师、部门、其 他人员)的教材出库情况。可查询某时间范围内(学期、学年等)的教材出库情况。 (3)教材历史查询 查询指定书的在库及出入库的历史信息, 也可按时间或时间范围查询教材入库情况。 便 于管理员掌握教材出入库情况。 3) 、教材订购 (1) 、生成教材订单 根据输入的各专业班级课程教材选用信息、教材出版社信息生成订单。 (2) 、教材订单状态管理 订单状态管理:可标记各订单为有效(款项发出) ,图书入库后标记订单为到货,图书 退回标记为退换货。 4) 、教材订单查询 可查询指定学期教材订单的到货、 缺货情况, 查询订单未到教材的订货公司信息包括它 的银行帐号、地址、联系人、联系方法等,以便与其联系。 5) 、其他相关数据:学生相关、课程相关、教师相关、班级相关、系部相关4 阅读心得:我们的选题是仓库管理系统,和教材信息数据库大致相同,实现的功能略作添加; 我们需要完成的任务: (1).这个实验本质就是设置合理的操作界面,实现对数据库的数据读取、修改、删除、 更新等操作; (2). 系统的完备性和操作的安全性,是完善软件的关键,其中包括: 插入相同信息 ; 数据库中物品数量不足 ; 管理员编号不存在 ; 安全登录 ; 不同角色的对数据库的操作权限 ; 等等问题,都是我们需要解决的基本问题; (3) 界面的美化和操作的快捷性和正确性 ; 界面是给客户的第一感触,尽量的新颖并且符合客户要求 : (这里我们是学习,争取掌握多一点处理界面的函数,没有系统的规划) 如果美化界面是尽量的完善,那么操作的快捷性和正确性是必须要实现的,给客户 一个合理的操作是成功的必备条件; (4) 分工与合作 我们两个人都是 java 的初级学习者,不断的学习,分别设计不同的界面,相互交流 实现效果的的经验; 关于数据库的知识和 SQL 语言的学习,都是我们要重新学习的; (5) 文档的处理和制作,也是我们要完成的重要任务,我们也是分工完成;5 概述1.设计思路:(1) .仓库管理系统,实现功能: 入库登记 : 商品入库记录; 出库登记 : 库存商品出库; 在库商品查询 : 库存物品查询; 出库入库信息查询 : 按时间,操作管理员查询操作信息; 管理员信息管理 : 管理员的登记,查询,删除; (2).附加实现功能: 登录界面 : 实现管理员员和客户的不同角色登录; 界面的转换 : 分别创建不同的窗口,并及时删除浏览过的窗口; 分角色设定使用权限: 管理员和客户的使用权限不同; (3).异常处理: 操作错误 : 信息输入错误等; 常规错误 : 仓库物品数量不足等;2.运用技术:(1) 界面实现 : java 语言; (2) 数据路操作实现 :使用 Access2003,运用 SQL 语言进行操作;6 实现及操作根据分析,一共设计 9 个类,如下图,其中: 数据库操作类: DBAccess :实现连接,查询修改等分步操作 ; GetDBInfo :实现查询结果集的返回 ; 操作界面类: Enter : 登录界面 Select : 功能选择界面 InStoreHouse : 物品入库操作界面 OutStoreHouse : 物品出库操作界面 SearchGoods : 物品查询界面 OutIn : 出入库查询界面 ManagerInfo : 管理员信息管理界面分步实现说明:1. DBAccess 类 public Statement getStatement(String dbPath) throws Exception: 返回连接数据库的状态 ; public ResultSet executeQuery(Statement stmt,String query) throws Exception : 返回查询结果集; public void executeUpdate(Statement stmt,String query) throws SQLException : 更新数据库 ; public void close() throws SQLException : 关闭数据库的连接 ; 2. GetDBInfo 类 private Vector&Vector&String&& 记录查询返回元组 private Vector columnH 记录查询返回结果的标题 //获取表头 VolumnHeads public Vector getColumnHeads() ; //获取表中内容 public Vector getRows() ; // 更新数据库 public void executeUpdate(Statement stmt,String query) throws SQLException ; 3. Enter 类 private JF private JButton enterB private JButton resetB 用于标识登陆角色的单选按钮7 private JRadioButton radioButton1 ; private JRadioButton radioButton2 ; private JTextField nameT private JPasswordField passwordT 表示登录身份: 实现效果: public static boolean isManager =基本实现: (1)图片载入: JLabel label4 = new JLabel(); ImageIcon icon = new ImageIcon(&E:\\study\\java\\workspace\\StoreHouse\\abc.jpg&); label4.setIcon(icon); (2)单选按钮: ButtonGroup group = new ButtonGroup(); radioButton1 = new JRadioButton(&管理员&,false); radioButton2 = new JRadioButton(&客户&,true); group.add(radioButton1) ; group.add(radioButton2) ; 4. InStoreHouse 类 基本成员变量: private JF 输入信息的 11 个文本框: private JTextField text1 - 11; private JTextField infoT private JButton okB private JButton backB 设置日期格式:private static final String YYYMMDDHHMMSS = &yyyy/MM/dd HH:mm:ss&; 基本函数: //SQL 语句生成 public String getSQL() //自动生成插入时间 public String insertTime()8 //自动生成入库 ID public String inHouseID() //清除文本框 public void clear() 实现效果:基本功能实现: 监听器的设定: public void actionPerformed(ActionEvent e){ Object source = e.getSource() ; if(source == okButton){ try{ DBAccess db=new DBAccess(); String dbPath=&E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.mdb&; Statement stmt=db.getStatement(dbPath); String query = getSQL(); db.executeUpdate(stmt,query) ; query = insertSQL() ; db.executeUpdate(stmt,query) ; stmt.close(); db.close() ; infoText.setText(&存储成功&); clear() ; }catch (Exception ex){ ex.printStackTrace() ; } }else if(source == backButton){ frame.dispose() ; new Select() ; } }9 5. OutStoreHouse 类 基本成员变量: private JF private JButton okB private JButton backB private JTextField text1; private JTextField text2; private JTextField text3; private JTextField text4; private static final String YYYMMDDHHMMSS = &yyyy/MM/dd HH:mm:ss&; private I //修改数据里中数量的临时变量 基本函数:同 InStoreHouse 雷同 实现效果:基本功能实现: 处理物品编号不存在,以及数量不足的问题: public void actionPerformed(ActionEvent e){ Object source = e.getSource() ; if(source == okButton){ try{ DBAccess db=new DBAccess(); String dbPath=&E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.mdb&; String query=getGoodsSQL(); Statement stmt=db.getStatement(dbPath); ResultSet rs=db.executeQuery(stmt, query); if(!(rs.next()))//判断数据库中是否有内容 { JOptionPane.showMessageDialog(null, &输入货物编号不存在&, & 提示信息&,RMATION_MESSAGE); text3.setText(&操作失败&);10 clear() ; }else{ //判断仓库物品是否够 //这里实验了很多次 为什么 只有 num = 放在这里才可以呢 if((num = Integer.valueOf(rs.getString(1)).intValue() Integer.valueOf(text2.getText()).intValue()) & 0){ JOptionPane.showMessageDialog(null, &仓库货物不足&, &提示信 息&,RMATION_MESSAGE); clear() ; text3.setText(&操作失败&); }else{ query = getSendOutSQL() ; db.executeUpdate(stmt, query) ; query = updateGoodsSQL(num) ; db.executeUpdate(stmt, query) ; text3.setText(&操作成功&); } } stmt.close() ; db.close() ; }catch (Exception ex){ ex.printStackTrace() ; } }else if(source == backButton){ frame.dispose() ; new Select() ; } } 解析: 这里应用到数据类型的转变,String 到 int double 的转化; 还可以应用其他方法: 如: rs.getInt(3); 直接读取数据库中的 int 类型; rs.getDouble(4) :直接读取 double 类型 6. SearchGoods 类 基本成员函数: private JF private JScrollP private JComboBox nameL private JComboBox typeL private JComboBox productL private JTextField countT private JTextField valueT private JButton okB11 private JT private DefaultTableM private JButton backB private V //表行值 private Vector columnH// 表列名 //查询使用 :String str1,str2,str3 ; 基本函数实现相同; 实现效果:7. OutIn 类 基本函数变量: private JF private JRadioButton inB private JRadioButton outB private JButton okB private JButton backB private JComboBox combox1 ; private JComboBox combox2 ; private JT private V //表行值 private Vector columnH// 表列名 private DefaultTableM private JScrollP private String str1 = null ,str2 = //查询使用 private boolean flag = private int tmp = 0 ; private static final String YYYMMDDHHMMSS = &yyyy/MM/dd&; 实现效果:12 基本实现: 时间字符创的分割处理 ; 8. Select 类 基本成员变量 private JButton button1 ; private JButton button2 ; private JButton button3 ; private JButton button4; private JButton button5 ; private JButton button6 ; private JTextField T private JF 实现效果:基本实现: 界面效果实现: infoLabel.setHorizontalAlignment(SwingConstants.CENTER); infoLabel.setBackground(Color.gray) ; Text.setBackground(Color.gray) ; Text.setForeground(Color.cyan) ; Text.setFont(new Font(&宋体&,Font.HANGING_BASELINE,20));13 9. ManagerInfo 类 基本函数: private JF private JTabbedPane tabbedP private JLabel label1 ; private JLabel label2 ; private JLabel label3 ; private JPanel panel1 ; private JPanel panel2 ; private JPanel panel3 ; private JComboBox ageB private JComboBox workAgeB private JComboBox postionB private JTextField text21 ; private JTextField text22 ; private JTextField text23 ; private JTextField text24 ; private JTextField text25 ; private JTextField text26 ; private JTextField text27 ; private JTextField text28 ; private JTextField text31 ; private JTextField text32 ; private JButton button11 ; private JButton button12 ; private JButton button21 ; private JButton button31 ; private JButton backB private JT private V //表行值 private Vector columnH// 表列名 private DefaultTableM private JScrollP private String str1= null,str2 = null ,str3 = //查询使用 基本功能函数: 这里的函数处理和上面的相同,只是在布局上采用了 JtablePanle 面板,将三个功能加在同 一个窗口里; 实现效果:14 处理问题: 要删除的管理员信息不存在:15 if(source == button31){ boolean deleteState = try{ DBAccess db=new DBAccess(); String dbPath=&E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.mdb&; String query = &select * from Manager where 编号 = & + &'& + text31.getText() + &'&; Statement stmt=db.getStatement(dbPath); ResultSet rs=db.executeQuery(stmt, query); while(rs.next()){ if(rs.getString(1).equals(text31.getText())){ query = &delete from Manager where 编号 = & + &'& + text31.getText() + &'&; db.executeUpdate(stmt,query) ; text31.setText(&&); text32.setText(&删除成功&); deleteState = } } stmt.close(); db.close() ; }catch (Exception ex){ ex.printStackTrace() ; } if(deleteState == false) { text32.setText(&输入编号不存在&); text31.setText(&&); } 解析: 在删除之前,对数据库进行检查,判断 管理员编号 是否存在 ;16 存在问题和需要完善的问题17 附录 : 代码实现DBAccess.Java 文件 import java.sql.C import java.sql.DriverM import java.sql.ResultS import java.sql.SQLE import java.sql.S /* * 更新数据库 */ public void executeUpdate(Statement stmt,String query) public class DBAccess { public Connection conn= // 连接未加密的数据库 public Statement getStatement(String dbPath) throws Exception{ Class.forName(&sun.jdbc.odbc.JdbcOdbcDriver&); String dburl = &jdbc:odbc:driver= {Microsoft Access Driver (*.mdb)};& + &DBQ=&+dbP// 此为 NO-DSN 方式 // String dburl =&jdbc:odbc:odbcName&;// 此 为 ODBC 连接方式 conn = DriverManager.getConnection(dburl); return conn.createStatement(); } public static void main(String args[]) throws Exception { DBAccess db=new DBAccess(); String //连接加密的数据库 public Statement getStatement(String dbPath,String password) throws Exception{ Class.forName(&sun.jdbc.odbc.JdbcOdbcDriver&); String dburl =&jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};& + &pwd=&+password+&;DBQ=&+dbP// 此为 NO-DSN 方式 // String dburl =&jdbc:odbc:odbcName&;// 此 为 ODBC 连接方式 conn = DriverManager.getConnection(dburl); return conn.createStatement(); } /* 查询数据库 */ public ResultSet executeQuery(Statement stmt,String query) throws Exception{ ResultSet rs=stmt.executeQuery(query); import javax.swing.*; } Enter.java 文件 } rs.getString(7)); } rs.getString(4) + &\t& + rs.getString(5) + rs.getString(6) + dbPath=&E:\\study\\java\\workspace\\StoreHouse\\StoreHo use.mdb&; String query=&select * from Manager&; Statement stmt=db.getStatement(dbPath); ResultSet rs=db.executeQuery(stmt, query); while(rs.next()){ System.out.println(rs.getString(1) + &\t& + rs.getString(2) + &\t& + rs.getString(3) + &\t& + } /** * 关闭链接 */ public void close() throws SQLException{ if(conn!=null) conn.close(); } throws SQLException{ stmt.executeUpdate(query); }18 radioButton1 = new JRadioButton(& 管 理 员 import java.awt.event.*; import java.awt.*; import java.sql.ResultS import java.sql.S &,false); radioButton2 = new JRadioButton(&客户&,true); group.add(radioButton1) ; group.add(radioButton2) ;public class Enter implements ActionListener{ private JF private JButton enterB private JButton resetB private JRadioButton radioButton1 ; private JRadioButton radioButton2 ; private JTextField nameT R); label1.setHorizontalAlignment(SwingConstants.CENTE /* * 字体等格式设置 */private JPasswordField passwordT public static boolean isManager = public Enter(){ frame = new JFrame(&仓库管理系统登录界面 &); enterButton = new JButton(&登录&); resetButton = new JButton(&重置&); JLabel label1 = new JLabel(&用户名 :&); JLabel label2 = new JLabel(&密 码 :&); JLabel label3 = new JLabel(&登录方式 :&); JLabel label4 = new JLabel(); JLabel label5 = new JLabel(); JLabel label6 = new JLabel(); JLabel label7 = new JLabel(); R) ; R) ; R); R);label2.setHorizontalAlignment(SwingConstants.CENTElabel3.setHorizontalAlignment(SwingConstants.CENTElabel5.setHorizontalAlignment(SwingConstants.CENTElabel6.setHorizontalAlignment(SwingConstants.CENTElabel1.setFont(new &,Font.HANGING_BASELINE,30)); label2.setFont(newFont(&宋体Font(&宋体ImageIconicon=new&,Font.HANGING_BASELINE,30)); label5.setFont(new &,Font.HANGING_BASELINE,40)); Font(& 华 文 行 楷ImageIcon(&E:\\study\\java\\workspace\\StoreHouse\\abc.j pg&); label4.setIcon(icon);label7.setFont(new &,Font.HANGING_BASELINE,40));Font(& 华 文 行 楷label5.setText(&华润品牌&); label7.setText(&追求卓越&); label6.setText(&中心软件,让您选择无悔的软 件,感谢支持 晓伟 O(∩_∩)O~制作&);label5.setForeground(Color.red); label7.setForeground(Color.red); /* * 局部布局 */ label4.setBounds(0,0,800,90);nameText = new JTextField(); passwordText = new JPasswordField(); //单选按钮 ButtonGroup group = new ButtonGroup();label5.setBounds(0,100,200,100); label7.setBounds(0,200,200,100); label6.setBounds(0,300,800,100) ;19 label1.setBounds(220,110,150,60); label2.setBounds(220,180,150,60); nameText.setBounds(400,120,200,40); passwordText.setBounds(400,190,200,40); label3.setBounds(200,250,150,40); radioButton1.setBounds(350,250,100,40); radioButton2.setBounds(350,300,100,40); enterButton.setBounds(460,270,150,40); resetButton.setBounds(620,270,150,40) ;} public void actionPerformed(ActionEvent e){ boolean tmp = Object source = e.getSource();if(source == enterButton){ try{ DBAccess db=new DBAccess(); String dbPath=&E:\\study\\java\\workspace\\StoreHouse\\StoreHo use.mdb&; String query=&select * from Host&; Statement stmt=db.getStatement(dbPath);/* * 增加监听器 */ enterButton.addActionListener(this); resetButton.addActionListener(this); query);ResultSet rs=db.executeQuery(stmt,while(rs.next()){if(nameText.getText().equals(rs.getString(1)) passwordText.getText().equals(rs.getString(2))){&&/* * 整体布局 */ Container ctn = frame.getContentPane(); ctn.setLayout(null); ctn.add(label1) ; ctn.add(label2) ; ctn.add(nameText) ; ctn.add(passwordText) ; ctn.add(label3) ; ctn.add(label4); ctn.add(label5); ctn.add(label6); ctn.add(label7); ctn.add(radioButton1); ctn.add(radioButton2) ; ctn.add(enterButton) ; ctn.add(resetButton) ; } frame.setVisible(true); frame.setBounds(400,200,800,400); } if(tmp == false ) { } }tmp = Select select = new Select(); this.dispose() ;stmt.close() ; db.close() ;}catch (Exception ex){ ex.printStackTrace() ;JOptionPane.showMessageDialog(null, & 输 入 密 码 或 用 户 名 错 误 &, &,RMATION_MESSAGE); nameText.setText(&&); passwordText.setText(&&) ; & 登 录 信 息}else if(source == resetButton){ nameText.setText(&&); passwordText.setText(&&) ;frame.setDefaultCloseOperation(JFrame.EXIT_ON_CL OSE); }else if(source == radioButton1){20 isManager = }else if(source == radioButton2){ isManager = } } public void dispose(){ this.frame.dispose(); } public static boolean isManager(){ return isM } public static void main(String args[]){ Enter test = new Enter(); } } GetDBInfo.java 文件 容if(!(rs.next()))//判断数据库中是否有内{JOptionPane.showMessageDialog(null, &结果集中无 记录&, &无记录&,RMATION_MESSAGE); } ResultSetMetaData rsmd=rs.getMetaData();//获得结果集列属性值 rows = new Vector(); columnHeads = new Vector(); for(int i=1;i&=rsmd.getColumnCount();i++){columnHeads.addElement(rsmd.getColumnName(i));/ /添加列名 }import java.sql.*; import java.util.V import java.sql.DriverM import java.sql.ResultS import java.sql.ResultSetMetaD import java.sql.SQLE import java.sql.S 值do{rows.addElement(getNextRow(rs,rsmd));// 添 加 表 行}while(rs.next()); rs.close(); state.close(); } catch(Exception e){ e.printStackTrace() ;import javax.swing.JOptionP } public class GetDBInfo { private Vector&Vector&String&& private Vector columnH } //构造函数 public GetDBInfo(String DBInfo,String selStr){ try{ } Class.forName(&sun.jdbc.odbc.JdbcOdbcDriver&); String dburl = &jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};& + &DBQ=&+DBI// 此为 NO-DSN 方式 Connection DriverManager.getConnection(dburl); Statement state = conn.createStatement(); ResultSet rs=state.executeQuery(selStr); conn =}//获取表头 VolumnHeads public Vector getColumnHeads(){ return columnH//获取表中内容 public Vector getRows(){//取得表行的值方法 private Vector getNextRow(ResultSetrs,ResultSetMetaData rsmd) throws SQLException{ Vector&String& currentRow=new Vector(); for(int i=1;i&=rsmd.getColumnCount();i++){ currentRow.addElement(rs.getString(i)); } return currentR21 }private static final String YYYMMDDHHMMSS = &yyyy/MM/dd HH:mm:ss&;// 更新数据库 public InStoreHouse(){ public void executeUpdate(Statement stmt,String query) throws SQLException{ stmt.executeUpdate(query); } frame = new JFrame(&商品入库登记&); text1 = new JTextField(); text2 = new JTextField(); text3 = new JTextField(); text4 = new JTextField(); public static void main(String args[]){ GetDBInfo test = new text5 = new JTextField(); text6 = new JTextField(); text7 = new JTextField(); text8 = new JTextField(); text9 = new JTextField(); text10 = new JTextField(); text11 = new JTextField(); infoText = new JTextField(); okButton = new JButton(&确定&); backButton = new JButton(&返回主菜单&); JLabel infoLabel = new JLabel(&填写信息 : &); import java.awt.event.*; import java.awt.*; import java.sql.S import java.text.SimpleDateF import java.util.D JLabel label1 = new JLabel(&编号&); JLabel label2 = new JLabel(&名称&); JLabel label3 = new JLabel(&数量&); JLabel label4 = new JLabel(&价格&); JLabel label5 = new JLabel(&规格&); JLabel label6 = new JLabel(&体积&); import javax.swing.*; JLabel label7 = new JLabel(&重量&); JLabel label8 = new JLabel(&颜色&); public class InStoreHouse implements ActionListener { private JF private JTextField text1 ; private JTextField text2 ; private JTextField text3 ; private JTextField text4 ; private JTextField text5 ; private JTextField text6 ; private JTextField text7 ; private JTextField text8 ; private JTextField text9 ; private JTextField text10 ; private JTextField text11 ; private JTextField infoT private JButton okB private JButton backB R) ; text1.setBackground(Color.lightGray); label2.setFont(new &,Font.CENTER_BASELINE,15)); Font(& 仿 宋 label1.setHorizontalAlignment(SwingConstants.CENTE //颜色格式设置 infoLabel.setFont(new &,Font.CENTER_BASELINE,20)); label1.setFont(new &,Font.CENTER_BASELINE,15)); Font(& 仿 宋 Font(& 仿 宋 JLabel label9 = new JLabel(&产地&); JLabel label10 = new JLabel(&种类&); JLabel label11 = new JLabel(&管理员编号&);GetDBInfo(&E:\\study\\java\\workspace\\StoreHouse\\Store House.mdb&,&select * from PutIn&); System.out.println(test.getRows()) ; System.out.println(test.getColumnHeads()) ; } } InStoreHouse.java 文件22 label2.setHorizontalAlignment(SwingConstants.CENTE R) ; text2.setBackground(Color.lightGray); label3.setFont(new &,Font.CENTER_BASELINE,15)); Font(& 仿 宋text9.setBackground(Color.lightGray);label10.setFont(new &,Font.CENTER_BASELINE,15));Font(&仿宋text10.setBackground(Color.lightGray); label11.setFont(new Font(& 仿 宋label3.setHorizontalAlignment(SwingConstants.CENTE R) ; text3.setBackground(Color.lightGray); label4.setFont(new &,Font.CENTER_BASELINE,15)); Font(& 仿 宋&,Font.CENTER_BASELINE,15)); text11.setBackground(Color.lightGray);// infoLabel.setBounds(10,10,120,30); label1.setBounds(40,40,80,30);label4.setHorizontalAlignment(SwingConstants.CENTE R) ; text4.setBackground(Color.lightGray); label5.setFont(new &,Font.CENTER_BASELINE,15)); Font(& 仿 宋text1.setBounds(140,40,140,30) ; label2.setBounds(360,40,80,30); text2.setBounds(460,40,140,30) ; label3.setBounds(40,100,80,30); text3.setBounds(140,100,140,30) ; label4.setBounds(360,100,80,30);label5.setHorizontalAlignment(SwingConstants.CENTE R) ; text5.setBackground(Color.lightGray); label6.setFont(new &,Font.CENTER_BASELINE,15)); Font(& 仿 宋text4.setBounds(460,100,140,30) ;label5.setBounds(40,160,80,30); text5.setBounds(140,160,140,30) ; label6.setBounds(360,160,80,30); text6.setBounds(460,160,140,30) ;label6.setHorizontalAlignment(SwingConstants.CENTE R) ; text6.setBackground(Color.lightGray); label7.setFont(new &,Font.CENTER_BASELINE,15)); Font(& 仿 宋label7.setBounds(40,220,80,30); text7.setBounds(140,220,140,30) ; label8.setBounds(360,220,80,30); text8.setBounds(460,220,140,30) ; label9.setBounds(40,280,80,30); text9.setBounds(140,280,140,30) ;label7.setHorizontalAlignment(SwingConstants.CENTE R) ; text7.setBackground(Color.lightGray); label8.setFont(new &,Font.CENTER_BASELINE,15)); Font(& 仿 宋 label10.setBounds(650,40,80,30); text10.setBounds(650,100,140,30) ; label11.setBounds(650,160,80,30); text11.setBounds(650,220,140,30) ;label8.setHorizontalAlignment(SwingConstants.CENTE R) ; text8.setBackground(Color.lightGray); label9.setFont(new &,Font.CENTER_BASELINE,15)); Font(& 仿 宋infoText.setBounds(360,280,360,30); okButton.setBounds(360,320,150,30) ; backButton.setBounds(570,320,150,30) ;okButton.addActionListener(this) ; backButton.addActionListener(this) ;label9.setHorizontalAlignment(SwingConstants.CENTE R) ; //整体布局23 Container ctn = frame.getContentPane() ; ctn.setLayout(null); ctn.add(infoLabel) ; ctn.add(label1) ; ctn.add(text1) ; ctn.add(label2) ; ctn.add(text2) ; ctn.add(label3) ; ctn.add(text3) ; ctn.add(label4) ; ctn.add(text4) ; ctn.add(label5) ; ctn.add(text5) ; ctn.add(label6) ; ctn.add(text6) ; ctn.add(label7) ; ctn.add(text7) ; ctn.add(label8) ; ctn.add(text8) ; ctn.add(label9) ; ctn.add(text9) ; ctn.add(label10) ; ctn.add(text10); ctn.add(label11) ; ctn.add(text11); ctn.add(infoText) ; ctn.add(okButton) ; ctn.add(backButton) ;&'& + text2.getText() + &'& + &,& + &'& + text10.getText() + &'& + &,& + text3.getText() + &,& + text4.getText() + &,& text5.getText() + &'& + &,& + text6.getText() + &,& + text7.getText() + text8.getText() + &'& + &,& + &'& + text9.getText() + &'& + &,& + &'& + inHouseID() + &'& + &)&; } public String insertTime(){ String tmp = Date nowDate = new Date(); SimpleDateFormat sf = new &,& + &'& + + &'& +SimpleDateFormat(YYYMMDDHHMMSS); tmp = sf.format(nowDate).toString() ; } public String inHouseID(){ return insertTime() + text1.getText() ; } public String insertSQL(){ String tmp = tmp = &insert into PutIn & + & values& + &(& + &'& + inHouseID() + &'& + &,& + &'& + text11.getText() + &'& + &,& + &'& + insertTime() + &'& + &)& ;frame.setVisible(true); // frame.setResizable(false) ; frame.setBounds(400,200,800,400); }public void clear(){ text1.setText(&&) ;frame.setDefaultCloseOperation(JFrame.DISPOSE_ON _CLOSE) ; System.out.println(getSQL());text2.setText(&&) ; text3.setText(&&) ; text4.setText(&&) ; text5.setText(&&) ;} //SQL 语句生成 public String getSQL(){ String tem = tem = &insert into Goods& + & values& + &(& + &'& + text1.getText() + &'& + &,& + }text6.setText(&&) ; text7.setText(&&) ; text8.setText(&&) ; text9.setText(&&) ; text10.setText(&&) ;public void actionPerformed(ActionEvent e){24 Object source = e.getSource() ; if(source == okButton){ try{ DBAccess db=new DBAccess(); String dbPath=&E:\\study\\java\\workspace\\StoreHouse\\StoreHo use.mdb&; Statement stmt=db.getStatement(dbPath); String query = getSQL(); db.executeUpdate(stmt,query) ; query = insertSQL() ; db.executeUpdate(stmt,query) ;private JF private JTabbedPane tabbedP private JLabel label1 ; private JLabel label2 ; private JLabel label3 ; private JPanel panel1 ; private JPanel panel2 ; private JPanel panel3 ; private JComboBox ageB private JComboBox workAgeB private JComboBox postionB private JTextField text21 ; private JTextField text22 ; private JTextField text23 ;stmt.close(); db.close() ; infoText.setText(&存储成功&); clear() ; }catch (Exception ex){ ex.printStackTrace() ; } }else if(source == backButton){ frame.dispose() ; new Select() ;private JTextField text24 ; private JTextField text25 ; private JTextField text26 ; private JTextField text27 ; private JTextField text28 ; private JTextField text31 ; private JTextField text32 ; private JButton button11 ; private JButton button12 ; private JButton button21 ; private JButton button31 ; private JButton backB} private JT } public static void main(String args[]){ InStoreHouse test = new InStoreHouse(); } } ManagerInfo.java 文件 private V //表行值 private Vector columnH// 表列名 private DefaultTableM private JScrollP private //查询使用 String str1= null,str2 = null ,str3 =import java.awt.*; import javax.swing.*; import javax.swing.table.DefaultTableMpublic ManagerInfo(){ frame = new JFrame(&管理员信息查询&); tabbedPane = new JTabbedPane() ; label1 = new JLabel();import java.awt.event.*; import java.sql.ResultS import java.sql.S import java.util.V public class ManagerInfo implements ActionListener{label2 = new JLabel(); label3 = new JLabel() ; panel1 = new JPanel(); panel2 = new JPanel(); panel3 = new JPanel();25 GridLayout(1,1)) ; //这里也要注意, 必须把整个表放进去 panel1.add(label1); panel2.add(label2); panel3.add(label3); try{ tabbedPane.addTab(& &,null,panel1,&label1&) ; tabbedPane.addTab(&录入信息&,panel2) ; tabbedPane.addTab(&删除信息&,panel3) ; 查 询 信 息 DBAccess db=new DBAccess(); String dbPath=&E:\\study\\java\\workspace\\StoreHouse\\StoreHo use.mdb&; String query=&select DISTINCT 职 务 from Manager&; /* * 设计查询信息面板 */ JLabel label11 = new JLabel(&查询条件 :&); JLabel label12 = new JLabel(&年龄&); JLabel label13 = new JLabel(&工龄&); JLabel label14 = new JLabel(&职务&); button11 = new JButton(&全部&); button12 = new JButton(&查询&); ageBox = new JComboBox(); workAgeBox = new JComboBox(); postionBox = new JComboBox(); //初始化表格 String DBName = } ageBox.insertItemAt(&20~25&,0); GetDBInfo getInfo = new ageBox.insertItemAt(&26~30&,1); ageBox.insertItemAt(&31~35&,2); ageBox.insertItemAt(&36~40&,3); ageBox.insertItemAt(&40~&,4); new //用来修改表格 workAgeBox.insertItemAt(&1~3&, 0) ; workAgeBox.insertItemAt(&4~7&, 1) ; table = new JTable(model); table.setRowHeight(25); // 设置行高 table.setGridColor(Color.yellow); // 设置边框 颜色 jsp = new JScrollPane(); jsp.setViewportView(table); //格式设置 label11.setFont(new table.getTableHeader().setReorderingAllowed(false);/ / 设置列不可移动 JPanel tablePanel = new JPanel(new &,Font.CENTER_BASELINE,20)); label12.setFont(new &,Font.CENTER_BASELINE,15)); Font(& 仿 宋 Font(& 仿 宋 workAgeBox.insertItemAt(&8~15&,2) ; workAgeBox.insertItemAt(&16~20&,3); workAgeBox.insertItemAt(&20~&, 4) ; } stmt.close() ; db.close() ; }catch (Exception ex){ ex.printStackTrace() ; postionBox.insertItemAt(rs.getString(1),b); b++ ; query); int b = 0 ; while(rs.next()){ Statement stmt=db.getStatement(dbPath); ResultSet rs=db.executeQuery(stmt, tablePanel.add(jsp); //初始化 JComboBox&E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.md b&;GetDBInfo(DBName,&select * from Manager &); rows = getInfo.getRows() ; columnHeads = getInfo.getColumnHeads() ; model =DefaultTableModel(rows,columnHeads); 值26 label13.setFont(new &,Font.CENTER_BASELINE,15)); label14.setFont(new &,Font.CENTER_BASELINE,15));Font(&仿宋text27 = new JTextField(); text28 = new JTextField();Font(&仿宋text28.setText(&请按规定输入信息&) ; JLabel label29 = new JLabel(); JLabel label21 = new JLabel(&编号 : &);label11.setForeground(Color.blue) ; button11.setBackground(Color.cyan) ; button12.setBackground(Color.cyan) ; //布局 label11.setBounds(10,5,120,30); label12.setBounds(140,5,100,30); ageBox.setBounds(180,5,80,30) ; label13.setBounds(280,5,100,30) ; workAgeBox.setBounds(320,5,80,30) ; label14.setBounds(420,5,100,30) ; postionBox.setBounds(460,5,80,30) ; button11.setBounds(580,5,80,30) ; button12.setBounds(680,5,80,30) ; tablePanel.setBounds(10,50,750,250); 里一定要是面板 panel1.setLayout(null); panel1.add(label11) ; panel1.add(label12) ; panel1.add(ageBox) ; panel1.add(label13) ; panel1.add(workAgeBox) ; panel1.add(label14); panel1.add(postionBox) ; panel1.add(button11); panel1.add(button12); panel1.add(tablePanel) ; // 这JLabel label22 = new JLabel(&姓名 : &); JLabel label23 = new JLabel(&年龄 : &); JLabel label24 = new JLabel(&性别 : &); JLabel label25 = new JLabel(&工龄 : &); JLabel label26 = new JLabel(&职务 :&); JLabel label27 = new JLabel(&工资 :&); JLabel label28 = new JLabel(); ImageIcon icon = newImageIcon(&E:\\study\\java\\workspace\\StoreHouse\\cde.j pg&); label28.setIcon(icon); //布局 label21.setBounds(30,10,100,30); text21.setBounds(150,10,200,30); label22.setBounds(30,50,100,30); text22.setBounds(150,50,200,30); label23.setBounds(30,90,100,30); text23.setBounds(150,90,200,30); label24.setBounds(30,130,100,30); text24.setBounds(150,130,200,30); label25.setBounds(30,170,100,30); text25.setBounds(150,170,200,30); label26.setBounds(30,210,100,30); text26.setBounds(150,210,200,30); label27.setBounds(30,250,100,30); text27.setBounds(150,250,200,30); label28.setBounds(380,10,420,180); text28.setBounds(380,210,400,30);/* * 录入信息面板 */button21.setBounds(450,250,250,30);panel2.setLayout(null); panel2.add(label21) ;button21 = new JButton(&提交&); text21 = new JTextField(); text22 = new JTextField(); text23 = new JTextField(); text24 = new JTextField(); text25 = new JTextField(); text26 = new JTextField();panel2.add(text21) ; panel2.add(label22) ; panel2.add(text22) ; panel2.add(label23) ; panel2.add(text23) ; panel2.add(label24) ; panel2.add(text24) ;27 panel2.add(label25) ; panel2.add(text25) ; panel2.add(label26) ; panel2.add(text26) ; panel2.add(label27) ; panel2.add(text27) ; panel2.add(label28) ; panel2.add(text28) ; panel2.add(button21) ; //字体设置 label21.setFont(new &,Font.CENTER_BASELINE,20)); label22.setFont(new &,Font.CENTER_BASELINE,20)); label23.setFont(new &,Font.CENTER_BASELINE,20)); label24.setFont(new &,Font.CENTER_BASELINE,20)); label25.setFont(new &,Font.CENTER_BASELINE,20)); label26.setFont(new &,Font.CENTER_BASELINE,20)); label27.setFont(new &,Font.CENTER_BASELINE,20)); Font(& 仿 宋 Font(& 仿 宋 Font(& 仿 宋 Font(& 仿 宋 Font(& 仿 宋 Font(& 仿 宋 Font(& 仿 宋 编号 :&) ;text32.setText(&数据宝贵,删除后无法找回&); button31 = new JButton(&删除&) ; JLabel label31 = new JLabel(&输入删除管理员//格式设置 label31.setFont(new &,Font.CENTER_BASELINE,20)); text31.setBackground(Color.lightGray) ; text32.setBackground(Color.cyan) ; //布局 label31.setBounds(50,50,300,70) ; text31.setBounds(350,50,300,50) ; button31.setBounds(50,150,100,50) ; text32.setBounds(200,150,300,50) ; panel3.setLayout(null) ; panel3.add(label31) ; panel3.add(text31) ; panel3.add(text32) ; panel3.add(button31) ; Font(& 仿 宋/* * 整体布局 */label1.setFont(new label29.setHorizontalAlignment(SwingConstants.CENT ER) ; text21.setBackground(Color.lightGray); text22.setBackground(Color.lightGray); text23.setBackground(Color.lightGray); text24.setBackground(Color.lightGray); text25.setBackground(Color.lightGray); text26.setBackground(Color.lightGray); text27.setBackground(Color.lightGray); text28.setBackground(Color.yellow); button21.setBackground(Color.blue) ; button21.setForeground(Color.red) ; //增加监听器 &,Font.CENTER_BASELINE,15)); label2.setFont(new &,Font.CENTER_BASELINE,15)); label3.setFont(new &,Font.CENTER_BASELINE,15));Font(&仿宋Font(&仿宋Font(&仿宋backButton = new JButton(&返回主菜单&) ;button11.addActionListener(this) ; button12.addActionListener(this) ; button21.addActionListener(this) ; button31.addActionListener(this) ; backButton.addActionListener(this) ; ageBox.addActionListener(new/* * 删除信息面板 */ text31 = new JTextField(); text32 = new JTextField();ActionListener(){ public void actionPerformed(ActionEvent e){ int ageBox.getSelectedIndex(); index =28 if(index == 0){ str1 = & between 20 and 25 &; }else if(index == 1){ str1 = & between 26 and 30 &; }else if(index == 2){ str1 = &between 31 and 35& ; }else if(index == 3){ str1 = &between 36 and 40& ; }else if(index == 4){ str1 = & & 40& ; } } }) ; workAgeBox.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ int workAgeBox.getSelectedIndex(); if(index == 0){ str2 = & between 1 and 3& ; }else if(index == 1){ str2 = & between 4 and 7& ; }else if(index == 2){ str2 = & between 8 and 15 &; }else if(index == 3){ str2 = & between 16 and 20 &; }else if(index == 4){ str2 = & & 20 & ; } index = }); }JComboBox (JComboBox)e.getSource() ; str3 (String)source.getSelectedItem();source==Container ctn = frame.getContentPane() ; ctn.setLayout(new BorderLayout()) ; ctn.add(tabbedPane,BorderLayout.CENTER) ; ctn.add(backButton,BorderLayout.SOUTH) ; frame.setBounds(400,200,800,400); frame.setVisible(true); frame.setResizable(false) ;frame.setDefaultCloseOperation(JFrame.DISPOSE_ON _CLOSE); } public void actionPerformed(ActionEvent e){ //处理按钮事件 Object source = e.getSource() ; if(source == button11){ String DBInfo =&E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.md b&; GetDBInfo DB = newGetDBInfo(DBInfo,&select * from Manager&); rows = DB.getRows() ; columnHeads = DB.getColumnHeads() ; model DefaultTableModel(rows,columnHeads); 值 table = new JTable(model); jsp.setViewportView(table) ; }else if(source == button12){ try{ = new //用来修改表格} });if(str1 == null) str1 = &is not null& ; if(str2 == null) str2 = &is not null& ; if(str3 == null) str3 = &is not null& ;postionBox.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){StringDBInfo=&E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.md b&; GetDBInfo DB = new29 GetDBInfo(DBInfo,getSQL1()); rows = DB.getRows() ; columnHeads DB.getColumnHeads() ; model DefaultTableModel(rows,columnHeads); 值 table = new JTable(model); jsp.setViewportView(table) ; = new =query); while(rs.next()){if(rs.getString(1).equals(text31.getText())){ query = &delete from//用来修改表格Manager where 编号 = & + &'& + text31.getText() + &'&;db.executeUpdate(stmt,query) ; text31.setText(&&); text32.setText(&删除成功&);}catch(Exception ex){ ex.printStackTrace() ; } System.out.println(getSQL1()); }else if(source == button21){ try{ DBAccess db=new DBAccess(); String dbPath=&E:\\study\\java\\workspace\\StoreHouse\\StoreHo use.mdb&; String query = getSQL2(); Statement stmt=db.getStatement(dbPath); db.executeUpdate(stmt,query) ; stmt.close(); db.close() ; text28.setText(&存储成功&); clear2() ; }catch (Exception ex){ ex.printStackTrace() ; } } public void clear2(){ }else if(source == button31){ boolean deleteState = try{ DBAccess db=new DBAccess(); String dbPath=&E:\\study\\java\\workspace\\StoreHouse\\StoreHo use.mdb&; String query = &select * from Manager where 编号 = & + &'& + text31.getText() + &'&; Statement stmt=db.getStatement(dbPath); ResultSet rs=db.executeQuery(stmt, public String getSQL1(){ String tmp = tmp = &select * from Manager where & } text21.setText(&&); text22.setText(&&); text23.setText(&&); text24.setText(&&); text25.setText(&&); text26.setText(&&); text27.setText(&&); } public void dispose(){ this.frame.dispose(); } } }else if(source == backButton){ frame.dispose() ; new Select() ; } if(deleteState == false) { text32.setText(&输入编号不存在&); text31.setText(&&); } stmt.close(); db.close() ; }catch (Exception ex){ ex.printStackTrace() ; } deleteState =30 + & 年龄 & + str1 + & OR 工龄 & + str2 + & OR 职务 = '& + str3 + &'& ; } } OutIn 文件: import java.awt.*; public String getSQL2(){ String tmp = tmp = &insert into Manager& + & values & +&(& + &'& + text21.getText() + &'& + &,& + &'& + text22.getText() + &'& + &,& + text23.getText() + &,& +&'& + text24.getText() + &'& + &,& + text25.getText() + &,& + &'& + text26.getText() + &'& + &,& + text27.getText() + &)&; } public boolean isExist(String str){ boolean tmp = try{ DBAccess db=new DBAccess(); String dbPath=&E:\\study\\java\\workspace\\StoreHouse\\StoreHo use.mdb&; String ManagerInfo&; Statement stmt=db.getStatement(dbPath); ResultSet rs=db.executeQuery(stmt, query); while(rs.next()){ private JF private JRadioButton inB if(str.equals(rs.getString(1).toString())){ tmp = } } stmt.close() ; db.close() ; private JT private V //表行值 }catch (Exception ex){ ex.printStackTrace() ; } } public static void main(String args[]){ ManagerInfo test = new ManagerInfo(); 使用 private boolean flag = private int tmp = 0 ; private Vector columnH// 表列名 private DefaultTableM private JScrollP private String str1 = null ,str2 = //查询 private JRadioButton outB private JButton okB private JButton backB private JComboBox combox1 ; private JComboBox combox2 ; public class OutIn implements ActionListener{ query=&select 姓 名 from import javax.swing.JF import javax.swing.JP import javax.swing.JComboB import javax.swing.JScrollP import javax.swing.JT import javax.swing.SwingC import javax.swing.table.AbstractTableM import javax.swing.table.DefaultTableM import javax.swing.*; import java.awt.event.*; import java.sql.ResultS import java.sql.S import java.text.SimpleDateF import java.util.D import java.util.C import java.util.StringT import java.util.V }31 private static final String YYYMMDDHHMMSS = &yyyy/MM/dd&; public OutIn() { frame = new JFrame(&入库出库查询&) ; inButton = new JRadioButton(& 入 库 查 询 &,true); outButton = new JRadioButton(& 出 库 查 询 &,false); okButton = new JButton(&查询&); backButton = new JButton(&返回主菜单&); ButtonGroup group = new ButtonGroup(); group.add(inButton) ; group.add(outButton) ; } }b++ ;stmt.close() ; db.close() ; }catch (Exception ex){ ex.printStackTrace() ;//初始化 Table String DBName =&E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.md b&; GetDBInfo getInfo = newGetDBInfo(DBName,&select * from PutIn&); JLabel label1 = new JLabel(&选择操作 : &) ; JLabel label2 = new JLabel(&时间&); JLabel label3 = new JLabel(&管理员&); combox1 = new JComboBox(); combox2 = new JComboBox(); rows = getInfo.getRows() ; columnHeads = getInfo.getColumnHeads() ; model = new //用来修改表格DefaultTableModel(rows,columnHeads); 值JTable table = new JTable(model); table.setRowHeight(25); // 设置行高 //初始化 JComboBox combox1.insertItemAt(&当前&, 0) ; combox1.insertItemAt(&三天内&, 1) ; combox1.insertItemAt(&半月内&, 2) ; combox1.insertItemAt(&一个月内&, 3) ; combox1.insertItemAt(&三个月内&, 4) ; combox1.insertItemAt(&全部&, 5) ; table.getTableHeader().setReorderingAllowed(false);/ / 设置列不可移动 JPanel try{ DBAccess db=new DBAccess(); String dbPath=&E:\\study\\java\\workspace\\StoreHouse\\StoreHo use.mdb&; String query=&select DISTINCT 管理员编 号 from PutIn&; Statement stmt=db.getStatement(dbPath); ResultSet query); int b = 0 ; while(rs.next()){ rs=db.executeQuery(stmt, R); label1.setFont(new &,Font.CENTER_BASELINE,20)); label2.setFont(new &,Font.CENTER_BASELINE,15)); label3.setFont(new &,Font.CENTER_BASELINE,15)); combox2.insertItemAt(rs.getString(1),b); label1.setForeground(Color.red) ; Font(& 仿 宋 Font(& 仿 宋 Font(& 仿 宋 label1.setHorizontalAlignment(SwingConstants.CENTE //格式设置 GridLayout(1,1)); tablePanel.add(jsp) ; tablePanel= new JPanel(new 颜色 jsp = new JScrollPane(); jsp.setViewportView(table); table.setGridColor(Color.yellow); // 设置边框32 label2.setForeground(Color.blue) ; label3.setForeground(Color.blue) ; okButton.setFont(new &,Font.CENTER_BASELINE,15)); okButton.setForeground(Color.cyan) ; backButton.setFont(new &,Font.CENTER_BASELINE,15)); Font(& 仿 宋 date.add(Calendar.DAY_OF_MONTH, -30); tmp = 30 ; //布局 label1.setBounds(10,10,200,30) ; inButton.setBounds(160,10,80,30) ; outButton.setBounds(240,10,80,30); label2.setBounds(340,10,50,30); combox1.setBounds(390,10,80,30); label3.setBounds(500,10,50,30); combox2.setBounds(550,10,80,30); okButton.setBounds(650,10,100,30) ; tablePanel.setBounds(10,50,760,270) ; backButton.setBounds(600,320,150,40); //增加监听器 inButton.addActionListener(this) ; outButton.addActionListener(this) ; backButton.addActionListener(this) ; okButton.addActionListener(this) ; combox1.addActionListener(new ActionListener(){ public actionPerformed( ActionEvent e){ Calendar Calendar.getInstance(); int combox1.getSelectedIndex() ; if(index == 0){ index = date = void }); combox2.addActionListener(new ActionListener(){ public actionPerformed( ActionEvent e){ JComboBox (JComboBox)e.getSource() ; str2 (String)source.getSelectedItem() ; if(str2 == null) str2 = &is not null& ; date.add(Calendar.DAY_OF_MONTH, 0); tmp = 0 ; }else if(index == 1){ }); } = source = void } SimpleDateFormat new SimpleDateFormat(YYYMMDDHHMMSS); str1 formatter.format(date.getTime()); } = formatter = date.add(Calendar.DAY_OF_MONTH, -360); tmp = 360 ; tmp = 90 ; }else if(index == 5){ date.add(Calendar.DAY_OF_MONTH, -90); }else if(index == 4){ Font(& 仿 宋 date.add(Calendar.DAY_OF_MONTH, -15); tmp = 15 ; }else if(index == 3){date.add(Calendar.DAY_OF_MONTH, -3); tmp = 3 ; }else if(index == 2){ // 整体布局 Container ctn = frame.getContentPane() ; ctn.setLayout(null);33 ctn.add(label1); ctn.add(inButton); ctn.add(outButton); ctn.add(label2) ; ctn.add(combox1) ; ctn.add(label3) ; ctn.add(combox2) ; ctn.add(okButton) ; ctn.add(tablePanel); ctn.add(backButton) ;}catch (Exception ex){ ex.printStackTrace() ; } // flag = String DBName =&E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.md b&; GetDBInfo getInfo = newGetDBInfo(DBName,&select * from PutIn&); rows = getInfo.getRows() ;frame.setResizable(false) ; frame.setBounds(400,200,800,400) ; frame.setVisible(true) ;columnHeads getInfo.getColumnHeads() ; model DefaultTableModel(rows,columnHeads); ==new //用来修改表格frame.setDefaultCloseOperation(JFrame.DISPOSE_ON _CLOSE) ; } public void dispose(){ this.frame.dispose(); } public void actionPerformed(ActionEvent e){ Object source = e.getSource() ; if(source == inButton){ //改变管理员下拉菜单 try{ DBAccess db=new DBAccess(); String dbPath=&E:\\study\\java\\workspace\\StoreHouse\\StoreHo use.mdb&; String query=&select DISTINCT 管 理员编号 from PutIn&; Statement stmt=db.getStatement(dbPath); ResultSet rs=db.executeQuery(stmt, query); int b = 0 ; while(rs.next()){值 JTable table = new JTable(model); jsp.setViewportView(table);}else if(source == outButton){ //改变管理员编号下拉菜单 try{ DBAccess db=new DBAccess(); String dbPath=&E:\\study\\java\\workspace\\StoreHouse\\StoreHo use.mdb&; String query=&select DISTINCT 管 理员编号 from SendOut&; Statement stmt=db.getStatement(dbPath); ResultSet rs=db.executeQuery(stmt, query); int b = 0 ;while(rs.next()){combox2.insertItemAt(rs.getString(1),b); b++ ; }combox2.insertItemAt(rs.getString(1),b); b++ ; } stmt.close() ; db.close() ; }stmt.close() ; db.close() ; }catch (Exception ex){ ex.printStackTrace() ;34 }else { flag = String DBName = } } GetDBInfo getInfo = new public String getSQL(){ String tmp = String table = = if(flag){ table = &PutIn& ; = new //用来修改表格 } JTable table = new JTable(model); jsp.setViewportView(table) ; tmp = &select * from & + table + & where 管理员编号 = '& + str2 + &'& ; }else { table = &SendOut& ; table = &SendOut& ;&E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.md b&;GetDBInfo(DBName,&select * from SendOut&); rows = getInfo.getRows() ; columnHeads getInfo.getColumnHeads() ; model DefaultTableModel(rows,columnHeads); 值}else if(source == okButton){ try{ String DBName = }&E:\\study\\java\\workspace\\StoreHouse\\StoreHouse.md b&; GetDBInfo GetDBInfo(DBName,getSQL()); rows = getInfo.getRows() ; columnHeads getInfo.getColumnHeads() ; model DefaultTableModel(rows,columnHeads); 值 table = new JTable(model); jsp.setViewportView(table) ; }catch (Exception ex){ ex.printStackTrace() ; } import javax.swing.* ; }else if(source == backButton){ this.dispose() ; new Select() ; } } public String getTableName(){ String table = if(flag){ table = &PutIn& ; public class OutStoreHouse implements ActionListener { private JF private JButton okB private JButton backB private JTextField text1; private JTextField text2; private JTextField text3; private JTextField text4; = new = } OutStoreHouse.java 文件 import java.awt.C import java.awt.C import java.awt.F import java.awt.event.*; import java.sql.ResultS import java.sql.S import java.text.SimpleDateF import java.util.D getInfo = new } public static void main(String args[]){ OutIn test = new OutIn() ;//用来修改表格35 private static final String YYYMMDDHHMMSS = &yyyy/MM/dd HH:mm:ss&; private IR) ; text4.setBackground(Color.lightGray);okButton.setBackground(Color.red); okButton.setFont(new &,Font.CENTER_BASELINE,15)); OutStoreHouse() { frame = new JFrame(&物品出库管理&); text1 = new JTextField(); text2 = new JTextField(); text3 = new JTextField(); text4 = new JTextField(); okButton = new JButton(&确定&); backButton = new JButton(&返回主菜单&) ; backButton.setBackground(Color.red); backButton.setFont(new &,Font.CENTER_BASELINE,15)); //布局 label1.setBounds(50,20,150,40); text1.setBounds(250,20,200,40); label2.setBounds(50,90,150,40); text2.setBounds(250,90,200,40); label4.setBounds(50,160,150,40); JLabel label1 = new JLabel(&物品编号&); JLabel label2 = new JLabel(&数量&); JLabel label3 = new JLabel(&信息&) ; JLabel label4 = new JLabel(&出库管理员&) ; //格式设置 okButton.setBounds(300,300,150,40); label1.setFont(new &,Font.CENTER_BASELINE,20)); //增加监听器 label1.setHorizontalAlignment(SwingConstants.CENTE R) ; text1.setBackground(Color.lightGray); label2.setFont(new &,Font.CENTER_BASELINE,20)); Font(& 仿 宋 Container ctn = frame.getContentPane() ; ctn.setLayout(null); ctn.add(label1); label2.setHorizontalAlignment(SwingConstants.CENTE R) ; text2.setBackground(Color.lightGray); label3.setFont(new &,Font.CENTER_BASELINE,20)); Font(& 仿 宋 ctn.add(label2); ctn.add(label3); ctn.add(label4); ctn.add(text1) ; ctn.add(text2) ; ctn.add(text3) ; label3.setHorizontalAlignment(SwingConstants.CENTE R) ; text3.setBackground(Color.lightGray); ctn.add(okButton) ; ctn.add(backButton) ; label4.setFont(new &,Font.CENTER_BASELINE,20)); Font(& 仿 宋 frame.setVisible(true) ; frame.setBounds(400,200,800,400); label4.setHorizontalAlignment(SwingConstants.CENTE ctn.add(text4) ; okButton.addActionListener(this) ; backButton.addActionListener(this) ; Font(& 仿 宋 backButton.setBounds(500,300,150,40); text4.setBounds(250,160,200,40); label3.setBounds(50,230,150,40); text3.setBounds(250,230,400,40); Font(& 仿 宋 Font(& 仿 宋36 frame.setDefaultCloseOperation(JFrame.DISPOSE_ON _CLOSE) ; getSendOutSQL() ;query=db.executeUpdate(stmt, query) ; } public void actionPerformed(ActionEvent e){ Object source = e.getSource() ; if(source == okButton){ try{ DBAccess db=new DBAccess(); String dbPath=&E:\\study\\java\\workspace\\StoreHouse\\StoreHo use.mdb&; String query=getGoodsSQL(); Statement stmt=db.getStatement(dbPath); ResultSet rs=db.executeQuery(stmt, query); if(!(rs.next()))//判断数据库中是否有 内容 { } JOptionPane.showMessageDialog(null, &输入货物编 号 不 存 在 &, & 提 示 信 息 } //出库时间 public String outStoreTime(){ String tmp = Date nowDate = new Date(); SimpleDateFormat //判断仓库物品是否够 sf = new } }else if(source == backButton){ frame.dispose() ; new Select() ; } stmt.close() ; db.close() ; }catch (Exception ex){ ex.printStackTrace() ; 成功&); } db.executeUpdate(stmt, query) ; text3.setText(& 操 作 updateGoodsSQL(num) ; query =&,RMATION_MESSAGE); text3.setText(&操作失败&); clear() ; }else{SimpleDateFormat(YYYMMDDHHMMSS); tmp = sf.format(nowDate).toString() ;//这里实验了很多次 什么 只有 num = 放在这里才可以呢 //????? if((num Integer.valueOf(rs.getString(1)).intValue() Integer.valueOf(text2.getText()).intValue()) & 0){为 }//自动生成出库编号 = } public String getGoodsSQL(){ public String outHouseID(){ return outStoreTime() + text1.getText() ;JOptionPane.showMessageDialog(null, &仓库货物不 足&, &提示信息&,RMATION_MESSAGE); clear() ; text3.setText(& 操 作 失败&); }else{ }String tmp = tmp = &select 数量 from Goods where 编号 = & + &'& + text1.getText().toString() + &'& ;//生成修改出库表的 SQL 语言 public String getSendOutSQL(){37 String tmp = tmp = &insert into SendOut values ('& + outHouseID() + &','& + text4.getText().toString() + &','& + outStoreTime() +&')& ; ; } //修改 Goods 物品表 SQL 语言 public String updateGoodsSQL(Integer num){ String tmp = tmp = &update Goods set 数量 =& + num + & where 编号 = '& + text1.getText() + &'& ; } //清除 Text 内容 public void clear(){ text1.setText(&&); text2.setText(&&); text4.setText(&&); }private JT private DefaultTableM private JButton backB private V //表行值 private Vector columnH// 表列名 //查询使用 String str1,str2,str3 ; public SearchGood()throws Exception{ frame = new JFrame(&库存物品查询&);nameList = new JComboBox(); typeList = new JComboBox(); productList = new JComboBox(); okButton = new JButton(&确定&) ; backButton = new JButton(&返回&); countText = new JTextField(); valueText = new JTextField(); JLabel label = new JLabel(&输入查询条件 :&); JLabel label3 = new JLabel(&产地&); JLabel label2 = new JLabel(&种类&);public static void main(String args[]){ OutStoreHouse test = new OutStoreHouse() ;JLabel label1 = new JLabel(&名称&); JLabel label4 = new JLabel(&总金额&); JLabel label5 = new JLabel(&总数量&);} label.setHorizontalAlignment(SwingConstants.CENTER } SearchGoods.java 文件 import java.awt.*; import java.awt.event.*; import java.sql.ResultS import java.sql.S import java.util.V import javax.swing.*; import javax.swing.table.DefaultTableM R); public class SearchGood implements ActionListener{ private JF private JScrollP private JComboBox nameL private JComboBox typeL private JComboBox productL private JTextField countT private JTextField valueT private JButton okB //List 设置 R); backButton.setBackground(Color.blue) ; label5.setHorizontalAlignment(SwingConstants.CENTE R); label4.setHorizontalA

我要回帖

更多关于 好莱坞艳照4波合集 的文章

 

随机推荐