Mysql+JavaSwing に基づくスーパーマーケット商品管理システムの設計と実装

Mysql+JavaSwing に基づくスーパーマーケット商品管理システムの設計と実装

序文:

小規模スーパーマーケットの規模拡大に伴い、商品の数も飛躍的に増加し、商品に関する情報量も飛躍的に増加しています。 スーパーマーケットでは、さまざまな商品情報を常に統計的に分析する必要があります。 しかし、大規模スーパーマーケットの管理システムの機能は強力すぎるため、操作が煩雑になり、小規模スーパーマーケットの作業効率が低下します。 スーパーマーケット管理システムは、市場のスーパーマーケットで一般的に使用されている最も人気のあるシステムの1つです。 Javaの知識を習得したばかりなので、すべての機能は比較的シンプルに設計されており、商品情報の追加、削除、変更、およびクエリのみが可能です。製品情報の包括的、動的、タイムリーな管理を実現します。本稿では、ソフトウェア開発の背景とプロセスを体系的に分析し、まずソフトウェア開発環境を紹介し、次にこのソフトウェアの詳細な設計プロセス(データベース設計、各モジュールの設計と実装、特定のインターフェースの設計と機能)を紹介します。スーパーマーケットの在庫管理システムは、開発ツールとして Java Eclipse を、バックエンド データベース サポートとして Mysql をベースにしています。スーパーマーケット在庫管理システムの開発には、主にインターフェース プログラムの開発、データベースの構築、データベースの保守が含まれます。アプリケーションは完全な機能、優れた人間とコンピュータの相互作用インターフェースを備え、操作が簡単である必要があります。同時に、JAVASwing言語はシンプルで、比較的短期間で、使い勝手が高く、機能が充実し、操作しやすいプログラムを開発することができ、データベースとの接続も実現できます。

メインモジュール:

商品リストデータ表示、商品情報追加、商品情報修正、商品情報削除、商品名による商品情報照会

1. 機能紹介

機能スクリーンショット:

製品リスト情報を照会します:

製品情報を追加します:

製品情報を変更する:

製品情報を削除します:

削除後、リストデータを更新する必要があります

番号で製品情報を照会します:

2. キーコード

2.1 ホームページの機能

パブリッククラスGoodsManageはJFrameを拡張します{
 プライベート JTextField テキストフィールド;
 Select select = new Select();
 アップデータ updata = new Updata();
 Object[] header= {"商品番号","商品名","数量","単価"};
 文字列 sql = "商品ID、商品名、番号、価格を商品から選択します";
 オブジェクト[][]データ= select.getGoods(sql);
 DefaultTableModel df = 新しい DefaultTableModel(データ、ヘッダー);
 int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_​​AS_NEEDED;
 int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_​​AS_NEEDED;
 
 パブリックGoodsManage() {
  super("製品管理システム");
  境界を0, 0, 700, 450に設定します。
  this.setLocationRelativeTo(null);//ウィンドウを画面の中央に表示します this.setResizable(false);//ウィンドウのサイズを変更しません getContentPane().setLayout(null);
  
  JTable jTable = new JTable(df);
  JScrollPane jsp = 新しい JScrollPane(jTable,v,h);
  jsp.setBounds(10, 10, 515, 320);
  getContentPane() を追加します(jsp);
  
  JButton button_1 = new JButton("すべての製品を表示");
  button_1.addActionListener(新しいActionListener() {
   @オーバーライド
   パブリック void アクションが実行されました (アクションイベント e) {
    文字列 sql = "商品ID、商品名、番号、価格を商品から選択します";
    オブジェクト[][]データ = Select.getGoods(sql);
    df.setDataVector(データ、ヘッダー);
   }
  });
 
  ボタン1に境界を設定します(535, 80, 127, 30);
  getContentPane().add(button_1);
  
  JButton button_2 = new JButton("製品の変更");
  ボタン2.setBounds(535, 140, 127, 30);
  getContentPane() を追加します(button_2);
  button_2.addActionListener(新しいActionListener() {
   @オーバーライド
   パブリック void アクションが実行されました (アクションイベント e) {
    (jTable.getSelectedColumn()<0) の場合 {
     JOptionPane.showMessageDialog(null, "変更するデータを選択してください!");
    } それ以外 {
     int goodsID = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 0).toString());
     文字列名 = jTable.getValueAt(jTable.getSelectedRow(), 1).toString();
     int num = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 2).toString());
     文字列価格 = jTable.getValueAt(jTable.getSelectedRow(), 3).toString();
     商品 goods = new Goods(goodsID,name,num,price);
     商品XG 商品XG = 新しい商品XG(商品);
     goodsXG.setVisible(true);
    }
    
   }
  });
  
  JButton button_3 = new JButton("製品を削除");
  ボタン3.setBounds(535, 200, 127, 30);
  getContentPane().add(button_3);
  button_3.addActionListener(新しいActionListener() {
   @オーバーライド
   パブリック void アクションが実行されました (アクションイベント e) {
    (jTable.getSelectedColumn()<0) の場合 {
     JOptionPane.showMessageDialog(null, "削除するデータを選択してください!");
    } それ以外 {
     int goodsID = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 0).toString());
     文字列 sql="delete from goods where goodsid="+goodsID;
     int 結果 = updata.addData(sql);
     結果>0の場合{
      JOptionPane.showMessageDialog(null, "正常に削除されました!");
      JOptionPane.showMessageDialog(null, "更新を忘れないでください!");
     } それ以外 {
      JOptionPane.showMessageDialog(null, "削除に失敗しました!");
     }
    }
   }
  });
  
  JButton button_4 = new JButton("商品を追加");
  ボタン4.setBounds(535, 258, 127, 30);
  getContentPane().add(button_4);
  button_4.addActionListener(新しいActionListener() {
   パブリック void actionPerformed(ActionEvent arg0) {
    商品追加 商品追加 = new 商品追加();
    goodsAdd.setVisible(true);
   }
  });
  
  JLabel label = new JLabel("製品番号:");
  ラベル.setBounds(40, 354, 112, 32);
  getContentPane().add(ラベル);
  
  テキストフィールド = 新しい JTextField();
  テキストフィールド.setBounds(154, 358, 127, 26);
  getContentPane().add(テキストフィールド);
  テキストフィールド.setColumns(10);
  
  JButton button = new JButton("番号によるクエリ");
  button.addActionListener(新しいActionListener() {
   パブリック void actionPerformed(ActionEvent arg0) {
    文字列 sql = "SELECT goodsID,goodsname,num,price FROM goods WHERE goodsid LIKE '%"+textField.getText()+"%'";
    オブジェクト[][]データ = Select.getGoods(sql);
    df.setDataVector(データ、ヘッダー);
   }
  });
  ボタン.setBounds(305, 355, 112, 30);
  getContentPane().add(ボタン);
  
  this.addWindowListener(新しいWindowAdapter() {
    
   パブリック void windowClosing(WindowEvent e) {
    super.windowClosing(e);
    //アクションを追加 GoodsManagement m = new GoodsManagement();
    m.setVisible(true);
    }
  });
 }
 
 パブリック静的voidメイン(String[] args) {
  GoodsManage t = 新しい GoodsManage();
  t.setVisible(true);
 }
}

