反转基因福娃 发表于 2024-6-15 01:33:23

Java+Swing+Mysql实现超市管理体系

一、体系先容

1.开发环境

操作体系:Win10
开发工具 :IDEA2018
JDK版本:jdk1.8
数据库:Mysql8.0
2.技能选型

Java+Swing+Mysql
3.功能模块

            https://img-blog.csdnimg.cn/img_convert/f2259dd84274e47a36f201a5ed7b66bd.jpeg         4.体系功能

1.体系登录登出

管理员可以登录、退出体系
2.商品信息管理

管理员可以对商品信息进行查询、添加、修改、删除等操作。
3.出库信息管理

管理员可以对出库信息进行查询、添加、修改、删除等操作。
4.入库信息管理

管理员可以对入库信息进行查询、添加、修改、删除等操作。
5.客户信息管理

管理员可以对客户信息进行查询、添加、修改、删除等操作。
6.供应商信息管理

管理员可以对供应商信息进行查询、添加、修改、删除等操作。
5.工程结构

            https://img-blog.csdnimg.cn/img_convert/cd829a2f8e7854a79f73d83df5359bd7.jpeg         二、体系展示

1.登录页面

            https://img-blog.csdnimg.cn/img_convert/d63a374f20dfc8c9f25b00ceb55a21a0.jpeg         
2.主页面

            https://img-blog.csdnimg.cn/img_convert/d12d95288a2fce386370246d7102c0d3.jpeg         
3.商品展示

            https://img-blog.csdnimg.cn/img_convert/6391bd10bafb95fa731b46ad8c1706ac.jpeg         
4.商品新增

            https://img-blog.csdnimg.cn/img_convert/ff4c444ad3a838a3f22d0b69548846af.jpeg         
5.出库展示

            https://img-blog.csdnimg.cn/img_convert/d78faaf805fce0a50642dd7e19c69d38.jpeg         
6.出库新增

            https://img-blog.csdnimg.cn/img_convert/d503f03ba70516c27c367dc0b28229b6.jpeg         
7.入库展示

            https://img-blog.csdnimg.cn/img_convert/8a2cf460626cfe1f89329802196a0cc6.jpeg         
8.入库新增

            https://img-blog.csdnimg.cn/img_convert/3925acdefde267f4926bf93eaf6f8d47.jpeg         
9.客户展示

            https://img-blog.csdnimg.cn/img_convert/31e95e439002096ca1c94a00bb991c86.jpeg         
10.客户新增

            https://img-blog.csdnimg.cn/img_convert/c72dd843cc3e0cf7918de36e79f3acbd.jpeg         
11.供应商展示

            https://img-blog.csdnimg.cn/img_convert/81d191cbed87180644664122beba17cf.jpeg         
12.供应商新增

            https://img-blog.csdnimg.cn/img_convert/f8b05a844b4ed50c711d0c17b5d2c633.jpeg         
13.关于我们

            https://img-blog.csdnimg.cn/img_convert/74d9d32cacec1427b23bea74c8abece6.jpeg         
三、部门代码

AdminDao


package com.sjsq.dao;

import java.util.ArrayList;
import java.util.List;

import com.sjsq.model.Admin;
import com.sjsq.utils.DBUtil;

/**
* 管理员登录
*/
public class AdminDao {

    /**
   * 登录
   *
   * @param username
   * @param password
   * @return
   * @throws Exception
   */
    public boolean login(String username, String password) throws Exception {
      List<Object> paramList = new ArrayList<>();
      paramList.add(username);
      paramList.add(password);
      Admin admin = DBUtil.getObject("select * from t_admin where username=? and password=?", paramList, Admin.class);
      if (admin != null) {
            return true;
      }
      return false;
    }

}CustomerDao


package com.sjsq.dao;

import java.util.ArrayList;
import java.util.List;

import com.sjsq.model.Customer;
import com.sjsq.utils.DBUtil;
import com.sjsq.utils.StringUtil;

/**
* 客户信息操作
*/
public class CustomerDao {

    /**
   * 查询所有客户
   *
   * @return
   * @throws Exception
   */
    public List<Customer> getAll() throws Exception {
      return DBUtil.getQueryList("select * from t_customer order by id asc", Customer.class);
    }

    /**
   * 条件查询
   *
   * @param name
   * @return
   * @throws Exception
   */
    public List<Customer> search(String name) throws Exception {
      List<Object> paramList = new ArrayList<>();
      StringBuffer sb = new StringBuffer("select * from t_customer where 1=1");
      if (!StringUtil.isEmpty(name)) {
            sb.append(" and name like ?");
            paramList.add("%" + name + "%");
      }
      sb.append(" order by id asc");
      return DBUtil.getQueryList(sb.toString(), paramList, Customer.class);
    }

