精华内容
下载资源
问答
  • java编写的超市收银系统
  • 1.java 课程设计《超市收银系统》连接数据库 2. 包含课程设计报告 3.JDBC桥包 JDT驱动 4.连接了sql sever 数据库 5.包含了数据库备份文档
  • java swing mysql实现的超市收银系统项目源码,内附运行教程,数据库请使用mysql5.7,数据库请使用mysql5.7
  • 使用socket模拟客户端和服务器实现超市收银系统,客户端发送数据到服务器存储
  • import java.awt.*; import java.awt.event.*; import javax.swing.*; //窗体的默认布局是边界布局管理器 //面板的默认布局是流式布局管理器 public class _1_LoginFrame extends JFrame{ //面板 JPanel jp1,...

    因为代码较多,如果有需要可以找我拿压缩包,我会将全部(包括图片)打包送你哦


    默认包中MainText类——Main函数主方法:


    //引包
    import javax.swing.*;
    
    import pane._7_UserPane;
    import view._1_LoginFrame;
    import view._2_MainFrame;
    
    public class MainText 
    展开全文
  • 适合需要交课程设计的初学者超市管理系统,有登陆框,收银员,有VIP的优惠打折处理,能够将同样的商品自动累加。文件读取,没有用到数据库
  • 当程序运行时,显示“欢迎使用****超市收银系统,请登陆”,提示用户输入用户名及其密码,当用户名及密码正确时,进入系统主界面,如下: *****超市收银系统 1、收银 2、查询 3、退出
  • JAVA实现简单超市收银系统、控制台输入

    千次阅读 多人点赞 2020-06-07 12:44:42
    import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Scanner; import cc.lanou.supermarket....

     

       

     主体

    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.List;
    import java.util.Scanner;
    import cc.lanou.supermarket.com.Commodity;
    import cc.lanou.supermarket.com.CommodityImpl;
    import cc.lanou.supermarket.test.Information;
    
    public class Supermarket {
        static List<Commodity> users = new ArrayList<Commodity>();
    
        public static void main(String[] args) {
            coles();
        }
    
        public static void coles() {
            // 用scanner接受控制台的信息,最后关闭close
            Scanner scanner = new Scanner(System.in);
            // 设置是否有门店信息推出系统
            // 获取时间
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = new Date(System.currentTimeMillis());
            String str3 = formatter.format(date);
            // 订单编号
            Calendar calendar = Calendar.getInstance();
            int y = calendar.get(Calendar.YEAR);
            int m = calendar.get(Calendar.MONTH);
            int d = calendar.get(calendar.DATE);
            // 订单
            int a = 0;
            String str1 = y + "" + m + "" + d + "0000" + a;
            // 收款机编号
            String str2 = "0371-123456789";
            // System.out.println(str1);
            CommodityImpl ip = new CommodityImpl();
            boolean isLogin = false;
            boolean isLoop = true;
            // 门店信息
            Information information = new Information();
            // 创建门店信息类对象
            // 1.设置门店信息
            while (isLoop) {
                System.out.println("-------欢迎来到美丽不打折超市系统-------");
                System.out.println("1.设置门店信息");
                System.out.println("2.顾客结账");
                System.out.println("3.推出系统");
                //System.out.println(" a" + a);
                // 接收操作
                int bian = scanner.nextInt();
                switch (bian) {
                case 1:
                    scanner.nextLine();
                    System.out.println("请输入门店名字");
                    String strName = scanner.nextLine();
                    System.out.println("请输入门店地址");
                    String strSite = scanner.nextLine();
                    System.out.println("请输入门店联系方式");
                    String strRelation = scanner.nextLine();
    //            Information information = new Information(strName, strSite, strRelation);
                    information.setName(strName);
                    information.setSite(strSite);
                    information.setRelation(strRelation);
                    System.out.println("你的信息录入成功");
                    System.out.println("门店名字" + information.getName());
                    System.out.println("门店地址" + information.getSite());
                    System.out.println("门店联系方式" + information.getRelation());
                    if (information.getName() != null) {
                        isLogin = true;
                    }
                    break;
                case 2:
                    if (isLogin == false) {
                        System.out.println("请先设置门店信息");
                        bian = 1;
                        break;
                    }
                    //购买次数
                    int a1 = 0;
                    float f1 = 0;
                    float f2 = 0;
                    float f3 = 0;                
                    String str5 = "";                                
                    //System.out.println("门店名字" + information.getName());
                    boolean bl = true;
                    boolean b2 = false;
                    while (bl) {
                        System.out.println("1.添加商品 " + "2.付款方式" + "3.收款金额" + "4.生成小票" + "5.回主菜单");
                        System.out.println("请按编号选择功能");
                        int i1 = scanner.nextInt();                
                        switch (i1) {
                        case 1:
                            Commodity commodity = new Commodity();
                            b2 = true;
                            scanner.nextLine();
                            System.out.println("请输入商品名字");
                            String commodityName = scanner.nextLine();
                            System.out.println("请输入商品单价");
                            float commodityPrice = scanner.nextFloat();
                            System.out.println("请输入购买数量");
                            float commodityAmount = scanner.nextFloat();
                            commodity.setName(commodityName);
                            commodity.setPrice(commodityPrice);
                            commodity.setAmount(commodityAmount);
                            f1 += commodityPrice * commodityAmount;
                            commodity.setJin(f1);                    
                            commodity.setXiaoPiao(str5);                        
                            Supermarket.cun(commodity);
                            a1++;
                            break;
                        case 2:
                            if (b2 == false) {
                                System.out.println("请先购买商品");
                                break;
                            }
                            scanner.nextLine();
                            System.out.println("付款方式:" + "1(支付宝)" + "2(微信)" + "3(现金)");
                            String str = scanner.nextLine();
                            if (str.equals("1")) {
                                str5="支付宝";
                            } else if (str.equals("2")) {
                                str5="微信";
                            } else if (str.equals("3")) {
                                str5="现金";
                            }
                            break;
                        case 3:
                            if (b2 == false) {
                                System.out.println("请先购买商品");
                                break;
                            }
                            System.out.println("客户付款金额");
                            f2 = scanner.nextFloat();
                            f3 = f2 - f1;
                            break;
                        case 4:
                            if (b2 == false) {
                                System.out.println("请先购买商品");
                                break;
                            }                        
                            //System.out.println("门店名字" + information.getName());
                            System.out.println("订单编号:" + str1 + (a++));
                            System.out.println("---------------------");
                            System.out.println("欢迎光临" + "  " + "TEL " + str2);
                            System.out.println("商品名 " + " " + "售价 " + " " + "数量 " + " " + "金额  ");
                            // System.out.println(commodity.getName() + commodity.getXiaoPiao());
                            for (Commodity i : users) {
                                System.out.println(i.getName() + " " + i.getAmount() + " " + i.getPrice() + " " + i.getJin());
                            }
                            System.out.println("共计" + a1 + "商品");
                            System.out.println("总金额" + f1);
                            System.out.println(str5+"实付" + f2);
                            System.out.println("找余:" + f3);
                            System.out.println("付款时间" + str3);
                            System.out.println("机器标号" + " " + str2);
                            break;
                        case 5:
                            bl = false;
                        default:
                            break;
                        }
                    }
                    break;
                case 3:
                    isLoop = false;
                    break;
                default:
                    break;
                }
            }
            System.out.println("已退出");
        }
    
        public static void cun(Commodity object) {
            users.add(object);
        }
    
    }

    创建商品类

    package cc.lanou.supermarket.com;
    /**
     * 商品类
     * @author CC
     *
     */
    public class Commodity {
    
        private String name;
        private float price;
        private float Amount;
        private float jin;
        private String xiaoPiao;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public float getPrice() {
            return price;
        }
        public void setPrice(float price) {
            this.price = price;
        }
        public float getAmount() {
            return Amount;
        }
        public void setAmount(float amount) {
            Amount = amount;
        }
        public float getJin() {
            return jin;
        }
        public void setJin(float jin) {
            this.jin = jin;
        }
        public String getXiaoPiao() {
            return xiaoPiao;
        }
        public void setXiaoPiao(String xiaoPiao) {
            this.xiaoPiao = xiaoPiao;
        }
        public Commodity(String name, float price, float amount, float jin, String xiaoPiao) {
            super();
            this.name = name;
            this.price = price;
            Amount = amount;
            this.jin = jin;
            this.xiaoPiao = xiaoPiao;
        }
        public Commodity() {
            
        }
        
    
        
    }

    创建门店信息类

    public class Information {
    /**
     * 门店信息
     */
        private String name;
        private String site;
        private String relation;
    
        public Information() {
    
        }
    
        public Information(String name, String site, String relation) {
            super();
            this.name = name;
            this.site = site;
            this.relation = relation;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getSite() {
            return site;
        }
    
        public void setSite(String site) {
            this.site = site;
        }
    
        public String getRelation() {
            return relation;
        }
    
        public void setRelation(String relation) {
            this.relation = relation;
        }
        @Override
        public String toString() {
            // TODO Auto-generated method stub
            return this.getName();
        }
    
    }

     

    展开全文
  • java超市收银系统

    2015-09-09 23:21:45
    收银各种功能均已实现,用的MySQL数据库数据库也已打包在里面。
  • 员工考勤信息系统 实现智能化的考勤功能 需求: 企业上班时间:9:00 企业下班时间:18:00 标准: 11:00>上班打卡时间>9:00: 迟到处理 上班打卡时间>11:00 旷工处理 16:00<下班打卡时间早退处理 下班打卡时间...

    超市收银系统:
    在这里插入图片描述
    该系统主要是针对Java基础知识的练习项目
    设计目标是面向小超市
    系统主要分为两个模块:会员登入模块、员工登录模块
    其中员工登录中还有其他许多小模块,如会员管理、上下班打卡等
    其中比较难的主要是营业额查询、收银结算和打卡

    开发工具:eclipse
    数据库:MySQL 8 sqlyog

    关于打卡:
    员工考勤信息系统
    实现智能化的考勤功能
    需求:
    企业上班时间:9:00
    企业下班时间:18:00
    标准:
    11:00>上班打卡时间>9:00: 迟到处理
    上班打卡时间>11:00 旷工处理
    16:00<下班打卡时间<18:00 早退处理
    下班打卡时间<16:00 旷工处理
    上班、下班缺卡 旷工处理
    上班时间有数据,下班没有数据 旷工处理
    上班时间没有数据,下班有数据 旷工处理
    1、实现员工智能考勤
    a、能够根据员工的打卡信息,统计考勤信息
    (考勤信息:迟到(个数)、早退(个数)、旷工(个数))
    2、实现员工打卡功能
    a、上班打卡
    b、下班打卡

    3、员工注册功能

    数据库中打卡语句:

    数据库视图

    create or replace view check_info_son
    as
    select work_date,employee_no,clock_in_time,clock_off_time,
    TIMESTAMPDIFF(MINUTE, clock_in_time, concat(clock_date,' 09:00:00')) as diff_in_time,
    TIMESTAMPDIFF(MINUTE, clock_off_time, concat(clock_date,' 18:00:00')) as diff_off_time
    from work_date w 
    left join clock_info t 
    on t.clock_date = w.work_date 
    
    
    create or replace view check_info
    as
    select t.work_date,t.employee_no,clock_in_time,clock_off_time, 
    	case 
    	        when diff_in_time<-120
    			then '旷工'
    		when diff_in_time<0 
    			then '迟到'
    		when diff_in_time>0
    			then '正常'
    		else '忘记打卡'
    	end as diff_in_status,
    	case 
    	        when diff_off_time>120
    			then '旷工'
    		when diff_off_time>0 
    			then '早退'
    		when diff_off_time<0
    			then '正常'
    		else '忘记打卡'
    	end as diff_off_time
    
    
    from check_info_son t 
    
    
    
    
    
    
    
    
    select * from check_info;
    
    
    select * from employee where number='s0001';
    

    因为我使用的数据库为:
    在这里插入图片描述
    所以在eclipse中的jar包为:
    在这里插入图片描述

    关于这个的操作我之前的博客有

    在我的项目中以下这个文件也有所不同
    在这里插入图片描述
    如下:
    在这里插入图片描述

    driver=com.mysql.cj.jdbc.Driver
    #url=jdbc:mysql:///mydb1?rewriteBatchedStatements=true&useUnicode=true&charcterEncoding=utf8
    url=jdbc:mysql:///supermaket?rewriteBatchedStatements=true&serverTimezone=UTC
    #url=jdbc:mysql:///mydb1?rewriteBatchedStatements=true
    user=root 
    password=123456
    

    整个项目分别有:
    在这里插入图片描述
    在这里插入图片描述
    管理员功能实现代码:
    impl 中代码

    package com.gec.dao.impl;
    
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.sql.Timestamp;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import java.util.Scanner;
    
    import com.gec.dao.AdminDao;
    import com.gec.dao.BuyerDao;
    import com.gec.domain.Admin;
    import com.gec.domain.Buyer;
    import com.gec.domain.Cashier;
    import com.gec.util.JDBCUtil;
    
    
    
    
    public class AdminDaoImpl implements AdminDao{
    	Scanner sc = new Scanner(System.in);
    	private String sql;
    	
    
    	@Override
    	//管理员 账号密码
    	public Admin login(String number, String password) {
    		
    		Connection conn = null;
    		PreparedStatement statement = null;
    		ResultSet rs = null;
    		
    		try {
    			conn = JDBCUtil.getConnection();
    			
    			String sql = "select * from employee where number = ? and password=?";
    			statement = conn.prepareStatement(sql);
    			
    			statement.setString(1, number);
    			statement.setString(2, password);
    			
    			
    			System.out.println("sql:" + statement);
    			
    			//执行
    			rs = statement.executeQuery();
    			//遍历结果集
    			while(rs.next()) {
    				//rs.getInt(1);  这种不推荐
    				String nb = rs.getString("number");
    				String uname = rs.getString("username");
    				
    				String upassword = rs.getString("password");
    				String sex = rs.getString("sex");
    				String phonr = rs.getString("phone");
    				int role = rs.getInt("role");
    				
    				//创建用户对象
    				Admin user = new Admin();
    				user.setNumber(nb);
    				user.setUsername(uname);
    				user.setSex(sex);
    				user.setPassword(upassword);
    				user.setPhone(phonr);
    				user.setRole(role);
    				//返回用户信息
    				return user;
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}finally {
    			JDBCUtil.closeConn(conn, statement, rs);
    		}
    		
    		return null;
    	}
    
    	 
    
    	@Override
    	//删除
    	public void remove(String number) {
    		Connection conn = null;
    		Statement statement = null;
    		try {
    			String sql = "delete from employee where number=" + number;
    			conn = JDBCUtil.getConnection();
    			
    			statement = conn.createStatement();
    			
    			//执行Sql
    			statement.executeUpdate(sql);
    			
    			//观察sql打印
    			System.out.println(sql);
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}finally {
    			JDBCUtil.closeConn(conn, statement, null);
    		}
    		
    	}
    	
    
    
    
    
    
    
    	@Override
    	//查询所有
    	public void QueryAll(Admin all) {
    		
    		Connection conn = null;
    		
    		ResultSet rs = null;
    		PreparedStatement st = null;
    		
    			try {
    				conn = JDBCUtil.getConnection();
    				
    				st = conn.prepareStatement(sql);
    				
    				rs = st.executeQuery();
    				while (rs.next()) {
    					Admin employee = new Admin();
    					employee.setNumber(rs.getString("number"));
    					employee.setUsername(rs.getString("username"));
    					employee.setPassword(rs.getString("password"));
    					employee.setSex(rs.getString("sex"));
    					employee.setPhone(rs.getString("phone"));
    					employee.setRole(rs.getInt("role"));
    					System.out.println(employee);
    				}
    			} catch (SQLException e) {
    				e.printStackTrace();
    			} finally {
    				JDBCUtil.closeConn(conn, st, rs);
    			}
    	}
    			
    	
    
    	@Override
    	//添加
    	public void saveUser(Admin user) {
    
    		Connection conn = null;
    		Statement statement = null;
    		
    		try {
    			//String sql = "insert into tb_user(name,sex)values('" + name + "','" + sex +"')";
    			String sql = "insert into employee(number,username,password,sex,phone,role,remark)values('"+ user.getNumber() + "',"
    			+ "'" + user.getUsername() + "','" + user.getPassword() +"','" + user.getSex() +"','"+ user.getPhone()+"','" + user.getRole() +",'"+ user.getRemark() +")";
    			
    			conn = JDBCUtil.getConnection();
    			
    			statement = conn.createStatement();
    			
    			//执行Sql
    			statement.executeUpdate(sql);
    			
    			//观察sql打印
    			System.out.println(sql);
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}finally {
    			JDBCUtil.closeConn(conn, statement, null);
    		}
    		
    	}
    
    
    
    	@Override
    	//查找
    	public List<Admin> findAdmin(Admin role) {
    		Connection conn = JDBCUtil.getConnection();
    		PreparedStatement ps = null;
    		ResultSet rs = null;
    		List<Admin> employees = new ArrayList<Admin>();
    		String sql = "select * from employee where role = " + role;
    		try {
    			ps = conn.prepareStatement(sql);
    			rs = ps.executeQuery();
    			while (rs.next()) {
    				Admin employee = new Admin();
    				employee.setNumber(rs.getString("number"));
    				employee.setPassword(rs.getString("password"));
    				employee.setSex(rs.getString("sex"));
    				employee.setRole(rs.getInt("role"));
    				employee.setPhone(rs.getString("phone"));
    				employee.setUsername(rs.getString("username"));
    				employees.add(employee);
    			}
    			return employees;
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			JDBCUtil.closeConn(conn, ps, rs);
    		}
    		return null;
    		
    	}
    
    
    
    	@Override
    	//修改
    	public void update(Admin number) {
    		Connection conn = null;
    		Statement st = null;
    		ResultSet rs = null;
    		Admin admin =new Admin();
    		try {
    			String sql = "update employee set username ='" + admin.getUsername() + "',password='" + admin.getPassword() + "',sex ='" +admin.getSex() + "',phone ='" +admin.getPhone() + "' where number = '" + admin.getNumber() + "'";
    			conn = JDBCUtil.getConnection();
    			st = conn.createStatement();
    			// 执行sql
    			st.executeUpdate(sql);
    			// 观察sql打印
    			
    			
    			
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}finally {
    			JDBCUtil.closeConn(conn, st, null);
    		}
    		
    		
    	}
    
    
    
    	@Override
    	//上班打卡
    	public Date clockIn(Admin ad) {
    		Date date = new Date();
    		Connection conn = JDBCUtil.getConnection();
    		PreparedStatement ps = null;
    		String sql = "insert into clock_info (employee_no,clock_in_time,clock_date) values (?,?,?)";
    		try {
    			ps = conn.prepareStatement(sql);
    			ps.setString(1, ad.getNumber());
    			Timestamp timeStamp = new Timestamp(date.getTime());
    			ps.setTimestamp(2, timeStamp);
    			Date clock_date = new Date();
    			ps.setDate(3, new java.sql.Date(clock_date.getTime()));
    			ps.executeUpdate();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			JDBCUtil.closeConn(conn, ps, null);
    		}
    		return date;
    	}
    
    
    
    	@Override
    	//下班打卡
    	public Date clockOut(Admin ad2) {
    		Connection conn = JDBCUtil.getConnection();
    		PreparedStatement ps = null;
    		ResultSet rs = null;
    		String sql = "update clock_info set clock_off_time = ? where clock_date = ? and employee_no = ? ";
    		Date date = new Date();
    		Timestamp timeStamp = new Timestamp(date.getTime());
    		try {
    			ps = conn.prepareStatement(sql);
    			ps.setTimestamp(1, timeStamp);
    			ps.setDate(2, new java.sql.Date(date.getTime()));
    			ps.setString(3, ad2.getNumber());
    			ps.executeUpdate();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return timeStamp;
    	}
    
    
    
    	@Override
    	//查询超市营业额
    	public void turnover(Admin price) {
    		// TODO Auto-generated method stub
    		
    	}
    
    
    
    	@Override
    	//会员管理
    	public void VipManage() {
    		// TODO Auto-generated method stub
    		
    	}
    
    
    
    	@Override
    	public List findAdmin() {
    		// TODO Auto-generated method stub
    		return null;
    	}
    
    
    
    	@Override
    	//修改
    	public Admin update(String number) {
    		Connection conn = null;
    		Statement st = null;
    		ResultSet rs = null;
    		Admin admin =new Admin();
    		try {
    			String sql = "update employee set username ='" + admin.getUsername() + "',password='" + admin.getPassword() + "',sex ='" +admin.getSex() + "',phone ='" +admin.getPhone() + "' where number = '" + admin.getNumber() + "'";
    			conn = JDBCUtil.getConnection();
    			st = conn.createStatement();
    			// 执行sql
    			st.executeUpdate(sql);
    			// 观察sql打印
    			
    			
    			
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}finally {
    			JDBCUtil.closeConn(conn, st, null);
    		}
    		return admin;
    		
    	}
    
    
    
    	@Override
    	//出勤管理
    	public void lookAttendance(String work_date) {
    		List<Admin> clock_infos = new ArrayList();
    		List<Admin> check_infos = new ArrayList();
    
    		Connection conn = null;
    		PreparedStatement st = null;
    		ResultSet rs = null;
    
    		try {
    			conn = JDBCUtil.getConnection();
    			
    			String sql = "select check_info.work_date,check_info.employee_no,employee.username,check_info.clock_in_time,check_info.clock_off_time,check_info.diff_in_status,check_info.diff_off_time"
    					+ " from check_info,employee where check_info.employee_no = employee.number and work_date = '" + work_date + "'";
    			st = conn.prepareStatement(sql);
    
    			// 执行
    			rs = st.executeQuery();
    			System.out.println("工作日期\t\t员工编号\t\t员工姓名\t\t上班时间\t\t\t下班时间\t\t  上班情况\t下班情况");
    			// 遍历结果集
    			while (rs.next()) {
    				work_date = rs.getString("work_date");
    				String employee_no = rs.getString("employee_no");
    				String username = rs.getString("username");
    				String clock_in_time = rs.getString("clock_in_time");
    				String clock_off_time = rs.getString("clock_off_time");
    				String diff_in_status = rs.getString("diff_in_status");
    				String diff_off_time = rs.getString("diff_off_time");
    				
    				if (clock_in_time == null) {
    					clock_in_time=	"null\t\t";
    				}else if (clock_off_time == null) {
    					clock_off_time=	"null\t\t";	
    				}
    				System.out.println(work_date + "\t" + employee_no + "\t\t" + username + "\t" + clock_in_time + "\t" + clock_off_time + "\t" + diff_in_status + "\t" + diff_off_time);
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			JDBCUtil.closeConn(conn, st, rs);
    		}
    		
    	}
    
    
    
    	@Override
    	//钱
    	public void money(Admin employee) {
    		String sql = null;
    		System.out.println("请输入你想要购买的商品:");
    		int number = sc.nextInt();
    		//通过商品名查找商品库存
    		int inventory = findInventoryByNumber(number);
    		System.out.println("你想要购买的商品还有:"+inventory+"件,你想要购买:");
    		int buy = sc.nextInt();
    		String sql1 = "update goods set inventory = inventory - " + buy + " where c_number = '" + number +"'";
    		settlementDML(sql1);
    		Date date = new Date();
    		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    		String d = dateFormat.format(date);
    		System.out.println("是否是会员购买:(y/n)");
    		String isVip = sc.next();
    		if(isVip.equals("y")) {
    			System.out.println("请输入购买的会员号:");
    			String vipNumber = sc.next();
    			sql = "insert into sell_info (s_c_number,s_quantity,s_time,s_e_number,s_vip_number) values ("+number+","+buy+",'"+d+"','"+employee.getNumber()+"','"+vipNumber+"')";
    		}else {
    			sql = "insert into sell_info (s_c_number,s_quantity,s_time,s_e_number) values ("+number+","+buy+",'"+d+"','"+employee.getNumber()+"')";
    		}
    		settlementDML(sql);
    	}
    	
    	
    	//通过商品名来查找商品的库存
    	@Override
    	public int findInventoryByNumber(int number) {
    		Connection conn = JDBCUtil.getConnection();
    		PreparedStatement ps = null;
    		ResultSet rs = null;
    		String sql = "select inventory from goods where c_number = ?";
    		try {
    			ps = conn.prepareStatement(sql);
    			ps.setInt(1, number);
    			rs = ps.executeQuery();
    			//判断结果集是否为空
    			if(rs.next()) {
    				//判断库存是否为0
    				int inventory = rs.getInt("inventory");
    				if(inventory <= 0) {
    					System.out.println("你想要购买的商品没有库存了,是否让采购员去进货?(y/n)");
    					String isBuy = sc.next();
    					if(isBuy.equals("y")) {
    						BuyerDao bdao = new BuyerDaoImpl();
    						bdao.Buy();
    					}
    				}else {
    					return inventory;
    				}
    			}else {
    				System.out.println("没有找到你想要购买的商品!");
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}finally {
    			JDBCUtil.closeConn(conn, ps, rs);
    		}
    		return 0;
    	}
    	
    	//执行dml语句
    	@Override
    	public void settlementDML(String sql) {
    		Connection conn = JDBCUtil.getConnection();
    		PreparedStatement ps = null;
    		try {
    			ps = conn.prepareStatement(sql);
    			ps.executeUpdate();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}finally {
    			JDBCUtil.closeConn(conn, ps, null);
    		}
    		
    	}
    
    
    
    	@Override
    	public void money(String sf2) {
    		// TODO Auto-generated method stub
    		
    	}
    		
    }
    
    
    
    	
    
    
    	
    
    
    
    
    
    	
    	
    
    
    
    	
    
    
    
    
    展开全文
  • 本资源为本人不久前自己编写的数据库课程设计,用到了JAVA+SQLSever2008。没有上传到其他地方,保证...(符合数据库报告要求E-R图等)+系统说明.txt文件。因为上传限制,如果需要SQLSever安装包和教学视频可以私信我。
  • Java小型超市收银系统

    2016-06-25 16:52:08
    Java SE开发的超市收银系统,实现了数据库操作,文件读取数据,写入数据等操作
  • JAVA超市收银系统

    2015-01-19 16:23:16
    系统使用了MySql数据库JAVA进行设计,所上传的文件包含功能分析文档,设计流程文档(详细介绍设计过程中遇到的问题及解决办法),还包含数据库建库脚本。Java课程设计。
  • 采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计...
  • 系统具体包含对用户的管理、商品管理、标签管理、折扣管理、收银管理、进货渠道管理、进货管理、用户管理、商品统计、收银统计登录注销、等功能,为小型超市收银提供一个管理平台,实现对数据地高效、安全地管理。
  • Java实现超市管理系统(含数据库

    千次阅读 2021-01-29 18:21:00
    作者:AiY..来源:https://blog.csdn.net/qq_44859533 序言: 学Java已经有几个月了,上一次总结是针对GUI界面写的简易计算器,实现加减乘除功能...
    
    
    
    作者:AiY..来源:https://blog.csdn.net/qq_44859533
    

    序言: 学Java已经有几个月了,上一次总结是针对GUI界面写的简易计算器,实现加减乘除功能以及计算器标准型和科学型之间的转换,有兴趣可以看看 Java混合计算器以及界面切换 . 这次写的超市管理系统,实现的功能有账户的注册、登录,超市商品类别的添加、修改和删除以及商品的添加、修改和删除的功能。用户注册之后把注册信息导入数据库;用户登录时候查询用户表,方可登录进去;商品类别和商品的增加也如注册信息一样,把信息导入商品类别表和商品表。由于快期末考试了,超市管理系统的一些功能还没有完善,后续还会更新顾客登录超市系统后,只能拥有查询商品的权限,并且还可以实现购买商品的功能,哈~哈 ~…

    1、首先是建立数据库表:

    2、实现主页面:

    3、实现用户注册:

    核心代码:

    public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new Register().setVisible(true);
                }
            });
        }
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
            String name=this.jTextField1.getText();
            String age=this.jTextField3.getText();
            String QQ=this.jTextField4.getText();
            String userName=this.jTextField5.getText();
            String password1=this.jPasswordField1.getText();
            String password2=this.jPasswordField2.getText();
            if(StringUtil.isEmpty(name)){
                JOptionPane.showMessageDialog(null,"姓名不能为空");
                return;
            }
            if(StringUtil.isEmpty(age)){
                JOptionPane.showMessageDialog(null,"年龄不能为空");
                return;
            }
            if(StringUtil.isEmpty(QQ)){
                JOptionPane.showMessageDialog(null,"QQ不能为空");
                return;
            }
            if(StringUtil.isEmpty(userName)){
                JOptionPane.showMessageDialog(null,"注册账号不能为空");
                return;
            }
            if(StringUtil.isEmpty(password1)){
                JOptionPane.showMessageDialog(null,"注册密码不能为空");
                return;
            }
            if(StringUtil.isEmpty(password2)){
                JOptionPane.showMessageDialog(null,"确认密码不能为空");
                return;
            }
            if(!password1.equals(password2)){
                JOptionPane.showMessageDialog(null,"两个密码填写不一致");
                return;
            }
            User user=new User(userName,password1);
            Connection con=null;
            try{
                con=dbUtil.getCon();
                int n=userDao.add(con,user);
                if(n==1){
                    JOptionPane.showMessageDialog(null,"用户注册成功!");
    
                }else{
                    JOptionPane.showMessageDialog(null,"注册失败!!");
                }
            }catch (Exception e){
                e.printStackTrace();
                JOptionPane.showMessageDialog(null,"注册失败!!");
            }finally {
                try{
                    dbUtil.closeCon(con);
                }catch (Exception e){
                    e.printStackTrace();
                }
    
            }
        }
        //上一步
        private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
            dispose();
            new HomePage().setVisible(true);
        }
    12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
    

    注册成功之后可以返回上一步,重新登录

    4、实现用户登录:

    核心代码:

     //重置
        private void resetValueActionPerformed(ActionEvent evt) {
            this.userNameTxt.setText("");
            this.passwordTxt.setText("");
        }
        //登录事件处理
        private void loginActionPerformed(ActionEvent evt) {
            String userName=this.userNameTxt.getText();
            String password=new String(this.passwordTxt.getPassword());
            if(StringUtil.isEmpty(userName)){
                JOptionPane.showMessageDialog(null,"用户名不能为空!");
                return;
            }
            if(StringUtil.isEmpty(password)){
                JOptionPane.showMessageDialog(null,"密码不能为空");
                return;
            }
            User usr=new User(userName,password);
            Connection con=null;
            try{
                con=dbUtil.getCon();
                User currentUser=userDao.login(con,usr);
                if(currentUser!=null){
                    dispose();
                    new MainFrm().setVisible(true);
    
                }else{
                    JOptionPane.showMessageDialog(null,"登录失败,用户名密码错误!");
                }
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                try{
                    dbUtil.closeCon(con);
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
    
        }
    12345678910111213141516171819202122232425262728293031323334353637383940
    

    接下来是商品类别和商品的实现,主要是在JFrame窗口中加入Inter窗口

    5、主菜单之关于:

    核心代码:

    6、主菜单之商品类别管理:

    核心代码:

     private void jButton1ActionPerformed(ActionEvent evt) {
            String goodsTypeName=this.goodsTypeNameTxt.getText();
            String goodsTypeDesc=this.goodsTypeDescTxt.getText();
            if(StringUtil.isEmpty(goodsTypeName)){
                JOptionPane.showMessageDialog(null,"商品类别不能为空");
                return;
            }
            GoodsType goodsType=new GoodsType(goodsTypeName,goodsTypeDesc);
            Connection con=null;
            try{
                con=dbUtil.getCon();
                int n=goodsTypeDao.add(con,goodsType);
                if(n==1){
                    JOptionPane.showMessageDialog(null,"商品类别添加成功!");
                    jButton2ActionPerformed(evt);
                }else{
                    JOptionPane.showMessageDialog(null,"添加失败!!");
                }
            }catch (Exception e){
                e.printStackTrace();
                JOptionPane.showMessageDialog(null,"添加失败!!");
            }finally {
                try{
                    dbUtil.closeCon(con);
                }catch (Exception e){
                    e.printStackTrace();
                }
    
            }
        }
        //重置
    
        private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
            this.goodsTypeNameTxt.setText("");
            this.goodsTypeDescTxt.setText("");
        }
    123456789101112131415161718192021222324252627282930313233343536
    //表格行点击事件
        private void jTable1MousePressed(java.awt.event.MouseEvent evt) {
            int row=jTable1.getSelectedRow();//获取行数
            idTxt.setText((String)jTable1.getValueAt(row,0));
            goodsTypeNameTxt.setText((String)jTable1.getValueAt(row,1));
            goodsTypeDescTxt.setText((String)jTable1.getValueAt(row,2));
    
        }
        //鼠标单击后,删除
        private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
            String id=idTxt.getText();
            if(StringUtil.isEmpty(id)){
                JOptionPane.showMessageDialog(null,"请选择要删除的记录");
                return;
            }
            int n=JOptionPane.showConfirmDialog(null,"Are you 确定delete this记录?");
            if(n==0){
                Connection con=null;
                try{
                    con=dbUtil.getCon();
                    int deleteNum=goodsTypeDao.delect(con,id);
                    //System.out.println(deleteNum);
                    if(deleteNum==1){
                        JOptionPane.showMessageDialog(null,"删除成功");
                        this.resetValue();
                        this.fillTable(new GoodsType());
                    }else{
                        JOptionPane.showMessageDialog(null,"删除失败");
                    }
    
                }catch (Exception e){
                    e.printStackTrace();
                }finally {
                    try{
                        dbUtil.closeCon(con);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
            }
        }
        //鼠标单击后,修改
        private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
            String id=idTxt.getText();
            String goodsTypeName=goodsTypeNameTxt.getText();
            String goodsTypeDesc=goodsTypeDescTxt.getText();
            if(StringUtil.isEmpty(id)){
                JOptionPane.showMessageDialog(null,"请选择要修改的记录");
                return;
            }
            GoodsType goodsType=new GoodsType(Integer.parseInt(id),goodsTypeName,goodsTypeDesc);
            Connection con=null;
            try{
                con=dbUtil.getCon();
                int modifyNum=goodsTypeDao.update(con,goodsType);
                if(modifyNum==1){
                    JOptionPane.showMessageDialog(null,"修改成功");
                    this.resetValue();
                    this.fillTable(new GoodsType());
                }else{
                    JOptionPane.showMessageDialog(null,"修改失败");
                }
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                try{
                    dbUtil.closeCon(con);
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
    
    
        }
        //查询商品类型
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
            String t_goodsTypeName=this.jTextField2.getText();
            GoodsType goodsType=new GoodsType();
            goodsType.setGoodsTypeName(t_goodsTypeName);
            this.fillTable(goodsType);
        }
        //插入商品类型
        private void fillTable(GoodsType goodsType){
            DefaultTableModel dtm=(DefaultTableModel)jTable1.getModel();
            dtm.setRowCount(0);
            Connection con=null;
            try{
                con=dbUtil.getCon();
                ResultSet rs=goodsTypeDao.list(con,goodsType);
                while(rs.next()){
                    Vector v=new Vector();
                    v.add(rs.getString("id"));
                    v.add(rs.getString("goodsTypeName"));
                    v.add(rs.getString("goodsTypeDesc"));
                    dtm.addRow(v);
                }
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                try{
                    dbUtil.closeCon(con);
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
        //修改后重置
        private void resetValue(){
            this.idTxt.setText("");
            this.goodsTypeNameTxt.setText("");
            this.goodsTypeDescTxt.setText("");
        }
    123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
    

    7、主菜单之商品管理:

    核心代码:

    //查询
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
            String t_goodsName=this.s_goodsNameTxt.getText();
            Goods goods=new Goods();
            goods.setGoodsName(t_goodsName);
            this.fillTable(goods);
        }
        //下拉框
        private void fillGoodsType(String type){
            Connection con=null;
            GoodsType goodsType=null;
            try{
                con=dbUtil.getCon();
                ResultSet rs=goodsTypeDao.list(con,new GoodsType());
                if("search".equals(type)){
                    goodsType=new GoodsType();
                    goodsType.setGoodsTypeName("请选择");
                    goodsType.setId(-1);
                    this.s_goodsJcb.addItem(goodsType);
                }
                while(rs.next()){
                    goodsType=new GoodsType();
                    goodsType.setGoodsTypeName(rs.getString("goodsTypeName"));
                    goodsType.setId(rs.getInt("id"));
                    if("search".equals(type)){
                        this.s_goodsJcb.addItem(goodsType);
                    }else if("modify".equals(type)){
    
                    }
                }
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                try{
                    dbUtil.closeCon(con);
                }catch (Exception e){
                    e.printStackTrace();
                }
    
            }
        }
        //表
        private  void  fillTable(Goods goods){
            DefaultTableModel dtm=(DefaultTableModel) jTable1.getModel();
            dtm.setRowCount(0);
            Connection con=null;
            try{
                con=dbUtil.getCon();
                ResultSet rs=goodsDao.list(con,goods);
                while(rs.next()){
                    Vector v=new Vector();
                    v.add(rs.getInt("id"));
                    v.add(rs.getString("goodsName"));
                    v.add(rs.getFloat("price"));
                    v.add(rs.getString("goodsDesc"));
                    dtm.addRow(v);
                }
    
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                try{
                    dbUtil.closeCon(con);
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }
        //鼠标点击表格事件
        private void jTable1MousePressed(java.awt.event.MouseEvent evt) {
            int row=jTable1.getSelectedRow();
            this.idTxt.setText((Integer)jTable1.getValueAt(row,0)+"");
            this.goodsNameTxt.setText((String)jTable1.getValueAt(row,1));
            this.priceTxt.setText((Float)jTable1.getValueAt(row,2)+"");
            this.goodsDescTxt.setText((String)jTable1.getValueAt(row,3));
    
        }
        //鼠标单击后,修改
        private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
            String id=this.idTxt.getText();
            if(StringUtil.isEmpty(id)){
                JOptionPane.showMessageDialog(null,"请选择要修改的记录");
                return;
            }
            String goodsName=this.goodsNameTxt.getText();
            String price=this.priceTxt.getText();
            String goodsDesc=this.goodsDescTxt.getText();
            if(StringUtil.isEmpty(goodsName)){
                JOptionPane.showMessageDialog(null,"商品名称不能为空");
                return;
            }
            if(StringUtil.isEmpty(price)){
                JOptionPane.showMessageDialog(null,"商品价钱不能为空");
                return;
            }
            if(StringUtil.isEmpty(goodsDesc)){
                JOptionPane.showMessageDialog(null,"商品描述不能为空");
                return;
            }
            Goods goods=new Goods(Integer.parseInt(id),goodsName, Float.parseFloat(price),goodsDesc);
            Connection con=null;
            try{
                con=dbUtil.getCon();
                int modifyNum=goodsDao.update(con,goods);
                if(modifyNum==1){
                    JOptionPane.showMessageDialog(null,"修改成功");
                    this.resetValue();
                    this.fillTable(new Goods());
                }else{
                    JOptionPane.showMessageDialog(null,"修改失败");
                }
            }catch (Exception e){
                e.printStackTrace();
            }finally {
                try{
                    dbUtil.closeCon(con);
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
    
        }
        //鼠标单击后删除
        private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
            String id=idTxt.getText();
            if(StringUtil.isEmpty(id)){
                JOptionPane.showMessageDialog(null,"请选择要删除的记录");
                return;
            }
            int n=JOptionPane.showConfirmDialog(null,"Are you 确定delete this记录?");
            if(n==0){
                Connection con=null;
                try{
                    con=dbUtil.getCon();
                    int deleteNum=goodsDao.delete(con,id);
                    if(deleteNum==1){
                        JOptionPane.showMessageDialog(null,"删除成功");
                        this.resetValue();
                        this.fillTable(new Goods());
                    }else{
                        JOptionPane.showMessageDialog(null,"删除失败");
                    }
    
                }catch (Exception e){
                    e.printStackTrace();
                }finally {
                    try{
                        dbUtil.closeCon(con);
                    }catch (Exception e){
                        e.printStackTrace();
                    }
                }
            }
        }
        //修改后重置
        private void resetValue(){
            this.idTxt.setText("");
            this.goodsNameTxt.setText("");
            this.goodsDescTxt.setText("");
        }
    123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
    private void jButton2ActionPerformed(ActionEvent evt) {
            this.resetValue();
        }
        //商品添加
        private void jButton1ActionPerformed(ActionEvent evt){
            String goodsName=this.goodsNameTxt.getText();
            String price=this.priceTxt.getText();
            String goodsDesc=this.goodsDecTxt.getText();
            if(StringUtil.isEmpty(goodsName)){
                JOptionPane.showMessageDialog(null,"商品类别名称不能为空");
                return;
            }
            if(StringUtil.isEmpty(price)){
                JOptionPane.showMessageDialog(null,"商品价格不能为空");
                return;
            }
            GoodsType goodsType=(GoodsType)goodsTypeJcb.getSelectedItem();
            int goodsTypeId=goodsType.getId();
            Goods goods=new Goods(goodsName,Float.parseFloat(price),goodsDesc);
            Connection con=null;
            try{
                con=dbUtil.getCon();
                int addNum=goodsDao.add(con,goods);
                if(addNum==1){
                    JOptionPane.showMessageDialog(null,"商品添加成功");
                    resetValue();
                }else{
                    JOptionPane.showMessageDialog(null,"商品添加失败");
                }
            }catch (Exception e){
                e.printStackTrace();
                JOptionPane.showMessageDialog(null,"商品添加失败");
            }finally {
                try{
                    dbUtil.closeCon(con);
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
    
        }
    
        /**
         * 重置表单
         */
        private void resetValue(){
            this.goodsNameTxt.setText("");
            this.priceTxt.setText("");
            this.goodsDecTxt.setText("");
            if(this.goodsTypeJcb.getItemCount()>0){
                this.goodsTypeJcb.setSelectedIndex(0);
    
            }
        }
        //初始化商品类别下拉框
        private void fillGoodsType(){
            Connection con=null;
            GoodsType goodsType=null;
            try{
                con=dbUtil.getCon();
                ResultSet rs=goodsTypeDao.list(con,new GoodsType());
                while(rs.next()){
                    goodsType=new GoodsType();
                    goodsType.setId(rs.getInt("id"));
                    goodsType.setGoodsTypeName(rs.getString("goodsTypeName"));
                    this.goodsTypeJcb.addItem(goodsType);
                }
            }catch (Exception e){
                e.printStackTrace();
            }finally {
    
            }
        }
    12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
    

    8、退出:


    点击阅读全文前往微服务电商教程

    展开全文
  • 基于Java超市管理系统/超市收银系统

    千次阅读 2021-10-05 11:14:17
    系统具有完整的业务逻辑。...前台收银模块:POS收银; 商品销售模块:添加会员、会员信息的查询、修改与删除; 商品库存模块:查询商品信息; 营业统计模块:营业数据图形化、销售情况查询; 人事管理模块:添
  • 超市收银系统 <p>1、功能及界面要求:1)界面设计友好、美观;2)信息分类清晰、准确;3)具有系统查询功能,保证数据查询的灵活性;4)各系统子功能完善&#...
  • 3.3. 收银管理 ..................................................................................................................... 10 3.3.1. 扫描商品 ....................................................
  • 软件需求:jdk1.8(其他也可以)、myeclipse(eclipse、ieda)、MySQL、mysql-connector-java-5.1.46.jar 硬件要求:windows系统电脑一台 配套资料 项目编码(源码+数据库l) 、相关软件和jar包 功能需求 登录、管理员...
  • Java超市收银系统.zip

    2021-04-13 16:26:37
    java编写的超市收银系统,含数据库文件,用来练习不错
  • 超市收银系统.zip

    2020-12-20 17:46:46
    实现超市收银系统
  • JAVA语言超市收银系统

    2009-02-17 23:04:19
    超市管理系统,有登陆框,收银员,有VIP的优惠打折处理,能够将同样的商品自动累加。文件读取,没有用到数据库
  • Java课程设计,运用图形用户界面和数据库实现小型超市前台收银管理系统,具有收银员和管理员,收银员具有结账功能,管理员具有会员管理,商品管理,用户管理和查询功能。
  • 3.3 数据库设计 4 3.4 系统的部署 4 3.5 系统的运行环境 4 4 系统功能模块的设计 7 4.1 登陆模块 7 4.2 供应商管理 7 4.3 库存管理 19 4.4 类别管理 19 4.5 商品管理 19 4.6 收银管理 19 4.7 营业统计管理 19 5 系统...
  • Java实现收银系统

    千次阅读 2019-08-25 18:14:50
    系统是一款基于字符界面的收银系统,实现了商品管理,浏览支付订单等功能。 2.实现要求: 掌握了JavaSE的基本知识,以及掌握了MySQL数据库,JDBC编程等知识并且能够熟练使用融会贯通。 在本次项目中我们使用...
  • Java如何入门? 1、建立好开发环境 首先建立好开发环境非常重要,工欲善其事,必先利其器。做任何开发,首先就是要把这个环境准备好,之后就可以去做各种尝试,尝试过程中就能逐渐建立信心。初学者往往在环境配置中...
  • 摘要:随着网络的遍及,计算机技术的疾速开展,现有的人工收银模式,已经无法顺应时代的发展,特别是近些年来,随着超市规模、商品数量、业务的增加,超市收银系统的高效方便快捷,可以很方便的查看库存、销售数据、...
  • java语言描述 mysql数据库

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 869
精华内容 347
关键字:

java数据库超市收银系统

java 订阅