2.2 製品情報を追加する

パブリッククラスGoodsADDはJFrameを拡張します{
 プライベート JTextField id、名前、数値、価格;
 プライベート JButton ボタン;
 プライベート JButton button_1;
 
 パブリックGoodsADD() {
  super("製品管理システム");
  境界を0, 0, 400, 450に設定します。
  this.setLocationRelativeTo(null);//ウィンドウを画面の中央に表示します this.setResizable(false);//ウィンドウのサイズを変更しません getContentPane().setLayout(null);
  
  JLabel label = new JLabel("製品番号:");
  ラベル.setBounds(85, 89, 87, 22);
  getContentPane().add(ラベル);
  
  id = 新しい 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);
  
  名前 = 新しい JTextField();
  名前.setColumns(10);
  名前.setBounds(147, 140, 142, 21);
  getContentPane().add(名前);
  
  JLabel label_2 = new JLabel("数量:");
  label_2.setBounds(85, 193, 87, 22);
  getContentPane().add(label_2);
  
  num = 新しい JTextField();
  num.setColumns(10);
  数値.setBounds(147, 194, 142, 21);
  getContentPane().add(num);
  
  JLabel label_3 = new JLabel("単価:");
  ラベル3.setBounds(85, 241, 87, 22);
  getContentPane().add(label_3);
  
  価格 = 新しい JTextField();
  価格.setColumns(10);
  価格.setBounds(147, 242, 142, 21);
  getContentPane().add(価格);
  
  ボタン = 新しい JButton("OK");
  ボタン.setBounds(78, 317, 93, 23);
  getContentPane().add(ボタン);
  button.addActionListener(新しいActionListener() {
   パブリック void actionPerformed(ActionEvent arg0) {
    文字列 addId = id.getText();
    文字列 addName = name.getText();
    文字列 addNum = num.getText();
    文字列 addPrice = num.getText();
    if (addName.equals("")||addName.equals("")||addNum.equals("")||addPrice.equals("")) {
     JOptionPane.showMessageDialog(null, "追加するデータを完全に入力してください");
    } それ以外 {
     文字列 sql="INSERT INTO goods VALUES("+addId+",'"+addName+"','"+addNum+"','"+addPrice+"')";
     int 結果 = Updata.addData(sql);
     結果>0の場合{
      JOptionPane.showMessageDialog(null, "正常に追加されました!");
                  JOptionPane.showMessageDialog(null, "更新を忘れないでください!");
      破棄();
//GoodsManage i = 新しい GoodsManage();
// i.setVisible(true);
     } それ以外 {
      JOptionPane.showMessageDialog(null, "追加に失敗しました!");
     }
    }
 
   }
  });
  
  button_1 = 新しい JButton("キャンセル");
  ボタン1.setBounds(208, 317, 93, 23);
  getContentPane().add(button_1);
  button_1.addActionListener(新しいActionListener() {
   パブリック void actionPerformed(ActionEvent arg0) {
    破棄();
   }
  });
  
 }
}

