基于JavasSwing+MySQL的医药销售管理系统
发布人:shili8
发布时间:2024-11-16 03:23
阅读次数:0
**医药销售管理系统**
本系统基于Java Swing和MySQL开发,旨在为医药销售提供一个全面的管理平台。系统包括用户登录、产品管理、订单管理、客户管理等功能。
### 系统结构1. **数据库设计**
* 创建名为`medicinesale`的数据库* 设计以下表格:
+ `users`:存储用户信息(用户名、密码、角色)
+ `products`:存储产品信息(名称、价格、库存量)
+ `orders`:存储订单信息(订单号、客户ID、总金额)
+ `orderdetails`:存储订单详细信息(订单号、产品ID、数量)
+ `customers`:存储客户信息(客户名、联系方式)
2. **Java Swing界面**
* 设计登录界面:包含用户名和密码输入框,登录按钮* 设计主界面:包含菜单栏,显示当前用户的角色和功能* 设计产品管理界面:包含产品列表,添加、编辑、删除产品按钮* 设计订单管理界面:包含订单列表,添加、编辑、删除订单按钮* 设计客户管理界面:包含客户列表,添加、编辑、删除客户按钮###代码示例#### 用户登录界面
javaimport javax.swing.*; import java.awt.*; public class LoginFrame extends JFrame { private JTextField usernameField; private JPasswordField passwordField; public LoginFrame() { setLayout(new FlowLayout()); JLabel usernameLabel = new JLabel("用户名:"); usernameField = new JTextField(20); add(usernameLabel); add(usernameField); JLabel passwordLabel = new JLabel("密码:"); passwordField = new JPasswordField(20); add(passwordLabel); add(passwordField); JButton loginButton = new JButton("登录"); loginButton.addActionListener(e -> { String username = usernameField.getText(); String password = new String(passwordField.getPassword()); // 验证用户名和密码,跳转到主界面 }); add(loginButton); setSize(300,150); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
####产品管理界面
javaimport javax.swing.*; import java.awt.*; public class ProductFrame extends JFrame { private JTable productTable; public ProductFrame() { setLayout(new BorderLayout()); //产品列表表格 String[] columnNames = {"名称", "价格", "库存量"}; Object[][] data = {{"产品1",10.99,100}, {"产品2",5.99,50}}; productTable = new JTable(data, columnNames); JScrollPane scrollPane = new JScrollPane(productTable); // 添加、编辑、删除按钮 JPanel buttonPanel = new JPanel(); JButton addButton = new JButton("添加"); JButton editButton = new JButton("编辑"); JButton deleteButton = new JButton("删除"); buttonPanel.add(addButton); buttonPanel.add(editButton); buttonPanel.add(deleteButton); // 添加、编辑、删除事件处理 addButton.addActionListener(e -> { // 添加新产品 }); editButton.addActionListener(e -> { // 编辑选中产品 }); deleteButton.addActionListener(e -> { // 删除选中产品 }); add(scrollPane, BorderLayout.CENTER); add(buttonPanel, BorderLayout.SOUTH); setSize(400,300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
#### 订单管理界面
javaimport javax.swing.*; import java.awt.*; public class OrderFrame extends JFrame { private JTable orderTable; public OrderFrame() { setLayout(new BorderLayout()); // 订单列表表格 String[] columnNames = {"订单号", "客户ID", "总金额"}; Object[][] data = {{"订单1",1,100.99}, {"订单2",2,50.99}}; orderTable = new JTable(data, columnNames); JScrollPane scrollPane = new JScrollPane(orderTable); // 添加、编辑、删除按钮 JPanel buttonPanel = new JPanel(); JButton addButton = new JButton("添加"); JButton editButton = new JButton("编辑"); JButton deleteButton = new JButton("删除"); buttonPanel.add(addButton); buttonPanel.add(editButton); buttonPanel.add(deleteButton); // 添加、编辑、删除事件处理 addButton.addActionListener(e -> { // 添加新订单 }); editButton.addActionListener(e -> { // 编辑选中订单 }); deleteButton.addActionListener(e -> { // 删除选中订单 }); add(scrollPane, BorderLayout.CENTER); add(buttonPanel, BorderLayout.SOUTH); setSize(400,300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
### MySQL数据库设计
sqlCREATE DATABASE medicinesale; USE medicinesale; CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, role ENUM('admin', 'user') NOT NULL DEFAULT 'user' ); CREATE TABLE products ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, price DECIMAL(10,2) NOT NULL, stock INT NOT NULL); CREATE TABLE orders ( id INT PRIMARY KEY AUTO_INCREMENT, customer_id INT NOT NULL, total_amount DECIMAL(10,2) NOT NULL, FOREIGN KEY (customer_id) REFERENCES customers(id) ); CREATE TABLE orderdetails ( id INT PRIMARY KEY AUTO_INCREMENT, order_id INT NOT NULL, product_id INT NOT NULL, quantity INT NOT NULL, FOREIGN KEY (order_id) REFERENCES orders(id), FOREIGN KEY (product_id) REFERENCES products(id) ); CREATE TABLE customers ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255) NOT NULL, contact VARCHAR(255) NOT NULL);
### Java代码
javaimport javax.swing.*; import java.awt.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class Main { public static void main(String[] args) { // 加载MySQL驱动 try { Class.forName("com.mysql.cj.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println("MySQL驱动加载失败!"); return; } // 连接数据库 Connection conn = null; try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/medicinesale", "root", ""); } catch (Exception e) { System.out.println("连接数据库失败!"); return; } // 创建登录界面 LoginFrame loginFrame = new LoginFrame(); loginFrame.setVisible(true); // 验证用户名和密码,跳转到主界面 String username = loginFrame.getUsernameField().getText(); String password = new String(loginFrame.getPasswordField().getPassword()); if (verifyUser(username, password)) { // 跳转到主界面 MainFrame mainFrame = new MainFrame(); mainFrame.setVisible(true); } else { System.out.println("用户名或密码错误!"); } } private static boolean verifyUser(String username, String password) { // 验证用户名和密码 try (PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM users WHERE username = ? AND password = ?")) { pstmt.setString(1, username); pstmt.setString(2, password); ResultSet rs = pstmt.executeQuery(); return rs.next(); } catch (Exception e) { System.out.println("验证用户失败!"); return false; } } }
### 总结本系统基于Java Swing和MySQL开发,旨在为医药销售提供一个全面的管理平台。系统包括用户登录、产品管理、订单管理、客户管理等功能。通过上述代码示例,可以实现基本的功能,如添加、编辑、删除产品和订单,以及验证用户名和密码。