Entwurf und Implementierung eines Supermarkt-Warenwirtschaftssystems auf Basis von Mysql+JavaSwing

Entwurf und Implementierung eines Supermarkt-Warenwirtschaftssystems auf Basis von Mysql+JavaSwing

Vorwort:

Da kleine Supermärkte immer größer werden, hat sich die Anzahl der Waren dramatisch erhöht und auch die Menge an Informationen über die Waren hat exponentiell zugenommen. Supermärkte müssen ständig statistische Analysen verschiedener Produktinformationen durchführen. Allerdings verfügen die Verwaltungssysteme großer Supermärkte über zu leistungsstarke Funktionen, was die Bedienung umständlich macht und die Arbeitseffizienz kleiner Supermärkte verringert. Supermarktverwaltungssysteme sind eines der am häufigsten in Supermärkten verwendeten Systeme auf dem Markt. Da ich gerade Java-Kenntnisse erworben habe, sind alle Funktionen relativ einfach gestaltet und umfassen nur das Hinzufügen, Löschen, Ändern und Abfragen von Produktinformationen. Realisieren Sie eine umfassende, dynamische und zeitnahe Verwaltung von Produktinformationen. In diesem Dokument werden der Hintergrund und der Prozess der Softwareentwicklung systematisch analysiert. Zunächst wird die Softwareentwicklungsumgebung vorgestellt, und dann wird der detaillierte Entwurfsprozess dieser Software beschrieben: Datenbankentwurf, Entwurf und Implementierung jedes Moduls sowie Entwurf und Funktionen spezifischer Schnittstellen. Das Bestandsverwaltungssystem des Supermarkts basiert auf Java Eclipse als Entwicklungstool und Mysql als Backend-Datenbankunterstützung. Die Entwicklung eines Bestandsverwaltungssystems für Supermärkte umfasst hauptsächlich die Entwicklung von Schnittstellenprogrammen, die Einrichtung von Datenbanken und die Wartung von Datenbanken. Die Anwendung sollte über vollständige Funktionen, eine gute Mensch-Computer-Interaktionsschnittstelle und einfach zu bedienen sein. Gleichzeitig ist die Sprache JAVASwing einfach und es ist möglich, in relativ kurzer Zeit ein Programm zu entwickeln, das sehr benutzerfreundlich, voll funktionsfähig und leicht zu bedienen ist und außerdem eine Verbindung mit der Datenbank herstellen kann.

Hauptmodule:

Anzeige von Produktlistendaten, Hinzufügen von Produktinformationen, Ändern von Produktinformationen, Löschen von Produktinformationen, Abfrage von Produktinformationen nach Produktnamen

1. Funktionseinführung

Funktions-Screenshots:

Produktlisteninformationen abfragen:

Produktinformationen hinzufügen:

Produktinformationen ändern:

Produktinformationen löschen:

Nach dem Löschen müssen Sie die Listendaten aktualisieren

Produktinformationen nach Nummer abfragen:

2. Schlüsselcode

2.1 Funktionen der Startseite

