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

MySQL 8.0-Installationstutorial unter Linux

Dieser Artikel beschreibt Ihnen, wie Sie MySQL 8....

Eine kurze Analyse des Kimono-Memo-Problems

Heute musste ich nach dem Neustart des Spiels fes...

Zusammenfassung der Probleme bei der Speicherplatzfreigabe unter Linux

Die /Partitionsauslastung eines Servers im IDC is...

Vue3-Kompilierungsprozess - Quellcodeanalyse

Vorwort: Vue3 ist schon seit langem verfügbar. Vo...

Dieser Artikel hilft Ihnen, den Quellcode von PReact10.5.13 zu verstehen

Inhaltsverzeichnis render.js-Teil create-context....

Tiefgreifendes Verständnis der JavaScript-Rückruffunktionen

Inhaltsverzeichnis Vorwort Kurzübersicht: JavaScr...

So zeigen Sie die Zeitzone in MySQL an und ändern sie

Heute habe ich festgestellt, dass ein Programm ei...

Vollständige Analyse des Vue-Diff-Algorithmus

Inhaltsverzeichnis Vorwort Vue-Aktualisierungsans...

So führen Sie das React-Projekt auf dem offiziellen WeChat-Konto aus

Inhaltsverzeichnis 1. Verwenden Sie das „A“-Tag, ...

HTML imitiert die Dropdown-Menüfunktion der Baidu-Enzyklopädienavigation

HTML imitiert die Dropdown-Menüfunktion der Baidu...