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

Drei häufig verwendete MySQL-Datentypen

Das Definieren des Datenfeldtyps in MySQL ist für...

WeChat-Miniprogramme implementieren Sternebewertung

In diesem Artikel wird der spezifische Code für d...

Detaillierter Informationsaustausch über das MySQL-Protokollsystem

Jeder, der schon einmal an einem großen System ge...

CSS3 zum Erzielen eines dynamischen Hintergrundverlaufseffekts

Beim Erlernen von CSS3 geht es mehr darum, sich m...

Verwenden einer MySQL-Datenbank mit Python 3.4 unter Windows 7

Der detaillierte Prozess der Verwendung der MySQL...

CSS löst das Fehlausrichtungsproblem von Inline-Blöcken

Schluss mit Unsinn, Postleitzahl HTML-Teil <di...

Verwenden von Vue3 (Teil 1) Erstellen eines Vue CLI-Projekts

Inhaltsverzeichnis 1. Offizielle Dokumentation 2....

Realisieren Sie einen super coolen Wasserlichteffekt auf Leinwandbasis

In diesem Artikelbeispiel erfahren Sie den spezif...

Spezifische Verwendung von Nginx Keepalive

Der Standardanforderungsheader des http1.1-Protok...

Drei Möglichkeiten zur Implementierung des Wasserfall-Flow-Layouts

Vorwort Als ich heute Xianyu durchsuchte, fiel mi...

Detaillierte Erläuterung der Verwendung des gcc-Befehls unter Linux

Inhaltsverzeichnis 1. Vorverarbeitung 2. Zusammen...

Zwei Möglichkeiten, die CSS-Priorität zu verstehen

Methode 1: Werte hinzufügen Gehen wir zu MDN, um ...