JAVA练习系列(二):控制台程序(上)

商品管理系统(控制台程序)

简言

本项目是此次系列项目的第一篇,目的在于练习基础的sql连接及项目内容的搭建,逐步达到构建商品管理系统网络应用。

1. 项目介绍

本项目包含三个基本功能,对于商品、销售员及购物活动的数据库操作,实现设计简单的登录验证功能。
商超购物管理系统具有商品管理、前台收银、商品库存等功能,java控制台显示界面,mysql数据库存储数据
项目需求
在这里插入图片描述
项目结构
本项目主要分为entity层、dao层、util工具包、view层及db
在这里插入图片描述

2. 数据库设计与数据库连接层编写

需要完成商品、售货员及交易活动库的设计,不要忘记主键与外键的索引关系。
设计数据表
在这里插入图片描述

商品表
主键为gid

  • gid
    INT类型 商品编号,自动生成
  • gname
    VARCHAR类型 商品名称, 唯一约束
  • gprice
    INT类型 商品价格
  • gnum
    INT类型 商品数量
    在这里插入图片描述
    售货员表
    主键为sid
  • sid
    INT型 售货员编号 自动生成
  • spassword
    VARCHAR型 售货员密码 用于登录售货员系统
  • sname
    VARCHAR型 营业员姓名,用于登录收银,唯一约束(unique)
    在这里插入图片描述
    商品销售表
    主键为gsid,设置gidsid为外键
  • gsid
    INT型 销售编号 自动生成
  • gid
    INT型 商品编号
  • sid
    INT型 售货员编号
  • sdate
    DATE型 销售日期
  • snum
    INT型 销售总量

数据库连接
通过mysql的连接驱动,连接数据库,小伙伴们需要注意自己的密码哦!

public final class DbConn {
    
    
    public static Connection getconn(){
    
    
        Connection connection = null;
        String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/shoppingms";
        String user = "root";
        String password = "******";
        try{
    
    
            Class.forName(driver);
            connection = DriverManager.getConnection(url, user, password);
        }catch (SQLException | ClassNotFoundException e){
    
    
            e.printStackTrace();
        }
        return connection;
    }
}

数据库关闭
将数据库事件回收后,关闭数据库连接.

public final class DbClose {
    
    
    public static void addClose(PreparedStatement pstmt, Connection connection){
    
    
        try{
    
    
            if(pstmt != null){
    
    
                pstmt.close();
            }
        }catch (SQLException e1){
    
    
            e1.printStackTrace();
        }
        try{
    
    
            if(connection != null){
    
    
                connection.close();
            }
        }catch (SQLException e){
    
    
            e.printStackTrace();
        }
    }

    public static void queryClose(PreparedStatement pstmt, ResultSet rs, Connection connection){
    
    
        try{
    
    
            if(pstmt != null){
    
    
                pstmt.close();
            }
        }catch (SQLException e1){
    
    
            e1.printStackTrace();
        }
        try{
    
    
            if(rs != null){
    
    
                rs.close();
            }
        }catch (SQLException e1){
    
    
            e1.printStackTrace();
        }
        try{
    
    
            if(connection != null){
    
    
                connection.close();
            }
        }catch (SQLException e){
    
    
            e.printStackTrace();
        }
    }
}

这样我们就把关于数据库连接的操作封装在db层中,便于后续我们在其上封装关于数据表的增、删、改、查等系列操作.

3. 实体类设计

本项目中实体层需要设计商品、销售员及销售活动实体类,封装其get、set方法,进而将数据传输的数据格式规划为类对象.
goods实体类

public class Goods {
    
    
    private int gid;
    private String gname;
    private double gprice;
    private int gnum;


    /**
     * 添加商品信息
     * @param gname, gprice, gnum
     * **/
    public Goods(String gname, double gprice, int gnum){
    
    
        this.gname = gname;
        this.gprice = gprice;
        this.gnum = gnum;
    }

    /**
     * 根据编号更改商品信息
     *
     * ***/
    public Goods(int gid, String gname){
    
    
        this.gid = gid;
        this.gname = gname;
    }


