ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

基于java基础的控制台项目——便利达超市线上购物平台

2026/8/24 21:44:45 拓冰建站 浏览量
基于java基础的控制台项目——便利达超市线上购物平台

文章目录

  • 前言
  • 一、需求分析
  • 二、系统介绍
    • 1.功能模块
    • 2.系统接口设计
    • 3.数据库设计
    • 4.运行展示
  • 三、部分源码展示
  • 四、运行
  • 五、源码
  • 总结


前言

  • 本项目使用基于java基础(类和接口)实现的控制台运行的项目。
  • 使用的工具是IDEA
    • 如果你使用的是eclipse开发工具,只需要按照我的结构创建相同的包名和类名,将代码移过去就可。
  • 项目名称:便利达超市线上购物平台
  • 环境:java
  • jdk:无论是1.8还是目前的各个新版本都可。
  • 包含内容:所有源码、ppt、计划书(文末附有链接)。

一、需求分析

超市线上购物系统作为计算机应用的一个分支,有着线下超市无法比拟的优点,如便捷、查找方便、分类清晰、减少物力消耗、足不出户便可随心买等。这些优点能够极大地提高物品购买的效率和节约时间。无论是疫情的限制还是时代的发展,线上购物都是必要而又惠民的产物。因此开发一套能够为用户提供物品丰富、省时惠民、操作简单的超市线上购物系统是非常必要的,也是十分及时的。

二、系统介绍

1.功能模块

  • 超市线上购物系统分为初始菜单界面,顾客操作界面与超市管理员管理界面。
  • 初始菜单界面分为三大模块:注册、登录、退出。其中注册是指注册成超市用户。

如图:
在这里插入图片描述

顾客的操作界面分为五大模块:修改密码、信息变更、商品列表、商品评价、确认收货。

  • 修改密码是指顾客修改登录密码。
  • 信息变更是指新用户添加或修改姓名、性别、地址、电话号码、注册vip并且成为顾客账户。
  • 商品列表是指所有商品详情描述。
  • 商品评价是顾客对买到的物品进行的反馈。
  • 确认收货是顾客在购买完且收到物品的确认。

如图:
在这里插入图片描述

超市管理功能模块分为九个部分:修改密码、信息完善或修改、商品上架、上架商品信息修改、退换货管理、发货管理、商品评价查询、商品销量排名。信

  • 息完善和修改是完善管理员信息。
  • 商品上架是用于超市商品的上架和补货。
  • 上架商品信息修改是管理员对已上架的商品信息进行及时更新和修改。
  • 发货管理是管理员对顾客购买货物进行配货快递。
  • 商品评价和商品销量是便于管理员对商品的销量和补货的把控。

如图:
在这里插入图片描述

2.系统接口设计

  1. 顾客dao层接口:customerdao。
  2. 商品dao层接口:gooddao。
  3. 商品类型dao层接口:goodtypedao。
  4. 订单dao层接口:orderdao。
  5. 订单明细dao层接口:orderitemdao。
  6. 管理员dao层接口:shopmangedao。
  7. 用户dao层接口:userdao。
  8. 顾客操作service层接口:customerservice。
  9. 管理员后台service层接口:shopmangerservice。
  10. 用户操作service层接口:userservice。

3.数据库设计

展示部分数据库:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.运行展示

选择注册或登录的菜单界面

在这里插入图片描述

用户进行注册操作

在这里插入图片描述

用户登录页面

在这里插入图片描述

顾客操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

商品评价

在这里插入图片描述

确认收货

在这里插入图片描述

超市管理员操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、部分源码展示

结构:
在这里插入图片描述
启动类(start):

