服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - 基于Mysql+JavaSwing的超市商品管理系统设计与实现

基于Mysql+JavaSwing的超市商品管理系统设计与实现

2021-11-18 16:41java李杨勇 Mysql

本项目是使用Java swing开发,可实现超市管理系统商品列表信息查询、添加商品信息和修改商品管理以及删除商品信息和安装商品信息查询等功能。界面设计和功能比较简单基础、适合作为Java课设设计以及学习技术使用,需要的朋友

基于Mysql+JavaSwing的超市商品管理系统设计与实现

前言:

     随着小超市规模的发展不断扩大, 商品数量急剧增加, 有关商品的各种信息量也成倍增长。 超市时时刻刻都需要对商品各种信息进行统计分析。 而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。 超市管理系统是市场上最流行的超市上常用的系统之一, 由于刚学java知识、所有功能设计的比较简单、只有商品信息的增删改查。实现对商品信息全面、 动态、及时的管理。本文系统的分析了软件开发的背景以过程;首先介绍了软件的开发环境, 其次介绍了本软件的详细设计过程: 数据库的设计、各个模块的设计和实现,以及具体界面的设计和功能。超市库存管理系统是基于 java eclipse 作为开发工具 , mysql 作为后台数据库支持。超市库存管理系统开发主要是界面程序的开发、数据库的建立、数据库的维护。应用程序功能完善,界面人机交互要好,而且操作简单。同时 javaswing语言简单,在较短的时间内能够开发出使用性强、 功能完善, 易于操作的程序, 也能实现与数据库的连接。

主要模块:

商品列表数据展示、商品信息添加、商品信息修改、商品信息删除、按照商品名称查询商品信息

1、功能介绍

功能截图:

查询商品列表信息:

基于Mysql+JavaSwing的超市商品管理系统设计与实现

添加商品信息:

基于Mysql+JavaSwing的超市商品管理系统设计与实现

修改商品信息:

基于Mysql+JavaSwing的超市商品管理系统设计与实现

删除商品信息:

删除之后需要刷新一下列表数据

基于Mysql+JavaSwing的超市商品管理系统设计与实现

​编号查询商品信息:

基于Mysql+JavaSwing的超市商品管理系统设计与实现

2、关键代码

2.1 主页功能

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
public class goodsmanage extends jframe {
 private jtextfield textfield;
 select select = new select();
 updata updata = new updata();
 object[] header= {"商品编号","商品名称","数量","单价"};
 string sql = "select goodsid,goodsname,num,price from goods";
 object[][] data= select.getgoods(sql);
 defaulttablemodel df = new defaulttablemodel(data, header);
 int v=scrollpaneconstants.vertical_scrollbar_as_needed;
 int h=scrollpaneconstants.horizontal_scrollbar_as_needed;
 
