# 超市管理与购物系统 **Repository Path**: zhuyupin/taobao ## Basic Information - **Project Name**: 超市管理与购物系统 - **Description**: 用java+mysql写的超市管理与购物系统 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 4 - **Created**: 2023-08-18 - **Last Updated**: 2024-12-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 一、项目介绍 基于Java swing+Mysql实现的超市管理与购物系统,使用了beautyEye_inf.jar美化界面,使用idea编写逻辑代码 ## 1.开发环境 jdk8+mysql8+idea ## 2.功能 1.注册、登录功能。 2.管理员有商品类别管理、商品管理、用户管理、出售记录查询等功能。 3.普通用户有查看购物车、购物卡充值、修改密码、购买商品等功能。 ## 3.项目运行截图 该项目前端界面和后端数据校验博主经过了一系列测试,基本是个比较完善的java课设了,如有不足,希望大家多多建议。 ![输入图片说明](src/image/docimage/1.png) ![输入图片说明](src/image/docimage/2.png) ![输入图片说明](src/image/docimage/3.png) ![输入图片说明](src/image/docimage/4.png) # 二、使用步骤 ## 1.用idea导入项目 通过idea的open打开项目即可 ## 2.配置项目jdk版本 ctrl+alt+shift+s 设置项目的jdk版本,两个我这里都选8,必须选择8,版本太高容易报错,如果你的java不是8,建议下java8 ![输入图片说明](src/image/docimage/6.png) ## 3.配置数据库 1)创建shoping数据库,导入运行shoping.sql文件 2)更改db.properties文件,基本只用更改密码,填写自己的数据库密码 ![输入图片说明](src/image/docimage/8.png) ## 4.运行项目 运行main文件下的Main,输入用户名、密码(都为admin)进入管理员界面,进入普通用户界面需要注册,然后登录 # 三、项目优点 ## 1.单例模式 项目的每个子窗口都设置了单例模式,为了防止多次点击,创建过多窗口。这里用到了饿汉模式 ```java //单例模式--饿汉模式,只要类被加载,实例就会立刻创建,这样子窗口加载会快一些 //把构造方法变成私有, private static GoodsTypeAdd goodsTypeAdd = new GoodsTypeAdd(); //获取实例的唯一方式 public static GoodsTypeAdd getGoodsTypeAdd(){ return goodsTypeAdd; } ``` ## 2.封装了数据库连接类 ```java package utiles; import java.sql.*; import java.util.ResourceBundle; /** * */ public class JDBCUtils { private static String driver; private static String url; private static String username; private static String password; private static ResourceBundle bundle; //读取db.properties数据库配置文件 static{ bundle = ResourceBundle.getBundle("db"); driver = bundle.getString("jdbc.driverClass"); url = bundle.getString("jdbc.jdbcUrl"); username = bundle.getString("jdbc.username"); password = bundle.getString("jdbc.password"); } /** * * * @return */ public static Connection getConnection() { Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(url, username, password); } catch (Exception e) { e.printStackTrace(); } return conn; } public static void release(Connection conn) { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void release(Connection conn, PreparedStatement pstmt) { if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } ``` ## 3.用户信息读取保存 从数据库读取数据写入本地的文件,一定程度上减少了数据库连接次数 ```java package utiles; import java.io.*; import java.util.ArrayList; public class LoginConfig { /** * 将用户的个人信息写入文件 * @param name * @param id * @param password */ public static void writeUser(String name,String id,String password,String money) { BufferedWriter bos = null; try { bos = new BufferedWriter(new FileWriter("password.txt")); bos.write(name); bos.newLine(); bos.write(password); bos.newLine(); bos.write(id); bos.newLine(); bos.write(money); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { if(bos!=null) { bos.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * 返回文件中用户的个人信息集合 * @return */ public static ArrayList getUserList(){ ArrayList list = new ArrayList(); BufferedReader bis; try { bis = new BufferedReader(new FileReader("password.txt")); String s = null; while((s=bis.readLine())!=null) { list.add(s); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } public static void reset() { BufferedWriter bos = null; try { bos = new BufferedWriter(new FileWriter("password.txt")); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { try { if(bos!=null) { bos.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } ``` # 四、个人总结 > 以上就是我的java课设分享,如果这篇文章有帮助到你,希望可以给作者来个star👍,创作不易,如果有对后端技术、前端领域感兴趣的读者,可以关注下,互相交流学习 😉😉😉