当前位置: 首页 > article >正文

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

一、系统介绍

1.开发环境

操作系统:Win10

开发工具 :IDEA2018

JDK版本:jdk1.8

数据库:Mysql8.0

2.技术选型

Java+Swing+Mysql

3.功能模块

4.系统功能

1.系统登录登出

管理员可以登录、退出系统

2.商品信息管理

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

3.出库信息管理

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

4.入库信息管理

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

5.客户信息管理

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

6.供应商信息管理

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

5.工程结构

二、系统展示

1.登录页面

2.主页面

3.商品展示

4.商品新增

5.出库展示

6.出库新增

7.入库展示

8.入库新增

9.客户展示

10.客户新增

11.供应商展示

12.供应商新增

13.关于我们

三、部分代码

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("[A-Z]");

    // 判断字符串为空
    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("[A-Z]", "_$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.支持博主

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


http://www.kler.cn/a/158892.html

相关文章:

  • Qt 之 qwt和QCustomplot对比
  • 【windows】05-windows系统级深度隐藏文件方法
  • Typescript中的keyof类型操作符详解
  • AI 提示词(Prompt)入门 十:最佳实践|详细询问,提供细节!
  • 微服务即时通讯系统的实现(客户端)----(3)
  • 每日一博 - Java的Shallow Copy和Deep Copy
  • CSS中常用的5种颜色单位
  • HTTP会话技术---Cookie、Session和Token介绍及它们在JavaWeb中的使用
  • 手机充电 显示连接耳机 (充电没外放声音) 并且充电速度很慢
  • 【python】包(package)与模块(module)、import、__name__与__main__
  • DCGAN生成网络模型
  • MX6ULL学习笔记 (七) 中断实验
  • AIGC: 关于ChatGPT中对输出文本进行审核
  • Arrays类练习 - Java
  • flask web学习之flask与http(一)
  • 【数据结构与算法篇】八种排序 (C++实现)
  • 查看Linux服务器的CPU利用率常用的命令
  • 【每日一题】找出叠涂元素
  • 量化学习笔记——入门与基本概念
  • C/C++---------------LeetCode第350. 两个数组的交集 II
  • Spring Cloud Gateway常见问题
  • 1970-2022年中国省级国家级开发区数据集
  • 高低温交变湿热实验箱
  • css设置渐变色
  • CMake中的add_definitions 函数
  • 「C++」哈希表的实现(unordered系底层)