öffentliche Klasse GoodsManage erweitert JFrame {
 privates JTextField Textfeld;
 Auswählen auswählen = neues Auswählen();
 Updata updata = neue Updata();
 Object[] header= {"Produktnummer","Produktname","Menge","Stückpreis"};
 Zeichenfolge SQL = "SELECT Waren-ID, Warenname, Anzahl, Preis AUS Waren";
 Objekt[][] Daten= select.getGoods(sql);
 DefaultTableModel df = neues DefaultTableModel(Daten, Header);
 int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
 int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
 
 öffentliche Warenverwaltung() {
  super("Produktmanagementsystem");
  Dies.setBounds(0, 0, 700, 450);
  this.setLocationRelativeTo(null);//Das Fenster wird in der Mitte des Bildschirms angezeigt this.setResizable(false);//Die Fenstergröße wird nicht geändert getContentPane().setLayout(null);
  
  JTable jTable = neue JTable(df);
  JScrollPane jsp=neues JScrollPane(jTable,v,h);
  jsp.setBounds(10, 10, 515, 320);
  getContentPane().add(jsp);
  
  JButton button_1 = neuer JButton("Alle Produkte anzeigen");
  button_1.addActionListener(neuer ActionListener() {
   @Überschreiben
   public void Aktion ausgeführt(Aktionsereignis e) {
    Zeichenfolge SQL = "SELECT Waren-ID, Warenname, Anzahl, Preis AUS Waren";
    Objekt[][] Daten = Select.getGoods(sql);
    df.setDataVector(Daten, Header);
   }
  });
 
  button_1.setBounds(535, 80, 127, 30);
  getContentPane().add(button_1);
  
  JButton button_2 = neuer JButton("Produkt ändern");
  button_2.setBounds(535, 140, 127, 30);
  getContentPane().add(button_2);
  button_2.addActionListener(neuer ActionListener() {
   @Überschreiben
   public void Aktion ausgeführt(Aktionsereignis e) {
    wenn (jTable.getSelectedColumn()<0) {
     JOptionPane.showMessageDialog(null, "Bitte wählen Sie die zu ändernden Daten aus!");
    } anders {
     int Waren-ID = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 0).toString());
     Zeichenfolgenname = jTable.getValueAt(jTable.getSelectedRow(), 1).toString();
     int num = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 2).toString());
     Zeichenfolge Preis = jTable.getValueAt(jTable.getSelectedRow(), 3).toString();
     Waren Waren = neue Waren (Waren-ID, Name, Anzahl, Preis);
     WareXG WareXG = neue WareXG(Ware);
     warenXG.setVisible(true);
    }
    
   }
  });
  
  JButton button_3 = neuer JButton("Produkt löschen");
  button_3.setBounds(535, 200, 127, 30);
  getContentPane().add(button_3);
  button_3.addActionListener(neuer ActionListener() {
   @Überschreiben
   public void Aktion ausgeführt(Aktionsereignis e) {
    wenn (jTable.getSelectedColumn()<0) {
     JOptionPane.showMessageDialog(null, "Bitte wählen Sie die zu löschenden Daten aus!");
    } anders {
     int Waren-ID = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 0).toString());
     Zeichenfolge sql="löschen aus Waren, wobei goodsid="+goodsID;
     int Ergebnis = updata.addData(sql);
     wenn (Ergebnis>0) {
      JOptionPane.showMessageDialog(null, "Erfolgreich gelöscht!");
      JOptionPane.showMessageDialog(null, "Denken Sie daran, zu aktualisieren!");
     } anders {
      JOptionPane.showMessageDialog(null, "Löschen fehlgeschlagen!");
     }
    }
   }
  });
  
  JButton button_4 = neuer JButton("Produkt hinzufügen");
  button_4.setBounds(535, 258, 127, 30);
  getContentPane().add(button_4);
  button_4.addActionListener(neuer ActionListener() {
   public void Aktion ausgeführt(Aktionsereignis arg0) {
    WarenADD WarenAdd = neue WarenADD();
    warenAdd.setVisible(true);
   }
  });
  
  JLabel label = neues JLabel("Produktnummer:");
  label.setBounds(40, 354, 112, 32);
  getContentPane().add(label);
  
  Textfeld = neues JTextField();
  textField.setBounds(154, 358, 127, 26);
  getContentPane().add(textField);
  textField.setColumns(10);
  
  JButton button = neuer JButton("Abfrage nach Nummer");
  button.addActionListener(neuer ActionListener() {
   public void Aktion ausgeführt(Aktionsereignis arg0) {
    Zeichenfolge SQL = "SELECT Waren-ID, Warenname, Anzahl, Preis FROM Waren WHERE Waren-ID LIKE '%"+textField.getText()+"%'";
    Objekt[][] Daten = Select.getGoods(sql);
    df.setDataVector(Daten, Header);
   }
  });
  button.setBounds(305, 355, 112, 30);
  getContentPane().add(button);
  
  dies.addWindowListener(neuer WindowAdapter() {
    
   public void FensterSchließen(Fensterereignis e) {
    super.windowClosing(e);
    //Aktion GoodsManagement hinzufügen m = new GoodsManagement();
    m.setVisible(true);
    }
  });
 }
 
 öffentliche statische void main(String[] args) {
  Waren verwalten t = neues Waren verwalten();
  t.setVisible(true);
 }
}