    /**
   * 保存客户信息
   *
   * @param customer
   * @return
   * @throws Exception
   */
    public int save(Customer customer) throws Exception {
      List<Object> paramList = new ArrayList<>();
      paramList.add(customer.getName());
      paramList.add(customer.getPhone());
      paramList.add(customer.getAddress());
      return DBUtil.execute("insert into t_customer(name,phone,address) values(?,?,?)", paramList);
    }

    /**
   * 更新客户信息
   *
   * @param customer
   * @return
   * @throws Exception
   */
    public int update(Customer customer) throws Exception {
      List<Object> paramList = new ArrayList<>();
      paramList.add(customer.getName());
      paramList.add(customer.getPhone());
      paramList.add(customer.getAddress());
      paramList.add(customer.getId());
      return DBUtil.execute("update t_customer set name=?,phone=?,address=? where id=?", paramList);
    }

    /**
   * 根据id查询客户信息
   *
   * @param id
   * @return
   * @throws Exception
   */
    public Customer getById(int id) throws Exception {
      List<Object> paramList = new ArrayList<>();
      paramList.add(id);
      return DBUtil.getObject("select * from t_customer where id=?", paramList, Customer.class);
    }

    /**
   * 删除
   *
   * @param id
   * @return
   * @throws Exception
   */
    public int delete(int id) throws Exception {
      List<Object> paramList = new ArrayList<>();
      paramList.add(id);
      return DBUtil.execute("delete from t_customer where id=?", paramList);
    }

}StringUtil


package com.sjsq.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
* 字符串转化类
*/
public class StringUtil {

    //数据库字段驼峰命名转换
    private static Pattern linePattern = Pattern.compile("_(\\w)");
    private static Pattern humpPattern = Pattern.compile("");

    // 判断字符串为空
    public static boolean isEmpty(String str) {
      if ("".equals(str) || str == null) {
            return true;
      } else {
            return false;
      }
    }

    // 判断字符串不为空
    public static boolean isNotEmpty(String str) {
      if (!"".equals(str) && str != null) {
            return true;
      } else {
            return false;
      }
    }

    /**
   * 下划线转驼峰
   */
    public static String lineToHump(String str) {
      str = str.toLowerCase();
      Matcher matcher = linePattern.matcher(str);
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {
            matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
      }
      matcher.appendTail(sb);
      return sb.toString();
    }

    /**
   * 驼峰转下划线(单写法,效率低于{@link #humpToLine2(String)})
   */
    public static String humpToLine(String str) {
      return str.replaceAll("", "_$0").toLowerCase();
    }


    /**
   * 驼峰转下划线,效率比上面高
   */
    public static String humpToLine2(String str) {
      Matcher matcher = humpPattern.matcher(str);
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {
            matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
      }
      matcher.appendTail(sb);
      return sb.toString();
    }

}LoginFrame


package com.sjsq.view;

import com.sjsq.dao.AdminDao;
import com.sjsq.utils.StringUtil;

import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
* 登录系统
*/
public class LoginFrame extends JFrame {

    private JPanel contentPane;
    private JTextField unameText;
    private JPasswordField pwdText;

    private AdminDao userDao = new AdminDao();

