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

打印 上一主题 下一主题

主题 861|帖子 861|积分 2583

一、体系先容

  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

  1. package com.sjsq.dao;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import com.sjsq.model.Admin;
  5. import com.sjsq.utils.DBUtil;
  6. /**
  7. * 管理员登录
  8. */
  9. public class AdminDao {
  10.     /**
  11.      * 登录
  12.      *
  13.      * @param username
  14.      * @param password
  15.      * @return
  16.      * @throws Exception
  17.      */
  18.     public boolean login(String username, String password) throws Exception {
  19.         List<Object> paramList = new ArrayList<>();
  20.         paramList.add(username);
  21.         paramList.add(password);
  22.         Admin admin = DBUtil.getObject("select * from t_admin where username=? and password=?", paramList, Admin.class);
  23.         if (admin != null) {
  24.             return true;
  25.         }
  26.         return false;
  27.     }
  28. }
复制代码
CustomerDao

  1. package com.sjsq.dao;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import com.sjsq.model.Customer;
  5. import com.sjsq.utils.DBUtil;
  6. import com.sjsq.utils.StringUtil;
  7. /**
  8. * 客户信息操作
  9. */
  10. public class CustomerDao {
  11.     /**
  12.      * 查询所有客户
  13.      *
  14.      * @return
  15.      * @throws Exception
  16.      */
  17.     public List<Customer> getAll() throws Exception {
  18.         return DBUtil.getQueryList("select * from t_customer order by id asc", Customer.class);
  19.     }
  20.     /**
  21.      * 条件查询
  22.      *
  23.      * @param name
  24.      * @return
  25.      * @throws Exception
  26.      */
  27.     public List<Customer> search(String name) throws Exception {
  28.         List<Object> paramList = new ArrayList<>();
  29.         StringBuffer sb = new StringBuffer("select * from t_customer where 1=1");
  30.         if (!StringUtil.isEmpty(name)) {
  31.             sb.append(" and name like ?");
  32.             paramList.add("%" + name + "%");
  33.         }
  34.         sb.append(" order by id asc");
  35.         return DBUtil.getQueryList(sb.toString(), paramList, Customer.class);
  36.     }
  37.     /**
  38.      * 保存客户信息
  39.      *
  40.      * @param customer
  41.      * @return
  42.      * @throws Exception
  43.      */
  44.     public int save(Customer customer) throws Exception {
  45.         List<Object> paramList = new ArrayList<>();
  46.         paramList.add(customer.getName());
  47.         paramList.add(customer.getPhone());
  48.         paramList.add(customer.getAddress());
  49.         return DBUtil.execute("insert into t_customer(name,phone,address) values(?,?,?)", paramList);
  50.     }
  51.     /**
  52.      * 更新客户信息
  53.      *
  54.      * @param customer
  55.      * @return
  56.      * @throws Exception
  57.      */
  58.     public int update(Customer customer) throws Exception {
  59.         List<Object> paramList = new ArrayList<>();
  60.         paramList.add(customer.getName());
  61.         paramList.add(customer.getPhone());
  62.         paramList.add(customer.getAddress());
  63.         paramList.add(customer.getId());
  64.         return DBUtil.execute("update t_customer set name=?,phone=?,address=? where id=?", paramList);
  65.     }
  66.     /**
  67.      * 根据id查询客户信息
  68.      *
  69.      * @param id
  70.      * @return
  71.      * @throws Exception
  72.      */
  73.     public Customer getById(int id) throws Exception {
  74.         List<Object> paramList = new ArrayList<>();
  75.         paramList.add(id);
  76.         return DBUtil.getObject("select * from t_customer where id=?", paramList, Customer.class);
  77.     }
  78.     /**
  79.      * 删除
  80.      *
  81.      * @param id
  82.      * @return
  83.      * @throws Exception
  84.      */
  85.     public int delete(int id) throws Exception {
  86.         List<Object> paramList = new ArrayList<>();
  87.         paramList.add(id);
  88.         return DBUtil.execute("delete from t_customer where id=?", paramList);
  89.     }
  90. }