 public goodsmanage() {
  super("商品管理系统");
  this.setbounds(0, 0, 700, 450);
  this.setlocationrelativeto(null);//让窗口在屏幕中间显示
  this.setresizable(false);//让窗口大小不可改变
  getcontentpane().setlayout(null);
  
  jtable jtable = new jtable(df);
  jscrollpane jsp=new jscrollpane(jtable,v,h);
  jsp.setbounds(10, 10, 515, 320);
  getcontentpane().add(jsp);
  
  jbutton button_1 = new jbutton("显示所有商品");
  button_1.addactionlistener(new actionlistener() {
   @override
   public void actionperformed(actionevent e) {
    string sql = "select goodsid,goodsname,num,price from goods";
    object[][] data = select.getgoods(sql);
    df.setdatavector(data, header);
   }
  });
 
  button_1.setbounds(535, 80, 127, 30);
  getcontentpane().add(button_1);
  
  jbutton button_2 = new jbutton("修改商品");
  button_2.setbounds(535, 140, 127, 30);
  getcontentpane().add(button_2);
  button_2.addactionlistener(new actionlistener() {
   @override
   public void actionperformed(actionevent e) {
    if (jtable.getselectedcolumn()<0) {
     joptionpane.showmessagedialog(null, "请选择要修改的数据!");
    } else {
     int goodsid = integer.parseint(jtable.getvalueat(jtable.getselectedrow(), 0).tostring());
     string name = jtable.getvalueat(jtable.getselectedrow(), 1).tostring();
     int num = integer.parseint(jtable.getvalueat(jtable.getselectedrow(), 2).tostring());
     string price = jtable.getvalueat(jtable.getselectedrow(), 3).tostring();
     goods goods = new goods(goodsid,name,num,price);
     goodsxg goodsxg = new goodsxg(goods);
     goodsxg.setvisible(true);
    }
    
   }
  });
  
  jbutton button_3 = new jbutton("删除商品");
  button_3.setbounds(535, 200, 127, 30);
  getcontentpane().add(button_3);
  button_3.addactionlistener(new actionlistener() {
   @override
   public void actionperformed(actionevent e) {
    if (jtable.getselectedcolumn()<0) {
     joptionpane.showmessagedialog(null, "请选中要删除的数据!");
    } else {
     int goodsid = integer.parseint(jtable.getvalueat(jtable.getselectedrow(), 0).tostring());
     string sql="delete from goods where goodsid="+goodsid;
     int result = updata.adddata(sql);
     if (result>0) {
      joptionpane.showmessagedialog(null, "删除成功!");
      joptionpane.showmessagedialog(null, "记得刷新一下哦!");
     } else {
      joptionpane.showmessagedialog(null, "删除失败!");
     }
    }
   }
  });
  
  jbutton button_4 = new jbutton("添加商品");
  button_4.setbounds(535, 258, 127, 30);
  getcontentpane().add(button_4);
  button_4.addactionlistener(new actionlistener() {
   public void actionperformed(actionevent arg0) {
    goodsadd goodsadd = new goodsadd();
    goodsadd.setvisible(true);
   }
  });
  
  jlabel label = new jlabel("商品编号:");
  label.setbounds(40, 354, 112, 32);
  getcontentpane().add(label);
  
  textfield = new jtextfield();
  textfield.setbounds(154, 358, 127, 26);
  getcontentpane().add(textfield);
  textfield.setcolumns(10);
  
  jbutton button = new jbutton("按编号查询");
  button.addactionlistener(new actionlistener() {
   public void actionperformed(actionevent arg0) {
    string sql = "select goodsid,goodsname,num,price from goods where goodsid like '%"+textfield.gettext()+"%'";
    object[][] data = select.getgoods(sql);
    df.setdatavector(data, header);
   }
  });
  button.setbounds(305, 355, 112, 30);
  getcontentpane().add(button);
  
  this.addwindowlistener(new windowadapter() {
    
   public void windowclosing(windowevent e) {
    super.windowclosing(e);
    //加入动作
    goodsmanagement m = new goodsmanagement();
    m.setvisible(true);
    }
  });
 }
 
 public static void main(string[] args) {
  goodsmanage t = new goodsmanage();
  t.setvisible(true);
 }
}

2.2 添加商品信息

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
public class goodsadd extends jframe {
 private jtextfield id,name,num,price;
 private jbutton button;
 private jbutton button_1;
 