public class start extends printandinputUtil {private static userservice userService = servicefactory.getUserService();public static void main(String[] args) {welcome();}private static void welcome(){pl("****************************************************");pl("********************欢迎使用*************************");pl("**************便利达超市线上购物平台*********************");pl("请选择菜单:");pl("1.注册");pl("2.登录");pl("3.退出");int menuChoose = scInt();switch (menuChoose){case 1:userService.registerUser();break;//注册用户case 2:userService.loginSystem();break;//登录系统default:return;}//递归调用,使得程序不会结束welcome();}
}

连接数据库工具类:

public class JDBCUtil {private static String DRIVER_CLASS = "com.mysql.cj.jdbc.Driver";private static String USER_NAME = "root";//改成自己的数据库据用户名private static String PASS_WORD = "8888";//改成自己的数据库密码private static String URL = "jdbc:mysql://localhost:3306/supermarket?serverTimezone=GMT%2b8";//supermarket是数据库的名称//静态语句块,表示在该类加载时(使用时)调用,只会调用一次static {//java提供了一个类Properties,专门用来读取properties文件Properties pro = new Properties();//创建标准输入流InputStream in = null;try {in =  JDBCUtil.class.getClassLoader().getResourceAsStream("jdb.properties");//加载文件流到Properties对象中pro.load(in);//读取配置文件中的信息DRIVER_CLASS = pro.getProperty("jdbc.driver")!=null?pro.getProperty("jdbc.driver"):DRIVER_CLASS;USER_NAME = pro.getProperty("jdbc.username")!=null?pro.getProperty("jdbc.username"):USER_NAME;PASS_WORD = pro.getProperty("jdbc.password")!=null?pro.getProperty("jdbc.password"):PASS_WORD;URL = pro.getProperty("jdbc.url")!=null?pro.getProperty("jdbc.url"):URL;} catch (IOException e) {e.printStackTrace();}finally {//关闭流if (in !=null){try {in.close();} catch (IOException e) {e.printStackTrace();}}}}//获取一个有效连接public static Connection getCon(){Connection con = null;try {//加载驱动Class.forName(DRIVER_CLASS);//通过url,username,password获取连接con = DriverManager.getConnection(URL,USER_NAME,PASS_WORD);} catch (SQLException | ClassNotFoundException throwables) {throwables.printStackTrace();}return con;}//释放所有资源public static void closeAll(ResultSet rs, PreparedStatement pst ,Connection con){try {if(rs!=null){rs.close();}if(pst!=null){pst.close();}if(con!=null){con.close();}}catch (Exception e){e.printStackTrace();}}}

用户操作类:

public class customerdaoimpl extends printandinputUtil implements customerdao {private Connection con = null;private PreparedStatement pst = null;private ResultSet rs = null;@Overridepublic int checkcustomerMessage(user user) {int flag = 0;con = getCon();String sql = "select count(0) from customer where userid = ?";try {pst = con.prepareStatement(sql);pst.setInt(1,user.getId());rs = pst.executeQuery();if(rs.next()){flag = rs.getInt(1);}}catch (SQLException e){e.printStackTrace();}finally {closeAll(rs,pst,con);}return flag;}public int EntercustomerMessage(customer customer1) {int flag = 0;con = getCon();String sql = "insert into customer (cname,csex,tel,caddress,userid,vip)values (?,?,?,?,?,?)";try {pst = con.prepareStatement(sql);pst.setString(1,customer1.getCname());pst.setString(2,customer1.getCsex());pst.setString(3,customer1.getTel());pst.setString(4,customer1.getCaddress());pst.setInt(5,customer1.getUserid());pst.setString(6,customer1.getVip());flag = pst.executeUpdate();}catch (SQLException e){e.printStackTrace();}finally {closeAll(rs,pst,con);}return flag;}public customer selectByUserId(Integer userId) {customer customer = null;con = getCon();String sql ="select * from customer where userid = ?";try {pst = con.prepareStatement(sql);pst.setInt(1,userId);rs = pst.executeQuery();while(rs.next()){customer = new customer(rs.getInt("id"),rs.getString("cname"),rs.getString("csex"),rs.getString("tel"),rs.getString("caddress"),rs.getInt("userid"),rs.getString("vip"));}}catch (SQLException e){e.printStackTrace();}finally {closeAll(rs,pst,con);}return customer;}
}

超市管理员的部分操作类:

public class shopmangerdaoimpl extends printandinputUtil implements shopmangerdao {private Connection con = null;private PreparedStatement pst = null;private ResultSet rs = null;@Overridepublic int checkshopmangerMessage(int userId) {int flag = 0;con = getCon();String sql = "select count(0) from shopmanger where userid = ?";try {pst = con.prepareStatement(sql);pst.setInt(1,userId);rs = pst.executeQuery();if(rs.next()){flag = rs.getInt(1);}}catch (SQLException e){e.printStackTrace();}finally {closeAll(rs,pst,con);}return flag;}@Overridepublic int EntershopmangerMessage(shopmanger seller) {int flag = 0;con = getCon();String sql = "insert into shopmanger (sname,tel,userid) values (?,?,?)";try {pst = con.prepareStatement(sql);pst.setString(1,seller.getSname());pst.setString(2,seller.getTel());pst.setInt(3,seller.getUserid());flag = pst.executeUpdate();}catch (SQLException e){e.printStackTrace();}finally {closeAll(rs,pst,con);}return flag;}@Overridepublic shopmanger selectByUserId(Integer userId) {shopmanger seller = null;con = getCon();String sql ="select * from shopmanger where userid = ?";try {pst = con.prepareStatement(sql);pst.setInt(1,userId);rs = pst.executeQuery();while(rs.next()){seller = new shopmanger(rs.getInt("id"),rs.getString("sname"),rs.getString("tel"),rs.getInt("userid"));}}catch (SQLException e){e.printStackTrace();}finally {closeAll(rs,pst,con);}return seller;}
}

四、运行

运行非常简单:

  • 首先我建议大家使用idea工具,如果不会用或实在不想用,只需要照着我的项目结构在eclipse上创建,然后一个一个将类复制过去,最好是按照的我的结构创建包名、类名然后类就直接复制代码,想必复制粘贴也不是什么难事啊。
    在这里插入图片描述
  • 其次注意utils包下的JDBCUtil类中的和jdbc.properties中的数据库用户名、密码改成你的。数据库名字创建的时候跟我的数据库名称一致(supermarket)。
    在这里插入图片描述
  • 建议使用我提供的数据库驱动,包里有。
    在这里插入图片描述
  • 运行start类

五、源码

源码、数据库、ppt、计划书:
关注公众号:浩泽学编程,发送001获取
如果链接失效请私信我或者评论,我会及时联系你。


总结

以上就是该项目的运行等讲解。