Java+Swing+Mysql实现超市管理系统
2023-12-13 20:09:56
一、系统介绍
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+JSP系统系列实现
Java+Servlet系统系列实现
Java+SSM系统系列实现
Java+SSH系统系列实现
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
3.运行项目
关注B站:水坚石青
后期有更多干货视频推出!!!
4.备注
如有侵权请联系我删除。
5.支持博主
如果您觉得此文对您有帮助,请点赞加关注加收藏。祝您生活愉快!
文章来源:https://blog.csdn.net/helongqiang/article/details/129238571
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!