复制代码
StringUtil

  1. package com.sjsq.utils;
  2. import java.util.regex.Matcher;
  3. import java.util.regex.Pattern;
  4. /**
  5. * 字符串转化类
  6. */
  7. public class StringUtil {
  8.     //数据库字段驼峰命名转换
  9.     private static Pattern linePattern = Pattern.compile("_(\\w)");
  10.     private static Pattern humpPattern = Pattern.compile("[A-Z]");
  11.     // 判断字符串为空
  12.     public static boolean isEmpty(String str) {
  13.         if ("".equals(str) || str == null) {
  14.             return true;
  15.         } else {
  16.             return false;
  17.         }
  18.     }
  19.     // 判断字符串不为空
  20.     public static boolean isNotEmpty(String str) {
  21.         if (!"".equals(str) && str != null) {
  22.             return true;
  23.         } else {
  24.             return false;
  25.         }
  26.     }
  27.     /**
  28.      * 下划线转驼峰
  29.      */
  30.     public static String lineToHump(String str) {
  31.         str = str.toLowerCase();
  32.         Matcher matcher = linePattern.matcher(str);
  33.         StringBuffer sb = new StringBuffer();
  34.         while (matcher.find()) {
  35.             matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
  36.         }
  37.         matcher.appendTail(sb);
  38.         return sb.toString();
  39.     }
  40.     /**
  41.      * 驼峰转下划线(单写法,效率低于{@link #humpToLine2(String)})
  42.      */
  43.     public static String humpToLine(String str) {
  44.         return str.replaceAll("[A-Z]", "_$0").toLowerCase();
  45.     }
  46.     /**
  47.      * 驼峰转下划线,效率比上面高
  48.      */
  49.     public static String humpToLine2(String str) {
  50.         Matcher matcher = humpPattern.matcher(str);
  51.         StringBuffer sb = new StringBuffer();
  52.         while (matcher.find()) {
  53.             matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
  54.         }
  55.         matcher.appendTail(sb);
  56.         return sb.toString();
  57.     }
  58. }