    /**
     * 展示所有商品
     * @param gid, gname, gprice, gnum
     * **/
    public Goods(int gid, String gname, double gprice, int gnum){
    
    
        this.gid = gid;
        this.gprice = gprice;
        this.gname = gname;
        this.gnum = gnum;
    }

    /**
     * 根据编号更改商品信息
     * @param gid, gnum
     * **/
    public Goods(int gid, int gnum){
    
    
        this.gid = gid;
        this.gnum = gnum;
    }


    /**
     * 根据编号更改商品信息
     * @param gid, gprice
     * **/
    public Goods(int gid, double gprice){
    
    
        this.gid = gid;
        this.gprice = gprice;
    }

    public int getGid() {
    
    
        return gid;
    }

    public void setGid(int gid) {
    
    
        this.gid = gid;
    }

    public String getGname() {
    
    
        return gname;
    }

    public void setGname(String gname) {
    
    
        this.gname = gname;
    }

    public double getGprice() {
    
    
        return gprice;
    }

    public void setGprice(float gprice) {
    
    
        this.gprice = gprice;
    }

    public int getGnum() {
    
    
        return gnum;
    }

    public void setGnum(int gnum) {
    
    
        this.gnum = gnum;
    }
}

Salesman实体类

public class Salemans {
    
    
    private int sid;
    private String sPassWord;
    private String sName;

    /**
     * 验证用户登录
     * @param sid, sPassWord
     *
     *
     * **/
    public Salemans(int sid, String sPassWord){
    
    
        this.sid = sid;
        this.sPassWord = sPassWord;
    }

    /**
     * 查询用户
     * 更改密码
     * @param sid
     * @param sName
     * @param sPassWord
     * **/
    public Salemans(int sid, String sPassWord, String sName){
    
    
        this.sid = sid;
        this.sName = sName;
        this.sPassWord = sPassWord;
    }

    /**
     * 添加用户
     *
     * **/

    public Salemans(String sName, String sPassWord){
    
    
        this.sName = sName;
        this.sPassWord = sPassWord;
    }

    public int getSid() {
    
    
        return sid;
    }

    public void setSid(int sid) {
    
    
        this.sid = sid;
    }

    public String getsPassWord() {
    
    
        return sPassWord;
    }

    public void setsPassWord(String sPassWord) {
    
    
        this.sPassWord = sPassWord;
    }

    public String getsName() {
    
    
        return sName;
    }

    public void setsName(String sName) {
    
    
        this.sName = sName;
    }
}

gsales实体类

public class Gsale {
    
    
    private int gid;
    private int sid;
    private int sNum;

    private String gName;
    private double gPrice;
    private int gNum;
    private int allSum;


    /**
     * 购物结算
     * @param gid
     * @param sid
     * @param sNum
     * **/
    public Gsale(int gid, int sid, int sNum){
    
    
        this.gid = gid;
        this.sid = sid;
        this.sNum = sNum;
    }


    /**
     * 展示商品
     *
     * **/
    public Gsale(String gName, double gPrice, int gNum, int allSum){
    
    
        this.gName = gName;
        this.gPrice = gPrice;
        this.gNum = gNum;
        this.allSum = allSum;
    }

    public int getGid() {
    
    
        return gid;
    }

    public void setGid(int gid) {
    
    
        this.gid = gid;
    }

    public int getSid() {
    
    
        return sid;
    }

    public void setSid(int sid) {
    
    
        this.sid = sid;
    }

    public int getsNum() {
    
    
        return sNum;
    }

    public void setsNum(int sNum) {
    
    
        this.sNum = sNum;
    }

    public String getgName() {
    
    
        return gName;
    }

    public void setgName(String gName) {
    
    
        this.gName = gName;
    }

    public double getgPrice() {
    
    
        return gPrice;
    }

    public void setgPrice(double gPrice) {
    
    
        this.gPrice = gPrice;
    }

    public int getgNum() {
    
    
        return gNum;
    }

    public void setgNum(int gNum) {
    
    
        this.gNum = gNum;
    }

    public int getAllSum() {
    
    
        return allSum;
    }

    public void setAllSum(int allSum) {
    
    
        this.allSum = allSum;
    }
}

到此,本项目的实体层基本设计完成.

猜你喜欢

转载自blog.csdn.net/qq_45019698/article/details/108907767