2.2 Produktinformationen hinzufügen

öffentliche Klasse GoodsADD erweitert JFrame {
 private JTextField-ID, Name, Nummer, Preis;
 privater JButton-Button;
 privater JButton button_1;
 
 öffentliche GoodsADD() {
  super("Produktmanagementsystem");
  Dies.setBounds(0, 0, 400, 450);
  this.setLocationRelativeTo(null);//Das Fenster wird in der Mitte des Bildschirms angezeigt this.setResizable(false);//Die Fenstergröße wird nicht geändert getContentPane().setLayout(null);
  
  JLabel label = neues JLabel("Produktnummer:");
  label.setBounds(85, 89, 87, 22);
  getContentPane().add(label);
  
  id = neues JTextField();
  id.setBounds(147, 90, 142, 21);
  getContentPane().add(id);
  id.setColumns(10);
  
  JLabel label_1 = neues JLabel("Produktname");
  label_1.setBounds(85, 139, 87, 22);
  getContentPane().add(label_1);
  
  Name = neues JTextField();
  Name.Spalten setzen(10);
  name.setBounds(147, 140, 142, 21);
  getContentPane().add(name);
  
  JLabel label_2 = neues JLabel("Menge:");
  label_2.setBounds(85, 193, 87, 22);
  getContentPane().add(label_2);
  
  num = neues JTextField();
  Anzahl Spalten festlegen(10);
  num.setBounds(147, 194, 142, 21);
  getContentPane().add(num);
  
  JLabel label_3 = neues JLabel("Stückpreis:");
  label_3.setBounds(85, 241, 87, 22);
  getContentPane().add(label_3);
  
  Preis = neues JTextField();
  preis.setColumns(10);
  Preis.setBounds(147, 242, 142, 21);
  getContentPane().add(Preis);
  
  Schaltfläche = neuer JButton("OK");
  button.setBounds(78, 317, 93, 23);
  getContentPane().add(button);
  button.addActionListener(neuer ActionListener() {
   public void Aktion ausgeführt(Aktionsereignis arg0) {
    Geben Sie die Zeichenfolge addId ein, und geben Sie sie in das Feld id ein.
    String addName = name.getText();
    String addNum = num.getText();
    Zeichenfolge addPrice = num.getText();
    wenn (addName.equals("")||addName.equals("")||addNum.equals("")||addPrice.equals("")) {
     JOptionPane.showMessageDialog(null, "Bitte geben Sie die hinzuzufügenden Daten vollständig ein");
    } anders {
     Zeichenfolge sql="INSERT INTO goods VALUES("+addId+",'"+addName+"','"+addNum+"','"+addPrice+"')";
     int-Ergebnis = Updata.addData(sql);
     wenn (Ergebnis>0) {
      JOptionPane.showMessageDialog(null, "Erfolgreich hinzugefügt!");
                  JOptionPane.showMessageDialog(null, "Denken Sie daran, zu aktualisieren!");
      entsorgen();
//Warenverwaltung i = new Warenverwaltung();
// i.setVisible(true);
     } anders {
      JOptionPane.showMessageDialog(null, "Hinzufügen fehlgeschlagen!");
     }
    }
 
   }
  });
  
  button_1 = neuer JButton("Abbrechen");
  button_1.setBounds(208, 317, 93, 23);
  getContentPane().add(button_1);
  button_1.addActionListener(neuer ActionListener() {
   public void Aktion ausgeführt(Aktionsereignis arg0) {
    entsorgen();
   }
  });
  
 }
}