复制代码
LoginFrame

  1. package com.sjsq.view;
  2. import com.sjsq.dao.AdminDao;
  3. import com.sjsq.utils.StringUtil;
  4. import javax.swing.*;
  5. import javax.swing.border.EmptyBorder;
  6. import java.awt.*;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. /**
  10. * 登录系统
  11. */
  12. public class LoginFrame extends JFrame {
  13.     private JPanel contentPane;
  14.     private JTextField unameText;
  15.     private JPasswordField pwdText;
  16.     private AdminDao userDao = new AdminDao();
  17.     /**
  18.      * 主函数
  19.      */
  20.     public static void main(String[] args) {
  21.         EventQueue.invokeLater(new Runnable() {
  22.             public void run() {
  23.                 try {
  24.                     LoginFrame frame = new LoginFrame();
  25.                     frame.setVisible(true);
  26.                 } catch (Exception e) {
  27.                     e.printStackTrace();
  28.                 }
  29.             }
  30.         });
  31.     }
  32.     /**
  33.      * 创建窗体
  34.      */
  35.     public LoginFrame() {
  36.         setTitle("超市商品信息管理系统");
  37.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  38.         setBounds(100, 100, 450, 300);
  39.         setLocationRelativeTo(null);
  40.         contentPane = new JPanel();
  41.         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  42.         setContentPane(contentPane);
  43.         contentPane.setLayout(null);
  44.         JLabel lblNewLabel = new JLabel("系统登录");
  45.         lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 25));
  46.         lblNewLabel.setBounds(177, 32, 108, 25);
  47.         contentPane.add(lblNewLabel);
  48.         JLabel lblNewLabel_1 = new JLabel("账号:");
  49.         lblNewLabel_1.setBounds(98, 89, 54, 15);
  50.         contentPane.add(lblNewLabel_1);
  51.         JLabel lblNewLabel_2 = new JLabel("密码:");
  52.         lblNewLabel_2.setBounds(98, 152, 54, 15);
  53.         contentPane.add(lblNewLabel_2);
  54.         unameText = new JTextField();
  55.         unameText.setBounds(148, 86, 166, 21);
  56.         contentPane.add(unameText);
  57.         unameText.setColumns(10);
  58.         pwdText = new JPasswordField();
  59.         pwdText.setBounds(148, 149, 166, 21);
  60.         contentPane.add(pwdText);
  61.         JButton btnNewButton = new JButton("登录");
  62.         btnNewButton.addActionListener(new ActionListener() {
  63.             public void actionPerformed(ActionEvent e) {
  64.                 String username = unameText.getText();
  65.                 String password = pwdText.getText();
  66.                 if (StringUtil.isEmpty(username)) {
  67.                     JOptionPane.showMessageDialog(contentPane, "请输入账号", "系统提示", JOptionPane.WARNING_MESSAGE);
  68.                     return;
  69.                 }
  70.                 if (StringUtil.isEmpty(password)) {
  71.                     JOptionPane.showMessageDialog(contentPane, "请输入密码", "系统提示", JOptionPane.WARNING_MESSAGE);
  72.                     return;
  73.                 }
  74.                 try {
  75.                     // 登录账号验证
  76.                     boolean flag = userDao.login(username, password);
  77.                     if (flag) {
  78.                         //跳转主界面
  79.                         JOptionPane.showMessageDialog(contentPane, "登录成功!");
  80.                         MainFrame main = new MainFrame();
  81.                         main.setVisible(true);
  82.                         // 释放所有本机屏幕资源
  83.                         dispose();
  84.                     } else {
  85.                         JOptionPane.showMessageDialog(contentPane, "用户名密码错误!", "系统提示", JOptionPane.WARNING_MESSAGE);
  86.                         return;
  87.                     }
  88.                 } catch (Exception e1) {
  89.                     e1.printStackTrace();
  90.                     JOptionPane.showMessageDialog(contentPane, "登录异常:" + e1.getMessage(), "系统提示", JOptionPane.WARNING_MESSAGE);
  91.                     return;
  92.                 }
  93.             }
  94.         });
  95.         btnNewButton.setBounds(146, 202, 76, 23);
  96.         contentPane.add(btnNewButton);
  97.         JButton btnNewButton_1 = new JButton("退出");
  98.         btnNewButton_1.addActionListener(new ActionListener() {
  99.             public void actionPerformed(ActionEvent e) {
  100.                 dispose();
  101.             }
  102.         });
  103.         btnNewButton_1.setBounds(237, 202, 76, 23);
  104.         contentPane.add(btnNewButton_1);
  105.     }
  106. }
