商品管理系统

本文档介绍了使用Java实现一个简单的商品管理系统的过程,包括商品的增删改查、入库出库功能。系统使用了c3p0连接池和MySQL数据库,通过Util工具类进行数据库操作,实现了数据持久化。此外,还提供了异常处理和用户交互界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

商品管理系统(存储到数据库中)

简介

第一次博客 有错误可以私信我 谢谢大家的指正。

如果写的可以希望大家可以关注一下,会继续更新学习历程 一起学习进步。

源码在最后

项目要求

  • 能根据项目需求设计合理的实体类
  • 规范的编码
  • 关闭程序后,录入的数据下次打开程序还存在

项目需求

  • 商品添加(输入商品编码、名称、价格、数量)
  • 商品列表展示
  • 商品入库(输入商品编号,然后提示用户输入入库数量,进行入库)
  • 商品出库(输入商品编号,提示用户输入出库数量,进行出库)
  • 修改商品价格(提示用户输入编号,录入新价格)
  • 删除商品(提示用户输入编号,确认是否删除)

准备工作

软件准备

  1. 有 数据库 ;IDEA

  2. 下载jar包 点此搜索下载

    • mysql 的
    • c3p0 连接池的
  3. 导入jar包
    在这里插入图片描述
    在这里插入图片描述

文件准备

  1. 创建包

在这里插入图片描述

  1. DataSouce.properties 配置类信息文件

    # 数据库配置信息
    jdbc_url=jdbc:mysql://localhost:3306/tables
    jdbc_driver=com.mysql.cj.jdbc.Driver
    jdbc_user=123
    jdbc_password=123
    
  2. Env类 读取属性文件的组件类

    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    
    /**
     * 读取属性文件加载类
     */
    public final class Env extends Properties {
         
        public static final String JDBC_URL;
        public static final String JDBC_DRIVER;
        public static final String JDBC_USER;
        public static final String JDBC_PASSWORD;
    
        public static Env env;
        /*
        数据库属性文件的路径和名称
         */
        public static final  String CONF_FILE="com\\sjtest\\conf\\DataSouce.properties";
    
        static {
         
            if(env==null){
         //当Env为空的时候赋值
                env=new Env();
            }
    
            //获取属性文件的文件流
            InputStream input = env.getClass().getClassLoader().getResourceAsStream(CONF_FILE);
    
            try {
         
                env.load(input);//加载文件流
            } catch (IOException e) {
         
                e.printStackTrace();
            }finally {
         
                try {
         
                    input.close();
                } catch (IOException e) {
         
                    e.printStackTrace();
                }
            }
            //赋值
            JDBC_URL=env.getProperty("jdbc_url");
            JDBC_DRIVER=env.getProperty("jdbc_driver");
            JDBC_USER=env.getProperty("jdbc_user");
            JDBC_PASSWORD=env.getProperty("jdbc_password");
    
        }
    
    }
    
  3. DataSourPool类 数据源管理组件类

import com.mchange.v2.c3p0.ComboPooledDataSource;

import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DataSourPool {
   
    private static ComboPooledDataSource c3p0;

    /**
     * 创建 ComboPooledDataSource 数据源
     */
    private static void createComboPooledDataSource(){
   
        if(c3p0==null){
   //如果c3p0是空的 赋值
            c3p0=new ComboPooledDataSource();
        }
        /*
            数据源相关属性
             */
        try {
   
            c3p0.setDriverClass(Env.JDBC_DRIVER);
            c3p0.setUser(Env.JDBC_USER);
            c3p0.setPassword(Env.JDBC_PASSWORD);
            c3p0.setJdbcUrl(Env.JDBC_URL);
        } catch (PropertyVetoException e) {
   
            e.printStackTrace();
        }
    }

    /**
     * 获取Connection 接口的方法
     * @return
     */
    public static Connection getConnection(){
   
        Connection conn=null;
        createComboPooledDataSource();//创建数据源
        try {
   
            conn=c3p0.getConnection();//有数据源获取打开一个连接
        } catch (SQLException throwables) {
   
            throwables.printStackTrace();
        }

        return conn;
    }

    /*
    方法重载
     */
    
    /**
     * 关闭方法
     * @param conn
     */
    public static void close(Connection conn) {
   
        try {
   
            if(conn!=null) {
   
                conn.close();
            }
        } catch (SQLException throwables) {
   
            throwables.printStackTrace();
        }
    }

    public static void close(Statement state) {
   
        try {
   

            if (state!=null) {
   
                state.close();
            }
        } catch (SQLException throwables) {
   
            throwables.printStackTrace();
        }
    }

    public static void close(ResultSet resu) {
   
        try {
   
            if (resu != null) {
   
                resu.close();
            }
        } catch (SQLException throwables) {
   
            throwables.printStackTrace();
        }
    }
}
  1. Goods类 商品的实体类

    /**
     * 映射商品表
     */
    public class Goods {
         
        //商品编号
        private String id;
        //商品名称
        private String name;
        //商品价格
        private int price;
        //商品数量
        private int number;
        
    	/*
    	定义有参 无参的构造器
    	*/
        public Goods() {
         
        }
    
        public Goods(String id, String name, int price, int number) {
         
            this.id = id;
            this.name = name;
            this.price = price;
            this.number = number;
        }
    
        public String getId() {
         
            return id;
        }
    
        public void setId(String id) {
         
            this.id = id;
        }
    
        public String getName() {
         
            return name;
        }
    
        public void setName(String name) {
         
            this.name = name;
        }
    
        public int getPrice() {
         
            return price;
        }
    
        public void setPrice(int price) {
         
            this.price = price;
        }
    
        public int getNumber() {
         
            return number;
        }
    
        public void setNumber(int number) {
         
            this.number = number;
        }
    	/*
    	重写toString方法
    	*/
        @Override
        public String toString() {
         
            return "Goods{" +
                    "id='" + id + '\'' +
                    ", name='" + name + '\'' +
                    ", price=" + price +
                    ", number=" + number +
                    '}';
        }
    }
    
  2. Util 类 工具类 注意

    import com.sjtest.Exception.NoneException;
    import com.sjtest.pojo.Goods;
    
    import java.sql.Connection;
    import java
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值