2.3 Datenbankdesign

Produktliste

CREATE TABLE `NewTable` (
`goodsID` int(11) NICHT NULL ,
`goodsName` varchar(10) ZEICHENSATZ utf8 SORTIMENT utf8_general_ci NICHT NULL ,
`num` int(11) NICHT NULL,
`Preis` Dezimalzahl (10,4) NICHT NULL,
Primärschlüssel (`goodsID`)
)
ENGINE=InnoDB
STANDARDZEICHENSATZ=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=KOMPAKT
;

Dies ist das Ende dieses Artikels über die Entwicklung und Implementierung eines Warenwirtschaftssystems für Supermärkte于Mysql+JavaSwing . Weitere Informationen zur Entwicklung und Implementierung eines Warenwirtschaftssystems für Supermärkte auf Basis von Mysql+JavaSwing finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Java (Swing) + MySQL zur Implementierung des Quellcodes des Studenteninformationsmanagementsystems
  • Java+MySQL implementiert Bibliotheksverwaltungssystem (vollständiger Code)
  • Java implementiert ein Einkaufszentrumsystem für den Teeverkauf (Java+SSM+JSP+EasyUi+MySQL)
  • Eclipse+Java+Swing+MySQL zur Implementierung eines Gehaltsverwaltungssystems
  • Eclipse+Java+Swing+MySQL zur Implementierung eines Kinokarten-Kaufsystems (detaillierter Code)
  • Java+Swing+MySQL zur Implementierung eines Rohstoffverkaufsmanagementsystems
  • Gutscheinsystem mit Java+MySQL entwerfen

<<:  7 coole dynamische Website-Designs zur Inspiration

>>:  24 praktische Tipps zur JavaScript-Entwicklung

Artikel empfehlen

Installieren von MySQL 8.0.12 basierend auf Windows

Dieses Tutorial ist nur auf Windows-Systemen anwe...

Tutorial zur Installation von Ubuntu 20.04 und NVIDIA-Treibern

Installieren Sie Ubuntu 20.04 Installieren Sie NV...

Eine einfache Methode zum Ändern der Größe hochgeladener Nginx-Dateien

Originallink: https://vien.tech/article/138 Vorwo...

Implementierung der Multi-Environment-Konfiguration (.env) des Vue-Projekts

Inhaltsverzeichnis Was ist eine Multiumgebungskon...

Mysql behält den vorhandenen Inhalt bei und fügt später Inhalte hinzu

Dieser Befehl ändert die Datentabelle ff_vod und ...

Videojs+Swiper realisiert Taobao-Produktdetailkarussell

In diesem Artikel wird der spezifische Code von v...

Vollständige Schritte zum Erstellen eines Hochleistungsindex in MySQL

Inhaltsverzeichnis 1. Index-Grundlagen 1. Arten v...

So verwenden Sie Node zum Implementieren des statischen Datei-Cachings

Inhaltsverzeichnis Cache Klassifizierung des Cach...

Spezifische Schritte für den Vue-Browser zur Rückgabe der Überwachung

Vorwort Beim Teilen einer Seite hoffen Sie, durch...

So erklären Sie TypeScript-Generika auf einfache Weise

Inhaltsverzeichnis Überblick Was sind Generika Sy...

Detaillierte Erklärung der Kontrolle des Zugriffsvolumens durch Nginx

Zweck Machen Sie sich mit den Nginx-Modulen ngx_h...

So fügen Sie in JS eine Abbruchfunktion zu einem Versprechen hinzu

Inhaltsverzeichnis Überblick Promise Race Methode...

JavaScript Canvas realisiert den Effekt des Neun-Quadrat-Rasterschneidens

In diesem Artikel wird der spezifische Code der L...