2.3 データベース設計

製品リスト

テーブル `NewTable` を作成します (
`goodsID` int(11) NOT NULL ,
`goodsName` varchar(10) 文字セット utf8 COLLATE utf8_general_ci NOT NULL ,
`num` int(11) NOT NULL ,
`price` 小数点(10,4) NOT NULL ,
主キー (`goodsID`)
)
エンジン=InnoDB
デフォルト文字セット=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=コンパクト
;

これで于Mysql+JavaSwingスーパーマーケット商品管理システムの設計と実装に関するこの記事は終了です。 Mysql+JavaSwingをベースにしたスーパーマーケット商品管理システムの設計と実装の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。 今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 学生情報管理システムのソースコードを実装するためのJava(Swing)+MySQL
  • Java+MySQL はライブラリ管理システムを実装します (完全なコード)
  • Java で茶販売モールシステムを実装 (java+SSM+JSP+EasyUi+mysql)
  • Eclipse+Java+Swing+MySQLで給与管理システムを実装
  • Eclipse+Java+Swing+MySQL で映画チケット購入システムを実装する (詳細なコード)
  • Java+Swing+Mysqlで商品販売管理システムを実装
  • Java+MySQLによるクーポンシステムの設計

<<:  インスピレーションを得るための7つのクールなダイナミックウェブサイトデザイン

>>:  24 の実用的な JavaScript 開発のヒント

推薦する

ページ要素の絶対位置と相対位置に関するある程度の理解

今日から、定期的にちょっとした豆知識を整理していきます。簡単なものもあるかもしれませんが、どれも役に...

コードレイン効果を実現するjQueryプラグイン

この記事では、コードレイン特殊効果を実現するためのjQueryプラグインの具体的なコードを参考までに...

CentOS8.0ネットワーク設定の実装

1. CentOS 7 と CentOS 8 のネットワーク構成の違い: VMware Workst...

Linux でファイアウォールがオフになっているかどうかを確認する方法

1. サービス方法ファイアウォールのステータスを確認します。 [root@centos6 ~]# サ...

VMWare に CentOS 7.3 をインストールするグラフィカル チュートリアル

CentOS 7.3のインストール手順を図解しました。具体的な内容は次のとおりです。この記事では、v...

CentOS 7 で PHP 5.4 を 5.6 にアップグレードする方法の簡単な分析

1.ターミナルに入ったらPHPのバージョンを確認するphp -v出力は次のようになります。 PHP ...

Docker 自動ビルド 自動ビルド実装プロセス図

自動ビルドとは、Docker Hub を使用して、Dockerfile ファイルを含む GitHub...

単一選択折りたたみメニュー機能を実現するCSS

前回の「最もシンプルなスイッチを実現するCSS」のように、HTML5とCSS3でほとんどの機能をすで...

MySQL 8.0.23 のインストールと設定方法のグラフィックチュートリアル (Win10 の場合)

この記事では、MySQL 8.0.23のインストールと設定方法を参考までに紹介します。具体的な内容は...

MySQL 5.7.17 圧縮パッケージのインストール不要の構成プロセス図

MySQL データベース管理ソフトウェアには、エンタープライズ エディションとコミュニティ エディシ...

JS の compose 関数と pipe 関数の使い方の詳細な説明

目次作成機能配列プロトタイプの削減Array.prototype.reduceRightパイプ関数作...

MySQL エラー番号 1129 の解決方法

SQLyog が MySQL に接続する際にエラー番号 1129 が発生します: mysql エラー...

JS ベースの Ajax 同時リクエスト制御を実装する方法

目次序文Ajax シリアルおよびパラレルAjaxの同時リクエスト制御のための2つのソリューションPr...

HTML+CSS+JavaScript でシンプルな三目並べゲームを作成する

目次HTMLの実装CSSを追加Javascript部分の実装デモアドレス HTMLの実装まず、hea...

モバイル開発チュートリアル: ピクセル表示の問題の概要

序文モバイル端末の開発の過程で、モバイル端末のディスプレイはデスクトップ端末のディスプレイとは一般的...