又是一年课程设计时,此次做的是数据库管理系统:电脑配件库存管理系统

主要包括以下基本内容:

1)电脑配件资料的添加与删除;

2)电脑配件的进货与出货管理;

3)电脑配件的库存管理与信息统计;

4)各种信息统计分析功能;

5)完成程序的最终调试,必须能正常运行

此次课程设计中比较有用的知识点(会在下面一一展示):

1.在java程序中调用事先在数据库中写好的存储过程(而不用再苦逼地写sql语句了);

2.本个系统中,通过触发器实现当向入库表或者出库表插入数据时,动态更新库存表中的库存量;

如:库存表中原来有键盘10个,然后执行了向入库表中插入数据,又采购了20个键盘,通过触发器数据库自身更新库存表中键盘库存量为10+20=30个了。我们只用关心向入库表中添加数据,而库存表中相应配件的数量则交给相应的触发器去更新。

3.复习了一下如何将通过select语句返回回来的结果集,以表格的形式显示出来(利用了JTable插件来表格显示)

1和2. 在数据库中创建存储过程和相应的触发器

表的结构

create table 商品表
(商品编号 char(5) not null primary  key,
商品名称 varchar(50) not null,
生产厂家 varchar(50) not null,
型号 varchar(20) not null,
规格 varchar(20) not null)

create table 仓库表
(仓库号 char(10) not null primary  key,
仓库名称 varchar(50) not null,)

create table 库存表
(商品编号 char(5) not null ,
仓库号  char(10) not null,
库存数量 int     not null,
primary  key(商品编号,仓库号) ,
foreign key (商品编号)  references 商品表(商品编号),
foreign key (仓库号) references 仓库表(仓库号))

create table 入库表
(入库号 char(10) not null  primary key,
商品编号 char(5) not null,
仓库号 char(10) not null,
foreign key (商品编号)  references 商品表(商品编号),
foreign key (仓库号) references 仓库表(仓库号),
入库数量 int not null,
入库日期 datetime not null,
入库单位名称 varchar(50) not null,
送货人姓名 varchar(10) not null,
性别 char(2) default '男' check(性别 in ('男','女')))

create table 出库表
(出库号 char(10) not null  primary key,
商品编号 char(5) not null,
仓库号 char(10) not null,
foreign key (商品编号)  references 商品表(商品编号),
foreign key (仓库号) references 仓库表(仓库号),
出库数量 int not null,
出库日期 datetime not null,
出库单位名称 varchar(50) null,
提货人姓名 varchar(10) not null,
性别 char(2)  default('男') check (性别 in ('男','女')))

/*定义相关的约束条件*/
alter table 商品表
add unique (商品名称,生产厂家,型号,规格)

alter table 商品表
add  constraint  CS1 check(型号 like'[D][A][0-1][0-9][0-9][0-9]')

对应的触发器:

在java中调用rukuinsert存储过程(同时数据库隐式调用触发器rkb_into):

CallableStatement  callableStatement3 = con.prepareCall("{call rukuinsert(?,?,?,?,?,?,?,?,?)}") ; 
callableStatement3.setString(1,jt1.getText());
callableStatement3.setString(2,jt2.getText());
callableStatement3.setString(3,jt3.getText());
callableStatement3.setString(4,jt4.getText());
callableStatement3.setString(5,jt5.getText());
callableStatement3.setString(6,jt6.getText());
callableStatement3.setString(7,jt7.getText());
callableStatement3.setString(8,jt8.getText());
callableStatement3.registerOutParameter(9,java.sql.Types.VARCHAR);
callableStatement3.execute();
flag = callableStatement3.getString(9);
JOptionPane.showMessageDialog(null,flag,"温馨提示",JOptionPane.WARNING_MESSAGE);

3.利用了JTable插件来表格显示

//声明表用到的组件
JScrollPane pane = null;
JTable table;
//使用JTable的相关参数
String[] columnNames = {"商品编号","商品名称","总入库数量"};
Object[][] data = new Object[8][3];

int count = 0;
Connection con = null;
String connectDB="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Test";//数据源
String user="sa";
String password="123";
try {
       con=DriverManager.getConnection(connectDB,user,password);  //连接数据库对象
} catch (SQLException e1) {e1.printStackTrace();}

try{
String 商品编号,商品名称,总入库数量;
CallableStatement  callableStatement3 = con.prepareCall("{call ruku_info4(?,?)}") ; 
callableStatement3.setString(1,jt11.getText());
callableStatement3.setString(2,jt12.getText());
ResultSet rs = callableStatement3.executeQuery();
while(rs.next())
{
商品编号 = rs.getString("商品编号");
商品名称 = rs.getString("商品名称");
总入库数量 = rs.getString("总入库数量");

data[count][0] = 商品编号;
data[count][1] = 商品名称;
data[count][2] = 总入库数量;
//System.out.println("getData() is running!");
count++;
}
rs.close();

//另外创建一个界面JFrame来显示表格
JFrame frame = new JFrame("按  年或月或日  为周期对入库商品统计");  
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
TableModel model = new DefaultTableModel(data, columnNames);  
table = new JTable(model);  
RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);  
table.setRowSorter(sorter);  
pane = new JScrollPane(table);
frame.add(pane, BorderLayout.CENTER); 
frame.setSize(600,200);  
frame.setVisible(true);