    /**
   * 主函数
   */
    public static void main(String[] args) {
      EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                  LoginFrame frame = new LoginFrame();
                  frame.setVisible(true);
                } catch (Exception e) {
                  e.printStackTrace();
                }
            }
      });
    }

    /**
   * 创建窗体
   */
    public LoginFrame() {
      setTitle("超市商品信息管理系统");
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setBounds(100, 100, 450, 300);
      setLocationRelativeTo(null);
      contentPane = new JPanel();
      contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
      setContentPane(contentPane);
      contentPane.setLayout(null);

      JLabel lblNewLabel = new JLabel("系统登录");
      lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 25));
      lblNewLabel.setBounds(177, 32, 108, 25);
      contentPane.add(lblNewLabel);

      JLabel lblNewLabel_1 = new JLabel("账号:");
      lblNewLabel_1.setBounds(98, 89, 54, 15);
      contentPane.add(lblNewLabel_1);

      JLabel lblNewLabel_2 = new JLabel("密码:");
      lblNewLabel_2.setBounds(98, 152, 54, 15);
      contentPane.add(lblNewLabel_2);

      unameText = new JTextField();
      unameText.setBounds(148, 86, 166, 21);
      contentPane.add(unameText);
      unameText.setColumns(10);

      pwdText = new JPasswordField();
      pwdText.setBounds(148, 149, 166, 21);
      contentPane.add(pwdText);

      JButton btnNewButton = new JButton("登录");
      btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                String username = unameText.getText();
                String password = pwdText.getText();
                if (StringUtil.isEmpty(username)) {
                  JOptionPane.showMessageDialog(contentPane, "请输入账号", "系统提示", JOptionPane.WARNING_MESSAGE);
                  return;
                }
                if (StringUtil.isEmpty(password)) {
                  JOptionPane.showMessageDialog(contentPane, "请输入密码", "系统提示", JOptionPane.WARNING_MESSAGE);
                  return;
                }
                try {
                  // 登录账号验证
                  boolean flag = userDao.login(username, password);
                  if (flag) {
                        //跳转主界面
                        JOptionPane.showMessageDialog(contentPane, "登录成功!");
                        MainFrame main = new MainFrame();
                        main.setVisible(true);
                        // 释放所有本机屏幕资源
                        dispose();
                  } else {
                        JOptionPane.showMessageDialog(contentPane, "用户名密码错误!", "系统提示", JOptionPane.WARNING_MESSAGE);
                        return;
                  }
                } catch (Exception e1) {
                  e1.printStackTrace();
                  JOptionPane.showMessageDialog(contentPane, "登录异常:" + e1.getMessage(), "系统提示", JOptionPane.WARNING_MESSAGE);
                  return;
                }

            }
      });
      btnNewButton.setBounds(146, 202, 76, 23);
      contentPane.add(btnNewButton);

      JButton btnNewButton_1 = new JButton("退出");
      btnNewButton_1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dispose();
            }
      });
      btnNewButton_1.setBounds(237, 202, 76, 23);
      contentPane.add(btnNewButton_1);
    }

}CustomerAddFrame


package com.sjsq.view;

import com.sjsq.dao.CustomerDao;
import com.sjsq.model.Customer;
import com.sjsq.utils.StringUtil;

import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
* 新增客户信息类
*/
public class CustomerAddFrame extends JFrame {

    // 定义内容面板
    private JPanel contentPane;
    // 定义姓名文本
    private JTextField nameText;
    private JTextField phoneText;
    private JTextField addressText;

    private CustomerDao customerDao = new CustomerDao();


    /**
   * Create the frame.
   */
    public CustomerAddFrame() {
      setTitle("新增客户信息");
      setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
      setBounds(100, 100, 353, 351);
      setLocationRelativeTo(null);
      contentPane = new JPanel();
      contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
      setContentPane(contentPane);
      contentPane.setLayout(null);

      JLabel lblNewLabel = new JLabel("客户名称:");
      lblNewLabel.setBounds(29, 34, 92, 15);
      contentPane.add(lblNewLabel);

      // 创建空白文本
      nameText = new JTextField();
      // 设置位置大小
      nameText.setBounds(113, 31, 182, 21);
      // 添加到面板
      contentPane.add(nameText);
      // 设置内容宽度
      nameText.setColumns(15);

      JLabel lblNewLabel_1 = new JLabel("联系电话:");
      lblNewLabel_1.setBounds(29, 84, 92, 15);
      contentPane.add(lblNewLabel_1);

      phoneText = new JTextField();
      phoneText.setBounds(113, 81, 182, 21);
      contentPane.add(phoneText);
      phoneText.setColumns(10);

      JLabel lblNewLabel_5 = new JLabel("客户地址:");
      lblNewLabel_5.setBounds(29, 148, 91, 15);
      contentPane.add(lblNewLabel_5);

      addressText = new JTextField();
      addressText.setBounds(113, 145, 182, 21);
      contentPane.add(addressText);
      addressText.setColumns(10);


      JButton btnNewButton = new JButton("保存");
      btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // 获取输入的信息
                String name = nameText.getText();
                String phone = phoneText.getText();
                String address = addressText.getText();
                // 判断输入为空,弹出相应提示
                if (StringUtil.isEmpty(name)) {
                  JOptionPane.showMessageDialog(contentPane, "请输入客户名称", "系统提示", JOptionPane.WARNING_MESSAGE);
                  return;
                }

                if (StringUtil.isEmpty(phone)) {
                  JOptionPane.showMessageDialog(contentPane, "请输入联系电话", "系统提示", JOptionPane.WARNING_MESSAGE);
                  return;
                }

                if (StringUtil.isEmpty(address)) {
                  JOptionPane.showMessageDialog(contentPane, "请输入客户地址", "系统提示", JOptionPane.WARNING_MESSAGE);
                  return;
                }

                // 创建对象
                Customer customer = new Customer();
                // 保存信息到对象中
                customer.setName(name);
                customer.setPhone(phone);
                customer.setAddress(address);
                try {
                  // 新增信息
                  customerDao.save(customer);
                } catch (Exception e1) {
                  // TODO Auto-generated catch block
                  e1.printStackTrace();
                  JOptionPane.showMessageDialog(contentPane, "保存异常:" + e1.getMessage(), "系统提示", JOptionPane.WARNING_MESSAGE);
                  return;
                }
                JOptionPane.showMessageDialog(contentPane, "保存成功!");
                dispose();
            }
      });
      btnNewButton.setBounds(113, 215, 74, 23);
      contentPane.add(btnNewButton);

      JButton btnNewButton_1 = new JButton("取消");
      btnNewButton_1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dispose();
            }
      });
      btnNewButton_1.setBounds(220, 215, 74, 23);
      contentPane.add(btnNewButton_1);
    }

}四、其他

