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

 更新时间:2021年09月26日 10:19:45   作者:java李杨勇  
本项目是使用Java swing开发,可实现超市管理系统商品列表信息查询、添加商品信息和修改商品管理以及删除商品信息和安装商品信息查询等功能。界面设计和功能比较简单基础、适合作为Java课设设计以及学习技术使用,需要的朋友可以参考一下

前言:

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

主要模块:

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

1、功能介绍

功能截图:

查询商品列表信息:

添加商品信息:

修改商品信息:

删除商品信息:

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

​编号查询商品信息:

2、关键代码

2.1 主页功能

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 添加商品信息

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 数据库设计

商品表

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的超市商品管理系统设计与实现内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 经典mysql连接查询例题

    经典mysql连接查询例题

    本文通过一个有趣的例子向我们介绍了mysql连接查询,采用了子查询和连接查询混合和多次连接查询,需要的朋友可以参考下
    2015-07-07
  • update.where无索引导致MySQL死锁问题解决

    update.where无索引导致MySQL死锁问题解决

    这篇文章主要为大家介绍了update.where无索引导致MySQL死锁问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • linux下mysql的安装步骤

    linux下mysql的安装步骤

    本文分步骤给大家介绍了linux下mysql的安装步骤及执行命令,需要的朋友可以参考下
    2018-03-03
  • MySQL绿色解压缩版安装与配置操作步骤

    MySQL绿色解压缩版安装与配置操作步骤

    这篇文章主要介绍了MySQL绿色解压缩版安装与配置操作步骤,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • Mysql事务的隔离级别(脏读+幻读+可重复读)

    Mysql事务的隔离级别(脏读+幻读+可重复读)

    这篇文章主要介绍了Mysql事务的隔离级别(脏读+幻读+可重复读),文章通告InnoDB展开详细内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-08-08
  • MySQL触发器的使用和inserted和deleted表介绍

    MySQL触发器的使用和inserted和deleted表介绍

    这篇文章主要介绍了MySQL触发器的使用和inserted和deleted表,触发器,就是一种特殊的存储过程,触发器和存储过程一样是一个能够完成特定功能和存储在数据库服务器上的SQL片段,感兴趣想要详细了解可以参考下文
    2023-05-05
  • mysql主从服务器配置特殊问题

    mysql主从服务器配置特殊问题

    如果修改了主服务器的配置,记得删除从服务器上的master.info文件。否则从服务器使用的还是老配置,可能会导致错误。
    2010-12-12
  • 简单了解标准SQL的update语句三种用法

    简单了解标准SQL的update语句三种用法

    这篇文章主要介绍了简单了解标准SQL的update语句三种用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06
  • windows2008 64位系统下MySQL 5.7绿色版的安装教程

    windows2008 64位系统下MySQL 5.7绿色版的安装教程

    这篇文章主要给大家分享了在windows2008 64位系统下MySQL 5.7绿色版的安装教程,文中将安装步骤介绍的非常详细,相信会对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • Table ‘xxx’ is marked as crashed and should be repaired 错误解决方法参考

    Table ‘xxx’ is marked as crashed and should be repaired 错误解决

    这些东西都是从其他地方找来的一些解决MYSQL数据库这个错误的方法,并不一定适用于神迹数据库,仅仅供参考一下,具体的解决方法还是需要摸索。
    2009-04-04

最新评论