复制代码
CustomerAddFrame

  1. package com.sjsq.view;
  2. import com.sjsq.dao.CustomerDao;
  3. import com.sjsq.model.Customer;
  4. import com.sjsq.utils.StringUtil;
  5. import javax.swing.*;
  6. import javax.swing.border.EmptyBorder;
  7. import java.awt.event.ActionEvent;
  8. import java.awt.event.ActionListener;
  9. /**
  10. * 新增客户信息类
  11. */
  12. public class CustomerAddFrame extends JFrame {
  13.     // 定义内容面板
  14.     private JPanel contentPane;
  15.     // 定义姓名文本
  16.     private JTextField nameText;
  17.     private JTextField phoneText;
  18.     private JTextField addressText;
  19.     private CustomerDao customerDao = new CustomerDao();
  20.     /**
  21.      * Create the frame.
  22.      */
  23.     public CustomerAddFrame() {
  24.         setTitle("新增客户信息");
  25.         setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  26.         setBounds(100, 100, 353, 351);
  27.         setLocationRelativeTo(null);
  28.         contentPane = new JPanel();
  29.         contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  30.         setContentPane(contentPane);
  31.         contentPane.setLayout(null);
  32.         JLabel lblNewLabel = new JLabel("客户名称:");
  33.         lblNewLabel.setBounds(29, 34, 92, 15);
  34.         contentPane.add(lblNewLabel);
  35.         // 创建空白文本
  36.         nameText = new JTextField();
  37.         // 设置位置大小
  38.         nameText.setBounds(113, 31, 182, 21);
  39.         // 添加到面板
  40.         contentPane.add(nameText);
  41.         // 设置内容宽度
  42.         nameText.setColumns(15);
  43.         JLabel lblNewLabel_1 = new JLabel("联系电话:");
  44.         lblNewLabel_1.setBounds(29, 84, 92, 15);
  45.         contentPane.add(lblNewLabel_1);
  46.         phoneText = new JTextField();
  47.         phoneText.setBounds(113, 81, 182, 21);
  48.         contentPane.add(phoneText);
  49.         phoneText.setColumns(10);
  50.         JLabel lblNewLabel_5 = new JLabel("客户地址:");
  51.         lblNewLabel_5.setBounds(29, 148, 91, 15);
  52.         contentPane.add(lblNewLabel_5);
  53.         addressText = new JTextField();
  54.         addressText.setBounds(113, 145, 182, 21);
  55.         contentPane.add(addressText);
  56.         addressText.setColumns(10);
  57.         JButton btnNewButton = new JButton("保存");
  58.         btnNewButton.addActionListener(new ActionListener() {
  59.             public void actionPerformed(ActionEvent e) {
  60.                 // 获取输入的信息
  61.                 String name = nameText.getText();
  62.                 String phone = phoneText.getText();
  63.                 String address = addressText.getText();
  64.                 // 判断输入为空,弹出相应提示
  65.                 if (StringUtil.isEmpty(name)) {
  66.                     JOptionPane.showMessageDialog(contentPane, "请输入客户名称", "系统提示", JOptionPane.WARNING_MESSAGE);
  67.                     return;
  68.                 }
  69.                 if (StringUtil.isEmpty(phone)) {
  70.                     JOptionPane.showMessageDialog(contentPane, "请输入联系电话", "系统提示", JOptionPane.WARNING_MESSAGE);
  71.                     return;
  72.                 }
  73.                 if (StringUtil.isEmpty(address)) {
  74.                     JOptionPane.showMessageDialog(contentPane, "请输入客户地址", "系统提示", JOptionPane.WARNING_MESSAGE);
  75.                     return;
  76.                 }
  77.                 // 创建对象
  78.                 Customer customer = new Customer();
  79.                 // 保存信息到对象中
  80.                 customer.setName(name);
  81.                 customer.setPhone(phone);
  82.                 customer.setAddress(address);
  83.                 try {
  84.                     // 新增信息
  85.                     customerDao.save(customer);
  86.                 } catch (Exception e1) {
  87.                     // TODO Auto-generated catch block
  88.                     e1.printStackTrace();
  89.                     JOptionPane.showMessageDialog(contentPane, "保存异常:" + e1.getMessage(), "系统提示", JOptionPane.WARNING_MESSAGE);
  90.                     return;
  91.                 }
  92.                 JOptionPane.showMessageDialog(contentPane, "保存成功!");
  93.                 dispose();
  94.             }
  95.         });
  96.         btnNewButton.setBounds(113, 215, 74, 23);
  97.         contentPane.add(btnNewButton);
  98.         JButton btnNewButton_1 = new JButton("取消");
  99.         btnNewButton_1.addActionListener(new ActionListener() {
  100.             public void actionPerformed(ActionEvent e) {
  101.                 dispose();
  102.             }
  103.         });
  104.         btnNewButton_1.setBounds(220, 215, 74, 23);
  105.         contentPane.add(btnNewButton_1);
  106.     }
  107. }
复制代码
四、其他

  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企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表