1.更多体系

Java+Swing体系系列实现

Java+Swing实现斗地主游戏
Java+Swing实现图书管理体系
Java+Swing实现医院管理体系
Java+Swing实现考试管理体系
Java+Swing实现酒店管理体系
Java+Swing实现超市管理体系
Java+Swing实现电影购票体系
Java+Swing实现堆栈管理体系-1
Java+Swing实现堆栈管理体系-2
Java+Swing实现进销存管理体系
Java+Swing实现自助取款机体系
Java+Swing实现通讯录管理体系
Java+Swing实现停车场管理体系
Java+Swing实现门生信息管理体系-1
Java+Swing实现门生信息管理体系-2
Java+Swing实现门生宿舍管理体系
Java+Swing实现门生选课管理体系
Java+Swing实现学天生绩管理体系
Java+Swing实现学校课本管理体系
Java+Swing实现学校教务管理体系
Java+Swing实现企业人事管理体系
Java+Swing实现电子相册管理体系
Java+Swing实现超市管理体系-TXT存储数据
Java+Swing实现自助取款机体系-TXT存储数据
Java+Swing实现宠物市肆管理体系-TXT存储数据
Java+JSP体系系列实现

Java+JSP实现门生图书管理体系
Java+JSP实现门生信息管理体系
Java+JSP实现用户信息管理体系
Java+JSP实现教师信息管理体系
Java+JSP实现门生宿舍管理体系
Java+JSP实现商品信息管理体系
Java+JSP实现宠物信息管理体系
Java+JSP实现学天生绩管理体系
Java+Servlet体系系列实现

Java+Servlet+JSP实现航空订票体系
Java+Servlet+JSP实现消息发布体系
Java+Servlet+JSP门生宿舍管理体系
Java+Servlet+JSP实现图书管理体系
Java+Servlet+JSP实现停车场管理体系
Java+Servlet+JSP实现房屋租赁管理体系
Java+Servlet+JSP实现门生信息管理体系
Java+Servlet+JSP实现门生选课管理体系
Java+Servlet+JSPl实现门生选课签到体系
Java+Servlet+JSP实现宠物诊所管理体系
Java+Servlet+JSP实现学天生绩管理体系-1
Java+Servlet+JSP实现学天生绩管理体系-2
Java+SSM体系系列实现

Java+SSM+JSP实现网上考试体系
Java+SSM+JSP实现宠物商城体系
Java+SSM+JSP实现超市管理体系
Java+SSM+JSP实现学天生绩管理体系
Java+SSM+JSP实现门生信息管理体系
Java+SSM+JSP实现药品信息管理体系
Java+SSM+JSP实现汽车信息管理体系
Java+SSM+Jspl实现商品信息管理体系
Java+SSM+JSP+Maven实现网上书城体系
Java+SSM+JSP+Maven实现学校教务管理体系
Java+SSH体系系列实现

Java+SSH+JSP实如今线考试体系
Java+SSH+JSP实现医院在线挂号体系
Java+Springboot体系系列实现

Java+Springboot+H-ui+Maven实现营销管理体系
Java+Springboot+Bootstrap+Maven实现网上商城体系
Java+Springboot+Bootstrap+Maven实现景区旅游管理体系
1.更多JavaWeb体系请关注专栏。
https://blog.csdn.net/helongqiang/category_10020130.html
2.更多JavaSwing体系请关注专栏。
https://blog.csdn.net/helongqiang/category_6229101.html
2.源码下载

sql在sql文件夹下面
体系账号信息如下,此处是管理员权限
账号:admin 暗码:admin
下载地址:Java+Swing+Mysql实现超市管理体系

3.运行项目

关注B站:水坚石青
后期有更多干货视频推出!!!
Eclipse如何导入JavaSwing项目超详细教程
4.备注

如有侵权请联系我删除。
5.支持博主

如果您以为此文对您有帮助,请点赞加关注加收藏。祝您生活愉快!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Java+Swing+Mysql实现超市管理体系