 public goodsadd() {
  super("商品管理系统");
  this.setbounds(0, 0, 400, 450);
  this.setlocationrelativeto(null);//让窗口在屏幕中间显示
  this.setresizable(false);//让窗口大小不可改变
  getcontentpane().setlayout(null);
  
  jlabel label = new jlabel("商品编号:");
  label.setbounds(85, 89, 87, 22);
  getcontentpane().add(label);
  
  id = new jtextfield();
  id.setbounds(147, 90, 142, 21);
  getcontentpane().add(id);
  id.setcolumns(10);
  
  jlabel label_1 = new jlabel("商品名称");
  label_1.setbounds(85, 139, 87, 22);
  getcontentpane().add(label_1);
  
  name = new jtextfield();
  name.setcolumns(10);
  name.setbounds(147, 140, 142, 21);
  getcontentpane().add(name);
  
  jlabel label_2 = new jlabel("数量:");
  label_2.setbounds(85, 193, 87, 22);
  getcontentpane().add(label_2);
  
  num = new jtextfield();
  num.setcolumns(10);
  num.setbounds(147, 194, 142, 21);
  getcontentpane().add(num);
  
  jlabel label_3 = new jlabel("单价:");
  label_3.setbounds(85, 241, 87, 22);
  getcontentpane().add(label_3);
  
  price = new jtextfield();
  price.setcolumns(10);
  price.setbounds(147, 242, 142, 21);
  getcontentpane().add(price);
  
  button = new jbutton("确定");
  button.setbounds(78, 317, 93, 23);
  getcontentpane().add(button);
  button.addactionlistener(new actionlistener() {
   public void actionperformed(actionevent arg0) {
    string addid = id.gettext();
    string addname = name.gettext();
    string addnum = num.gettext();
    string addprice = num.gettext();
    if (addname.equals("")||addname.equals("")||addnum.equals("")||addprice.equals("")) {
     joptionpane.showmessagedialog(null, "请完整输入要添加的数据");
    } else {
     string sql="insert into goods values("+addid+",'"+addname+"','"+addnum+"','"+addprice+"')";
     int result = updata.adddata(sql);
     if (result>0) {
      joptionpane.showmessagedialog(null, "添加成功!");
                  joptionpane.showmessagedialog(null, "记得刷新一下哦!");
      dispose();
//      goodsmanage i = new goodsmanage();
//      i.setvisible(true);
     } else {
      joptionpane.showmessagedialog(null, "添加失败!");
     }
    }
 
   }
  });
  
  button_1 = new jbutton("取消");
  button_1.setbounds(208, 317, 93, 23);
  getcontentpane().add(button_1);
  button_1.addactionlistener(new actionlistener() {
   public void actionperformed(actionevent arg0) {
    dispose();
   }
  });
  
 }
}

2.3 数据库设计

商品表

?
1
2
3
4
5
6
7
8
9
10
11
create table `newtable` (
`goodsid`  int(11) not null ,
`goodsname`  varchar(10) character set utf8 collate utf8_general_ci not null ,
`num`  int(11) not null ,
`price`  decimal(10,4) not null ,
primary key (`goodsid`)
)
engine=innodb
default character set=utf8 collate=utf8_general_ci
row_format=compact
;

到此这篇关于基于mysql+javaswing的超市商品管理系统设计与实现的文章就介绍到这了,更多相关mysql+javaswing的超市商品管理系统设计与实现内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://juejin.cn/post/7012021268597702664

延伸 · 阅读

精彩推荐
  • Mysql解决MySQl查询不区分大小写的方法讲解

    解决MySQl查询不区分大小写的方法讲解

    今天小编就为大家分享一篇关于解决MySQl查询不区分大小写的方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...

    Veir_dev5592019-06-25
  • MysqlMySQL数据库varchar的限制规则说明

    MySQL数据库varchar的限制规则说明

    本文我们主要介绍了MySQL数据库中varchar的限制规则,并以一个实际的例子对限制规则进行了说明,希望能够对您有所帮助。 ...

    mysql技术网4192019-11-23
  • MysqlMySQL锁的知识点总结

    MySQL锁的知识点总结

    在本篇文章里小编给大家整理了关于MySQL锁的知识点总结以及实例内容,需要的朋友们学习下。...

    别人放弃我坚持吖4362020-12-14
  • Mysqlmysql 不能插入中文问题

    mysql 不能插入中文问题

    当向mysql5.5插入中文时,会出现类似错误 ERROR 1366 (HY000): Incorrect string value: '\xD6\xD0\xCE\xC4' for column ...

    MYSQL教程网5722019-11-25
  • MysqlERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event()

    ERROR: Error in Log_event::read_log_event(): read error, data_len: 438, event_type: 2 ...

    MYSQL教程网6412020-03-13
  • MysqlMySQL 数据备份与还原的示例代码

    MySQL 数据备份与还原的示例代码

    这篇文章主要介绍了MySQL 数据备份与还原的相关知识,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...

    逆心2972019-06-23
  • Mysql详解MySQL中的分组查询与连接查询语句

    详解MySQL中的分组查询与连接查询语句

    这篇文章主要介绍了MySQL中的分组查询与连接查询语句,同时还介绍了一些统计函数的用法,需要的朋友可以参考下 ...

    GALAXY_ZMY5442020-06-03
  • Mysql浅谈mysql 树形结构表设计与优化

    浅谈mysql 树形结构表设计与优化

    在诸多的管理类,办公类等系统中,树形结构展示随处可见,本文主要介绍了mysql 树形结构表设计与优化,具有一定的参考价值,感兴趣的小伙伴们可以参...

    小码农叔叔5242021-11-16