我希望通过自己的总结,让自己这个课程设计不白做,更希望自己可以帮助别人。趁着自己记忆最清楚的时候记录这些美妙的领悟。^_^

数据库课程设计(电脑配件库存管理系统)相关推荐

  1. 查询学生选修课程管理系统java_JAVA数据库课程设计学生选课管理系统的

    <JAVA数据库课程设计学生选课管理系统的>由会员分享,可在线阅读,更多相关<JAVA数据库课程设计学生选课管理系统的(59页珍藏版)>请在人人文库网上搜索. 1.一.课程设计 ...

  2. 数据库课程设计-员工信息管理系统(基于python和MySQL实现)

    一.项目地址 具体项目相关信息可移步至我的Github查看,那里有整套项目文件以及课程设计报告等,仅供交流学习和参考,如有错误之处请多多指正哦. 二.系统定义 随着计算机技术的不断发展,计算机作为知识 ...

  3. java 数据库工资管理系统设计_数据库课程设计—企业工资管理系统(java版完整代码)...

    数据库课程设计-企业工资管理系统(java版完整代码) 数 据 库 课 程 设 计 报 告2016年 5月 20日 目 录企业工资管理系统姓 名 王 素 文班 级 软 133学 号 139074224 ...

  4. 计算机数据库课程设计,药品销售管理系统

    计算机数据库课程设计,药品销售管理系统 https://x-x.fun/i/Lb0b58c73eUr9

  5. oracle学生信息管理系统课程设计,数据库课程设计-学生信息管理系统的设计与实现.doc...

    数据库课程设计-学生信息管理系统的设计与实现 2011-2012课程设计II 学生信息管理系统的设计与实现 一 设计内容 建立一个简单的在校学生信息查询系统,可以让使用者查询到学生的一些简单的个人信息 ...

  6. 书店存货c语言程序,C语言课程设计品库存管理系统.doc

    C语言课程设计品库存管理系统 第1章 系统分析与设计 1.1 系统分析 1.1.1解决问题 运用现代信息化和智能化的管理方式,解决商品库存信息在日常生活中易于丢失.遗忘,不易保存.管理的问题,从而使企 ...

  7. 数据库课程设计超市信息管理系统

    目录 一.需求分析 1.系统需求分析描述 1.1.1系统需求说明: 1.1.2系统可行性分析: 1.1.3系统应用范围: 2.系统功能结构图 3.业务流程图 二.概念结构设计 1.实体描述 2.局部E ...

  8. 数据库课程设计——图书管理管理系统(一)

    数据库课程设计--图书馆管理系统(一) 1.需求分析 系统的设计目标: Library系统(图书管理系统)是通过本系统软件,能帮助图书馆管理人员利用计算机,快速方便地对图书馆书籍,读者资料,借还书等进 ...

  9. 数据库课程设计--高校机房管理系统

    数据库课程设计--题目:机房管理系统   (cs架构)前端 jsp+easyui 后端 java+mysql 环境: Myeclipse 2016-cI-3 mysql-installer-commu ...

  10. 数据库课程设计(乐队管理系统)实现增删改查权限设置MVC

    为什么要做这个系统呢 这是一个数据库课程设计完成的作品 名字叫做Rainmaple乐队管理系统 首页部分 各种权限用户均可查看 - 简单的轮播 旗下的乐队信息(从数据库中读取) 后台部分 后台入口 简 ...

最新文章

  1. 近一段忙项目。。。。
  2. 关于HTML5中的video和audio元素
  3. 图像处理常用边缘检测算子
  4. 比特币支付优点是什么
  5. 【堆笔记】java堆(PriorityQueue)的相关操作
  6. asp英语是什么意思_如何在ASP.NET Core中使用JSON Patch
  7. FreeFileSync - 最佳免费开源文件夹同步备份软件 (FTP/局域网/移动硬盘)
  8. python程序设计与应用_Python程序设计及应用
  9. Dev-Cpp 切换界面语言中文
  10. 【西藏攻略+游记】十一,我们去西藏(1)攻略
  11. Sniffer和网络执法官软件助你维护网络
  12. Windows NT 技术简介
  13. C.I.刘易斯的学术之路--- 刘易斯逻辑之十二尾篇
  14. 大数据如何改变我们的国庆假期?
  15. (整理)吊炸天的CNNs,这是我见过最详尽的图解!(上)
  16. bzoj 1022: [SHOI2008]小约翰的游戏John
  17. 机器人与视觉,基于TCP(工具坐标)偏移
  18. Hi3516芯片简介,Hi3516EV300处理器参数介绍
  19. python----four
  20. 郝斌数据结构全套教程高清在线观看和下载-学习数据结构必看

热门文章

  1. 腾讯云—人脸识别应用实践
  2. 电路与模拟电子技术第一次作业及要点(一、二两章)
  3. Python - 各类赋值语句
  4. 【转】 HtmlUnit简介
  5. LINUX 报错:使用scp复制文件No such file or directory 及主机名注意事项
  6. 程序员干到30岁,真的只能转行了么?
  7. Python中rect属性
  8. 微信文件删除了怎么恢复,2个实测有效的办法推荐
  9. tftp和xinetd服务器的配置
  10. Erase/Trim/Discard/Sanitize 区别详解