精华内容
下载资源
问答
  • 包含商品库存信息查看、商品信息修改,新增商品信息,删除信息等功能。 二、功能清单 1、查询,如图 查询界面,请从数据库查询学生信息表数据并显示在控件上,通过底部功能菜单执行相应功能,添加、修改按钮点击...

    一、概述

    为了管理好商店库存信息,提升店铺管理工作效率,结合实际工作需要,设计和开发本系统,主要用于商店商品信息维护出入库等。包含商品库存信息查看、商品信息修改,新增商品信息,删除信息等功能。

    二、功能清单

    1、查询如图

    查询界面,请从数据库查询学生信息表数据并显示在控件上,通过底部功能菜单执行相应功能,添加、修改按钮点击后课弹出相应窗体执行相应操作,点击刷新按钮课刷新当前数据,删除按钮点击后可删除选中行数据并刷新

    2、添加,如图

    填写姓名和班级后,点击添加按钮后可添加数据

    3、修改,如图

    通过点击查询界面中“修改按钮”,可在修改界面修改当前选中行数据

    三、数据库

    注意:数据库名称为“班级_姓名”,如“1705_小白”。

    表名称:tGoods

    字段

    字段名

    数据类型

    描述

    约束

    goodsID

    int

    商品编号

    主键自增长

    name

    varchar(20)

    商品名称

    typeName

    varchar(20)

    类别名称

    stock

    Int

    库存

    评分规则(共100分)

    标题

    分值

    合理注释

    10分

    命名规范

    10分

    查询

    20分

    修改

    10分

    删除

    10分

    添加

    10分

    数据库创建

    10分

    数据库连接

    10分

    整体效果

    10分

    实现代码:

    数据库 链接: https://pan-yz.chaoxing.com/external/m/file/483246110958415872

    Java文件 链接: https://pan-yz.chaoxing.com/external/m/file/483246085097291776

    数据库:

    -- ----------------------------
    -- Table structure for tgoods
    -- ----------------------------
    DROP TABLE IF EXISTS `tgoods`;
    CREATE TABLE `tgoods` (
      `goodsID` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(20) DEFAULT NULL,
      `typeName` varchar(20) DEFAULT NULL,
      `stock` int(11) DEFAULT NULL,
      PRIMARY KEY (`goodsID`)
    ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of tgoods
    -- ----------------------------
    INSERT INTO `tgoods` VALUES ('9', '统一冰红茶', '饮料', '24');
    INSERT INTO `tgoods` VALUES ('10', '娃哈哈营养快线', '饮料', '23');

    com.test.db >>> DbConnection

    package com.test.db;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import com.mysql.jdbc.Statement;
    
    public class DbConnection {
    	//驱动类的类名
    	private static final String DRIVERNAME="com.mysql.jdbc.Driver";
    	//连接数据的URL路径
    	private static final String URL="jdbc:mysql://localhost:3306/1902_杨明金";
    	//数据库登录账号
    	private static final String USER="root";
    	//数据库登录密码
    	private static final String PASSWORD="root123";
    	//加载驱动
    	static{
    		try {
    			Class.forName(DRIVERNAME);
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		}
    	}
        //获取数据库连接
    	public static Connection getConnection() {
    	          try {
    		return DriverManager.getConnection(URL,USER,PASSWORD);
    	           } catch (SQLException e) {	
    		e.printStackTrace();
    	           }
    			return null;
    	}
    	//查询
    	public static ResultSet query(String sql) {
    		System.out.println(sql);
    		//获取连接
    		Connection connection=getConnection();
    		PreparedStatement psd;
    		try {
    			psd = connection.prepareStatement(sql);
    			return psd.executeQuery();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return null;
    	}
    	//增、删、改、查
    		public static int updataInfo(String sql) {
    			System.out.println(sql);
    			//获取连接
    			Connection connection=getConnection();
    			try {
    				PreparedStatement psd=connection.prepareStatement(sql);
    				return psd.executeUpdate();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    			return 0;
    		}
    	//关闭连接
    	public  static  void colse(ResultSet rs,Statement stmt,Connection  conn) throws Exception{
    	          try { if (rs != null){ rs.close(); }
                             	 if (stmt != null) { stmt.cancel(); }
    		 if (conn != null) { conn.close(); }
    	   } catch (Exception e) {
    		   e.printStackTrace(); throw new Exception();
    	   }
    	}
    }	

    com.test.entity >>> Goods

    package com.test.entity;
    
    public class Goods {
    	private int goodsID;//商品ID
    	private String name;//商品名称
    	private String typeName;//商品类别
    	private int stock;//库存
    
    	public Goods(int goodsID, String name, String typeName, int stock) {
    		super();
    		this.goodsID = goodsID;
    		this.name = name;
    		this.typeName = typeName;
    		this.stock = stock;
    	}
    
    	public Goods() {
    		super();
    	}
    
    	public int getGoodsID() {
    		return goodsID;
    	}
    
    	public void setGoodsID(int goodsID) {
    		this.goodsID = goodsID;
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public String getTypeName() {
    		return typeName;
    	}
    
    	public void setTypeName(String typeName) {
    		this.typeName = typeName;
    	}
    
    	public int getStock() {
    		return stock;
    	}
    
    	public void setStock(int stock) {
    		this.stock = stock;
    	}
    	
    }
    

    com.test.controller >>> Updata

    package com.test.controller;
    
    import com.test.db.DbConnection;
    
    public class Updata {
    	//添加数据
    	public static int addData(String sql) {
    		
    		return DbConnection.updataInfo(sql);
    	}
    }
    

    com.test.controller >>> Select

    package com.test.controller;
    
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    
    import com.test.db.DbConnection;
    import com.test.entity.Goods;
    
    public class Select {
    	public static Object[][] getGoods() {
    		String sql = "SELECT * FROM tgoods";
    		
    		ResultSet resultSet = DbConnection.query(sql);
    		ArrayList<Goods> list=new ArrayList<Goods>();
    		try {
    			while (resultSet.next()) {
    				Goods goods=new Goods();
    				goods.setGoodsID(resultSet.getInt(1));
    				goods.setName(resultSet.getString(2));
    				goods.setTypeName(resultSet.getString(3));
    				goods.setStock(resultSet.getInt(4));
    				list.add(goods);
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		Object[][] objects=new Object[list.size()][4];
    		for(int i=0;i<list.size();i++) {
    			objects[i][0]=list.get(i).getGoodsID();
    			objects[i][1]=list.get(i).getName();
    			objects[i][2]=list.get(i).getTypeName();
    			objects[i][3]=list.get(i).getStock();
    		}
    		return objects;
    	}
    	
    }
    

    com.test.View >>> IndexGUI

    package com.test.view;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;
    
    import com.test.controller.Select;
    import com.test.controller.Updata;
    import com.test.entity.Goods;
    
    public class IndexGUI extends JFrame {
    	
    	Object[] columnNames = {"商品编号","名称","类别名称","库存"};
    	Object[][] data = Select.getGoods();
    	DefaultTableModel df = new DefaultTableModel(data, columnNames);
    	
    	public IndexGUI() {
    		super("商品信息管理");
    		this.setBounds(0, 0, 780, 500);
    		this.setLocationRelativeTo(null);//让窗口在屏幕中间显示
    		this.setResizable(false);//让窗口大小不可改变
    		this.setLayout(null);
    		
    		JTable jTable=new JTable(df);
    		JScrollPane jp = new JScrollPane(jTable);
    		jp.setBounds(0, 10, 780, 350);
    		this.add(jp);
    		
    		JButton tj = new JButton("添加");
    		tj.setBounds(50, 400, 100, 30);
    		tj.addActionListener(new ActionListener() {
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				IncreaseGUL i = new IncreaseGUL();
    				i.setVisible(true);
    			}
    		});
    		
    		JButton sc = new JButton("删除");
    		sc.setBounds(180, 400, 100, 30);
    		sc.addActionListener(new ActionListener() {
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				if (jTable.getSelectedColumn()<0) {
    					JOptionPane.showMessageDialog(null, "请选中要删除的数据!");
    				} else {
    					int goodsID = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 0).toString());
    					String sql="delete from tgoods where goodsid="+goodsID;
    					Updata updata = new Updata();
    					int result = updata.addData(sql);
    					if (result>0) {
    						JOptionPane.showMessageDialog(null, "删除成功!");
    						JOptionPane.showMessageDialog(null, "记得刷新一下哦!");
    					} else {
    						JOptionPane.showMessageDialog(null, "删除失败!");
    					}
    				}
    			}
    		});
    		
    		JButton xg = new JButton("修改");
    		xg.setBounds(310, 400, 100, 30);
    		xg.addActionListener(new ActionListener() {
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				if (jTable.getSelectedColumn()<0) {
    					JOptionPane.showMessageDialog(null, "请选择要修改的数据!");
    				} else {
    					int goodsID = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 0).toString());
    					String name = jTable.getValueAt(jTable.getSelectedRow(), 1).toString();
    					String typeName = jTable.getValueAt(jTable.getSelectedRow(), 2).toString();
    					int stock = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 3).toString());
    					Goods goods = new Goods(goodsID,name,typeName,stock);
    					ModifyGUI modifyGUI = new ModifyGUI(goods);
    					modifyGUI.setVisible(true);
    				}
    				
    			}
    		});
    		
    		JButton sx = new JButton("刷新");
    		sx.setBounds(440, 400, 100, 30);
    		sx.addActionListener(new ActionListener() {
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				Object[][] data = Select.getGoods();
    				df.setDataVector(data, columnNames);
    			}
    		});
    		
    		this.add(tj);
    		this.add(sc);
    		this.add(xg);
    		this.add(sx);
    	}
    	
    }
    

    com.test.View >>> IncreaseGUL

    package com.test.view;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JTextField;
    
    import com.test.controller.Updata;
    
    public class IncreaseGUL extends JFrame implements ActionListener {
    	JTextField name = new JTextField();
    	JTextField type = new JTextField();
    	JTextField num = new JTextField();
    	public IncreaseGUL() {
    		super.setTitle("添加商品");
    		this.setBounds(0, 0, 780, 250);
    		this.setLocationRelativeTo(null);
    		this.setResizable(false);
    		this.setLayout(null);
    		
    		JLabel nameT = new JLabel("名称");
    		nameT.setBounds(50, 30, 40, 25);
    		name.setBounds(100, 30, 145, 30);
    		
    		JLabel typeT = new JLabel("类别");
    		typeT.setBounds(280, 30, 40, 25);
    		type.setBounds(335, 30, 145, 30);
    		
    		JLabel numT = new JLabel("数量");
    		numT.setBounds(515, 30, 40, 25);
    		num.setBounds(575, 30, 145, 30);
    		
    		JButton tj = new JButton("添加");
    		tj.setBounds(100, 115, 100, 30);
    		tj.addActionListener(this);
    		
    		this.add(nameT);
    		this.add(name);
    		this.add(typeT);
    		this.add(type);
    		this.add(numT);
    		this.add(num);
    		this.add(tj);
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		String sql = null;
    		String addName = name.getText();
    		String addType = type.getText();
    		String addNum = num.getText();
    		if (addName.equals("")||addType.equals("")||addNum.equals("")) {
    			JOptionPane.showMessageDialog(null, "请完整输入要添加的数据");
    		} else {
    			sql="INSERT INTO tgoods VALUES("+"null,'"+addName+"','"+addType+"','"+addNum+"')";
    			int result = Updata.addData(sql);
    			if (result>0) {
    				JOptionPane.showMessageDialog(null, "添加成功!");
                    JOptionPane.showMessageDialog(null, "记得刷新一下哦!");
    				dispose();
    				IndexGUI i = new IndexGUI();
    			} else {
    				JOptionPane.showMessageDialog(null, "添加失败!");
    			}
    		}
    	}
    }
    

    com.test.View >>> ModifyGUI

    package com.test.view;
    
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JTextField;
    import com.test.controller.Updata;
    import com.test.entity.Goods;
    
    public class ModifyGUI extends JFrame implements ActionListener {
    	
    	JTextField name = new JTextField();
    	JTextField type = new JTextField();
    	JTextField num = new JTextField();
    	int id;
    	public ModifyGUI(Goods goods) {
    		super.setTitle("修改商品");
    		this.setBounds(0, 0, 780, 250);
    		this.setLocationRelativeTo(null);
    		this.setLayout(null);
    		
    		JLabel nameT = new JLabel("名称");
    		nameT.setBounds(50, 30, 40, 25);
    		name.setBounds(100, 30, 145, 30);
    		
    		JLabel typeT = new JLabel("类别");
    		typeT.setBounds(280, 30, 40, 25);
    		type.setBounds(335, 30, 145, 30);
    		
    		JLabel numT = new JLabel("库存");
    		numT.setBounds(515, 30, 40, 25);
    		num.setBounds(575, 30, 145, 30);
    		
    		JButton xg = new JButton("修改");
    		xg.setBounds(100, 115, 100, 30);
    		xg.addActionListener(this);
    		
    		this.add(nameT);
    		this.add(name);
    		this.add(typeT);
    		this.add(type);
    		this.add(numT);
    		this.add(num);
    		this.add(xg);
    		
    		name.setText(goods.getName());
    		type.setText(goods.getTypeName());
    		num.setText(Integer.toString(goods.getStock()));
    		id = goods.getGoodsID();
    	}
    	
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		String sql = null;
    		String addName = name.getText();
    		String addType = type.getText();
    		int addNum = Integer.parseInt(num.getText());
    		if (addName.equals("")||addType.equals("")||addNum==0) {
    			JOptionPane.showMessageDialog(null, "请完整输入要修改的数据");
    		}else {
    			Updata up=new Updata();
    			
    			sql="UPDATE tgoods SET "+"name='"+addName+"',typeName='"+addType+"',stock='"+addNum+"'where goodsid="+id;
    			int result = Updata.addData(sql);
    			Updata.addData(sql);
    			if (result>0) {
    				JOptionPane.showMessageDialog(null, "修改成功!");
                    JOptionPane.showMessageDialog(null, "记得刷新一下哦!");
    				dispose();
    				IndexGUI i = new IndexGUI();
    				i.setVisible(true);
    			} else {
    				JOptionPane.showMessageDialog(null, "修改失败!");
    			}
    		}
    	}
    }
    

    com.test.Test >>> Test

    package com.test.Test;
    
    import com.test.view.IndexGUI;
    
    public class Test {
    	public static void main(String[] args) {
    		IndexGUI i = new IndexGUI();
    		i.setVisible(true);
    	}
    }
    

    展开全文
  • 1.把json串复制到如下链接生成相关类 https://www.bejson.com/json2javapojo/new/ 2.复制到vo包

    1.把json串复制到如下链接生成相关类

    https://www.bejson.com/json2javapojo/new/

     2.复制到vo包

    展开全文
  • 主要介绍了Java实现商品的查找、添加、出库、入库操作,结合完整实例形式分析了java基于面向对象的商品信息添加、删除、查找等相关操作技巧,需要的朋友可以参考下
  • public String genGoodsCode() throws Exception{ String maxGoodsCode=goodsService.getMaxGoodsCode();//当然,先获取最大编码 if(StringUtil.isNotEmpty... //第一个商品商品编码为0001 } }
  • JAVA商品库存管理系统

    热门讨论 2010-04-25 13:39:14
    JAVA 商品库存管理系统(源代码,论文)
  • Javashop是国内基于Java开发的企业级电商平台,现推出7.2版本,本次更新内容如下: 新增功能 1.验证码支持阿里云滑动验证(支持PC+WAP)。 2.用户端新增预存款功能。 3.新增日志收集功能,可在管理端查看系统日志...

    Javashop是Java开发的企业级电商平台,核心功能内容如下:

    新增功能

    1.验证码支持阿里云滑动验证(支持PC+WAP)。

    2.用户端新增预存款功能。

    3.新增日志收集功能,可在管理端查看系统日志。

    4.商户可单独维护移动端商品详情。

    5.商品展示支持小视频。

    6.商品发布分为spu和sku,更合理。

    7.将脚本引擎应用到促销模块内,使促销规则更加灵活。

    优化功能

    1.商家端、管理端、用户端细节优化。

    滑动验证码

    7.2.0版本中验证码插件化

    默认提供阿里云滑动验证、图形验证码

    可根据需要开发其他验证插件支持

    效果展示:

     

    预存款

    新增会员预存款功能,会员可在个人中心-账户余额中进行查看并充值余额用于支付商城订单。

    效果展示:

     

    日志收集

    新版把Javashop日志做成图形界面,在管理员后台就可查看INFO、DEBUG和EROER级别的日志,在商城正式运营中方便运维人员查阅商城日志,便于开发人员进行开发调试。

     

    促销脚本引擎

    电商业务中的促销活动的特点是:多种多样、规则复杂、变化性强,在购物车、计算页面中频繁计算,对计算性能要求较高。

    传统的做法是购物车直接对接促销模块,这种方法逻辑基本上都固化在代码中、逻辑复杂,因为促销的时时性等原因,不能提供很好的性能。因为运维的需要,一旦促销规则变化,导致不稳定的可能性很大,因为耦合性太紧密导致。

    Javashop采用脚本引擎实现促销规则的存储和计算,实现了规则的定义、规则的生成、规则的计算完全解耦,实现了非常好的预期效果

    1. 定制规则灵活(二开方便)

    2. 可靠性好(购物车和促销模块是面向脚本引擎完全拆离的)

    3. 高性能(规则的计算完全是发生在内存中)

     

    Javashop功能亮点

    • 支持商家自定义sku、支持sku图片

    • 商品草稿箱方便运维编辑商品、支持商品快照

    • 商品审核支持开关,方便运维

    • 库存预警,当低于设置的阙值时自动提醒商家

    • 丰富的促销方式:支持全网分销及返利、满减满送、拼团、第二件半价、积分、优惠价、秒杀、团购,支持促销活动到sku级别

    • 独立的售后流程,支持多次退换货、补发商品

    • 完备的权限体系,支持店员功能

    • 支持主流的支付方式以及预存款支付

    • 首页楼层装修支持PC端移动端(wap、小程序、app)拖拽式装修

    • 多维度统计:支持会员、商品、订单、行业、流量等等,多达20多种统计

    • 使用elasticsearch搜索引擎,ik分词器,内置淘宝分词词库,支持自定义分词

    • 日志收集系统,可在线查看所有实例的系统日志

    • 敏感词过滤:内置2万多个中国国情敏感词库,支持自定义敏感词

     

    展开全文
  • java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String at com.wlq.common.utils.R.getCode(R.java:65) ~[classes/:na]
  • 商品管理系统Java实现

    千次阅读 2020-12-24 15:55:53
    //主要功能,商品新增,查找,更改价格,以及删除 Java实现 商品类 public class Goods { //商品信息:商品名称,商品价格,商品销量,商品种类,商品品牌对应编号 private String goodsName; private double ...

    商品管理系统

    实现功能:商品查询,新增,更改价格,以及删除
    首先是三个基本类的构建
    商品类、账号类、品牌类
    1、商品类

    public class Goods {
        //商品信息:商品名称,商品价格,商品销量,商品种类,商品品牌对应编号
        private String goodsName;
        private double goodsPrice;
        private int goodsSales;
        private String goodsCategories;
        private int brandsNum;
        private String GoodsNum;
    
        public Goods(String goodsName, double goodsPrice, int goodsSales, String goodsCategories,int brandsNum, String goodsNum) {
            this.goodsName = goodsName;
            this.goodsPrice = goodsPrice;
            this.goodsSales = goodsSales;
            this.goodsCategories = goodsCategories;
            this.brandsNum = brandsNum;
            GoodsNum = goodsNum;
        }
    
        public int getBrandsNum() {
            return brandsNum;
        }
    
        public void setBrandsNum(int brandsNum) {
            this.brandsNum = brandsNum;
        }
    
        public Goods() {
        }
    
        public String getGoodsNum() {
            return GoodsNum;
        }
    
        public void setGoodsNum(String goodsNum) {
            GoodsNum = goodsNum;
        }
    
        public String getGoodsName() {
            return goodsName;
        }
    
        public void setGoodsName(String goodsName) {
            this.goodsName = goodsName;
        }
    
        public double getGoodsPrice() {
            return goodsPrice;
        }
    
        public void setGoodsPrice(double goodsPrice) {
            this.goodsPrice = goodsPrice;
        }
    
        public int getGoodsSales() {
            return goodsSales;
        }
    
        public void setGoodsSales(int goodsSales) {
            this.goodsSales = goodsSales;
        }
    
        public String getGoodsCategories() {
            return goodsCategories;
        }
    
        public void setGoodsCategories(String goodsCategories) {
            this.goodsCategories = goodsCategories;
        }
    
        public int getBrands() {
            return brandsNum;
        }
    
        public void setBrands(int brandsNum) {
            this.brandsNum = brandsNum;
        }
    }
    
    

    实现了其各个属性的get和set方法
    账户类

    public class Accounts {
        //账户信息:账户名称,账户密码
        private String userName;
        private String userPassword;
    
        public Accounts(String userName, String userPassword) {
            this.userName = userName;
            this.userPassword = userPassword;
        }
    
        public Accounts() {
        }
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    
        public String getUserPassword() {
            return userPassword;
        }
    
        public void setUserPassword(String userPassword) {
            this.userPassword = userPassword;
        }
    }
    

    品牌类

    public class Brands {
        //商品品牌信息:商品品牌名称,商品品牌对应编号
        private String brandsName;
        private int brandsNum;
    
        public Brands(String brandsName, int brandsNum) {
            this.brandsName = brandsName;
            this.brandsNum = brandsNum;
        }
    
        public String getBrandsName() {
            return brandsName;
        }
    
        public void setBrandsName(String brandsName) {
            this.brandsName = brandsName;
        }
    
        public int getBrandsNum() {
            return brandsNum;
        }
    
        public void setBrandsNum(int brandsNum) {
            this.brandsNum = brandsNum;
        }
    }
    

    之后是一个存储这三个基本类信息的数据类,通过定义List实现三个类的存储
    数据类

    import java.util.ArrayList;
    import java.util.List;
    import java.util.UUID;
    
    public class Database {
        //存储用户信息
        private List<Accounts>accountsList=new ArrayList<>();
        //存储商品信息
        private List<Goods>goodsList=new ArrayList<>();
        //存储品牌信息
        private List<Brands>brandsList=new ArrayList<>();
        public Database(){
            //添加初始化信息
            此处自己添加商品,用户信息,品牌信息
        }
    
        public List<Accounts> getAccountsList() {
            return accountsList;
        }
    
        public void setAccountsList(List<Accounts> accountsList) {
            this.accountsList = accountsList;
        }
    
        public List<Goods> getGoodsList() {
            return goodsList;
        }
    
        public void setGoodsList(List<Goods> goodsList) {
            this.goodsList = goodsList;
        }
    
        public List<Brands> getBrandsList() {
            return brandsList;
        }
    
        public void setBrandsList(List<Brands> brandsList) {
            this.brandsList = brandsList;
        }
    }
    

    之后是三个基本类各个增删改查方法的实现,这个根据程序需求写
    商品交互类

    import java.util.ArrayList;
    import java.util.List;
    
    
    public class GoodsDAO {
        //调用数据库
        private Database database;
        //初始化商品DAO类,引入数据库
        public GoodsDAO(Database database){
            this.database=database;
        }
        //返回销量最高的商品
        public List<Goods>hotSell(){
            List<Goods> temporList=database.getGoodsList();
            for(int i=0;i<temporList.size();i++){
                for(int j=0;j<temporList.size()-1-i;j++){
                    if(temporList.get(j).getGoodsSales()<temporList.get(j+1).getGoodsSales())
                    {
                        Goods e=temporList.get(j+1);
                        temporList.set(j+1,temporList.get(j));
                        temporList.set(j,e);
                    }
                }
            }
            return temporList;
        }
        //根据商品序号查询商品
        public Goods searchById(int id){
            Goods goods;
            goods=database.getGoodsList().get(id-1);
            return goods;
        }
        //根据品牌编号查询商品
        public List<Goods>searchByBranchId(int brandsId){
            List<Goods>temporList=new ArrayList<>();
            for(Goods each:database.getGoodsList()){
                if(each.getBrandsNum()==brandsId)
                    temporList.add(each);
            }
            if(temporList.isEmpty())
                temporList=null;
            return  temporList;
        }
        //根据价格区间查询商品
        public List<Goods>searchByPrice(double minPrice,double maxPrice){
            List<Goods>temporList=new ArrayList<>();
            for(Goods each:database.getGoodsList()){
                if(each.getGoodsPrice()>=minPrice&&each.getGoodsPrice()<=maxPrice) {
                    temporList.add(each);
                }
            }
            if(temporList.isEmpty())
                temporList=null;
            return  temporList;
        }
        //新增商品
        public void addGoods(Goods goods){
            database.getGoodsList().add(goods);
        }
        //修改商品价格
        public void modify(String goodsId,double price){
            for(Goods each:database.getGoodsList()){
                if(each.getGoodsNum().equals(goodsId))
                    each.setGoodsPrice(price);
            }
        }
        //删除商品
        public void delete(String goodsId){
            Goods goods=null;
            for(Goods each:database.getGoodsList()){
                if(each.getGoodsNum().equals(goodsId))
                    goods=each;
            }
            database.getGoodsList().remove(goods);
            //迭代操作时不允许ArrayList被改变,因此重新定义一个对象指向他,迭代完后进行操作。
        }
        //更改商品品牌编号
        public void changeByBranchId(int brandsId){
            for(Goods each:database.getGoodsList()){
                if(each.getBrandsNum()==brandsId)
                    each.setBrandsNum(brandsId-1);
            }
        }
    }
    
    

    账户交互类实现注册,登录的需求

    public class AccountDAO {
        //调用数据库
        private Database database;
        //初始化账户DAO类,引入数据库
        public AccountDAO(Database database){
            this.database=database;
        }
        //根据账户名返回账户类
        public Accounts searchAccounts(String userName){
            Accounts accounts=null;
            for(Accounts each:database.getAccountsList()){
                if(each.getUserName().equals(userName))
                    accounts=each;
            }
            return accounts;
        }
        //添加账户类
        public void addAccount(Accounts accounts){
            database.getAccountsList().add(accounts);
        }
    }
    

    品牌类

    public class BrandsDAO {
        //调用数据库
        private Database database;
        //初始化品牌DAO类,引入数据库
        public BrandsDAO(Database database){
            this.database=database;
        }
        //根据品牌名称查询
        public Brands findByName(String brandName){
            Brands brands=null;
            for(Brands each:database.getBrandsList()){
                if(each.getBrandsName().equals(brandName)) {
                    brands = each;
                    break;
                }
            }
            return brands;
        }
        //查询所有品牌
        public void findAll(){
            System.out.println("现有品牌:");
            for(Brands each:database.getBrandsList()){
                System.out.println(each.getBrandsNum()+"\t"+each.getBrandsName());
            }
        }
        //根据品牌编号查询品牌名称
        public String findNameById(int id){
            String brandName;
            Brands brands=null;
            for(Brands each:database.getBrandsList()){
                if(each.getBrandsNum()==id){
                    brands=each;
                }
            }
            return brands.getBrandsName();
        }
        //查询品牌是否拥有
        public boolean findBranch(String brandsName){
            boolean choose=false;
            for(Brands each:database.getBrandsList())
            {
                if(each.getBrandsName().equals(brandsName))
                    choose=true;
            }
            return choose;
        }
        //新建一个品牌
        public void addBranch(Brands brands){
            database.getBrandsList().add(brands);
        }
        //查找当前品牌的的数量
        public int brandsNumbers(){
            int num=database.getBrandsList().size();
            return num;
        }
        //查找要删除的品牌
        public void deleteBrands(int num){
            Brands brands=null;
            for(Brands each:database.getBrandsList()){
                if(each.getBrandsNum()==num)
                    brands=each;
            }
            database.getBrandsList().remove(brands);
        }
        //移动编号
        public void moveBrandsNum(int brandsNum){
            int index;
            for(int i=0;i<database.getBrandsList().size();i++){
                if(database.getBrandsList().get(i).getBrandsNum()>brandsNum)
                    database.getBrandsList().get(i).setBrandsNum(database.getBrandsList().get(i).getBrandsNum()-1);
            }
        }
    }
    

    服务类实现项目需要的功能,构建交互界面

    public class GoodsSystem {
        Scanner scanner=new Scanner(System.in);
        Random random=new Random();
        AccountDAO accountDAO;
        BrandsDAO brandsDAO;
        GoodsDAO goodsDAO;
        //初始化DAO
        public GoodsSystem(Database database){
            accountDAO=new AccountDAO(database);
            brandsDAO=new BrandsDAO(database);
            goodsDAO=new GoodsDAO(database);
        }
        public void start(){
    //        1.登陆
            System.out.println("----------------商品系统---------------");
            System.out.println("1.登录");
    //        2.注册
            System.out.println("2.注册");
    //        3.退出系统
            System.out.println("3.退出系统");
            System.out.println("请选择:");
            String choose=scanner.next();
            switch(choose){
                //登录
                case "1":
                    login();
                    break;
                //注册
                case "2":
                    regist();
                    break;
                //退出系统
                case "3":
                    System.out.println("系统已经退出");
                    break;
                default:
                    System.out.println("输入错误,请重新输入:");
                    start();
            }
        }
        //登录
        public void login(){
            System.out.println("请输入用户名:");
            String userName=scanner.next();
            System.out.println("请输入密码:");
            String passWord=scanner.next();
            Accounts accounts=accountDAO.searchAccounts(userName);
            String testNum="";
            if(accounts!=null){
                if(accounts.getUserPassword().equals(passWord)){
                    for(int i=0;i<4;i++){
                        int num=random.nextInt(10);
                        testNum=testNum+num;
                    }
                    System.out.println("验证码:"+testNum);
                    System.out.println("请输入验证码:");
                    String testNumInput=scanner.next();
                    if(testNumInput.equals(testNum)) {
                        System.out.println("登录成功");
                        mainMenu();
                    }
                    else{
                        System.out.println("验证码错误,请重新登录");
                        login();
                    }
                }
                else{
                    System.out.println("密码错误,请重新登录");
                    System.out.println("输入任意键执行操作,或输入0返回上一层目录");
                    String choose=scanner.next();
                    if(choose.equals("0"))
                        start();
                    else
                        login();
                }
            }
            else{
                System.out.println("该账户不存在,请重新输入:");
                System.out.println("输入任意键执行操作,或输入0返回上一层目录");
                String choose=scanner.next();
                if(choose.equals("0"))
                    start();
                else
                    login();
            }
        }
        //注册
        public void regist(){
            System.out.println("----注册----");
            //用户名
            System.out.println("请输入用户名:");
            String userName=scanner.next();
            Accounts accounts=accountDAO.searchAccounts(userName);
            while(accounts!=null){
                System.out.println("用户名已经被使用,请重新输入");
                userName=scanner.next();
                accounts=accountDAO.searchAccounts(userName);
            }
            //密码
            System.out.println("请输入密码:");
            String userPassWord=scanner.next();
            System.out.println("确认密码:");
            String testPassWord=scanner.next();
            while(!userPassWord.equals(testPassWord)){
                System.out.println("确认密码与注册密码不相符,请重新输入密码");
                System.out.println("请输入密码:");
                userPassWord=scanner.next();
                System.out.println("确认密码:");
                testPassWord=scanner.next();
            }
            //验证码
            String testNum="";
            for(int i=0;i<4;i++){
                int num=random.nextInt(10);
                testNum=testNum+num;
            }
            System.out.println("验证码:"+testNum);
            System.out.println("请输入验证码:");
            String testNumInput=scanner.next();
            if(testNumInput.equals(testNum)) {
                accountDAO.addAccount(new Accounts(userName,userPassWord));
                System.out.println("注册成功");
                start();
            }
            else{
                System.out.println("验证码错误,请重新注册");
                System.out.println("输入任意键执行操作,或输入0返回上一层目录");
                String choose=scanner.next();
                if(choose.equals("0"))
                    start();
                else
                    regist();
            }
        }
        //主菜单
        public void mainMenu(){
            System.out.println("-------------主菜单------------");
    //        1.热门商品
            System.out.println("1.热门商品");
    //        2.商品查询
            System.out.println("2.商品查询");
    //        3.后台管理
            System.out.println("3.后台管理");
            System.out.println("4.退出系统");
            System.out.println("请输入你的选择:");
            String choose=scanner.next();
            switch (choose){
                case "1"://热门商品
                    hotSell();
                    break;
                case "2"://商品查询
                    searchGoods();
                    break;
                case "3"://后台管理
                    controlGoods();
                    break;
                case "4"://退出系统
                    System.out.println("系统已经退出");
                    break;
                default:
                    mainMenu();
            }
        }
        //热卖商品
        public void hotSell(){
            System.out.println("------------热销商品------------");
            List <Goods>tempor=goodsDAO.hotSell();
            System.out.println("序号\t\t"+"商品"+"\t\t\t\t\t销量\t");
            int num=10;
            if(tempor.size()<10)
                num=tempor.size();
            for(int i=0;i<num;i++){
                System.out.println((i+1)+"\t\t"+tempor.get(i).getGoodsName()+"\t\t\t\t\t"+tempor.get(i).getGoodsSales()+"\t");
            }
            System.out.println("请输入要查询的商品ID或输入0返回上一层菜单。");
            String chooseEnd=scanner.next();
            if(isNumeric(chooseEnd)==true)
            {
                int choose=Integer.parseInt(chooseEnd);
                if(choose==0){
                    mainMenu();
                }
                else
                {
                    if(choose<=num&&choose>=0) {
                        Goods goods = goodsDAO.searchById(choose);
                        System.out.println("商品名称\t\t品牌\t\t价格\t\t类型");
                        System.out.println(goods.getGoodsName() + "\t\t\t" + brandsDAO.findNameById(goods.getBrandsNum()) + "\t" + goods.getGoodsPrice() + "元\t" + goods.getGoodsCategories());
                        mainMenu();
                    }
                    else
                    {
                        System.out.println("查询的序号超过限定,请重新输入");
                        hotSell();
                    }
                }
            }
            else
            {
                System.out.println("输入错误符号,请重新选择");
                hotSell();
            }
        }
        //商品查询
        public void searchGoods(){
            System.out.println("---------商品查询----------");
    //        1.品牌查询
            System.out.println("1.品牌查询");
    //        2.价格查询
            System.out.println("2.价格查询");
            System.out.println("3.返回上一层目录");
            System.out.println("请输入你的选择:");
            String choose=scanner.next();
            switch(choose){
                case "1"://品牌查询
                    searchByBranch();
                    break;
                case "2"://价格查询
                    searchByPrice();
                    break;
                case "3":
                    mainMenu();
                    break;
                default:
                    searchGoods();
            }
        }
        //后台管理
        public void controlGoods(){
            System.out.println("--------后台管理--------");
    //        1.新增商品
            System.out.println("1.新增商品");
    //        2.修改价格
            System.out.println("2.修改价格");
    //        3.删除商品
            System.out.println("3.删除商品");
            System.out.println("4.返回主菜单");
            System.out.println("请输入选择:");
            String choose=scanner.next();
            switch (choose){
                case "1"://新增商品
                    addGoods();
                    break;
                case "2"://修改价格
                    changePrice();
                    break;
                case "3"://删除商品
                    deleteGoods();
                    break;
                case "4"://返回主菜单
                    mainMenu();
                    break;
                default:
                    controlGoods();
            }
        }
        //根据品牌查询
        public void searchByBranch(){
            brandsDAO.findAll();
            System.out.println("请输入要查询的品牌编号:");
            String brandsNum1=scanner.next();
            if(isNumeric(brandsNum1)) {
                int brandsNum=Integer.parseInt(brandsNum1);
                List<Goods> temporlist = goodsDAO.searchByBranchId(brandsNum);
                if (temporlist == null) {
                    System.out.println("没有该品牌的商品");
                    searchGoods();
                }
                for (int i = 0; i < temporlist.size(); i++) {
                    System.out.println("序号" + (i + 1) + "\t" + "商品名字:" + temporlist.get(i).getGoodsName());
                }
                System.out.println("请输入要查询的商品ID或输入0返回上一层菜单。");
                String choose1 = scanner.next();
                if(isNumeric(choose1)) {
                    int choose=Integer.parseInt(choose1);
                    if (choose == 0) {
                        searchGoods();
                    } else {
                        if(choose>=1&&choose<=temporlist.size()){
                            Goods goods = temporlist.get(choose - 1);
                            System.out.println("商品名称:" + goods.getGoodsName() + "\t" + "品牌:" + brandsDAO.findNameById(goods.getBrandsNum()) + "\t" + "价格:" + goods.getGoodsPrice() + "元\t" + "类型:" + goods.getGoodsCategories());
                            searchGoods();
                        }
                        else{
                            System.out.println("输入序号超过边界范围,请重新输入");
                            searchByBranch();
                        }
                    }
                }
                else{
                    System.out.println("输入错误符号,请重新选择");
                    searchByBranch();
                }
            }
            else{
                System.out.println("输入错误符号,请重新选择");
                searchByBranch();
            }
        }
        //根据价格查询
        public void searchByPrice(){
            System.out.println("请输入要查询的价格区间:最小价格  最大价格");
            double minPrice=scanner.nextDouble();
            double maxPrice=scanner.nextDouble();
            List<Goods>temporlist=goodsDAO.searchByPrice(minPrice,maxPrice);
            if(temporlist==null){
                System.out.println("没有该区间的商品");
                searchGoods();
            }
            for(int i=0;i<temporlist.size();i++){
                System.out.println("序号"+(i+1)+"\t"+"商品名字:"+temporlist.get(i).getGoodsName());
            }
            System.out.println("请输入要查询的商品ID或输入0返回上一层菜单。");
            String choose1 = scanner.next();
            if(isNumeric(choose1)) {
                int choose=Integer.parseInt(choose1);
                if (choose == 0) {
                    searchGoods();
                }
                else {
                    if(choose>=1&&choose<=temporlist.size()) {
                        Goods goods = temporlist.get(choose - 1);
                        System.out.println("商品名称:" + goods.getGoodsName() + "\t" + "品牌:" + brandsDAO.findNameById(goods.getBrandsNum()) + "\t" + "价格:" + goods.getGoodsPrice() + "元\t" + "类型:" + goods.getGoodsCategories());
                        searchGoods();
                    }
                    else{
                        System.out.println("输入数字超过边界,请重新输入");
                        searchByPrice();
                    }
                }
            }
            else{
                System.out.println("输入错误符号,请重新选择");
                searchByPrice();
            }
        }
        //新增商品
        public void addGoods(){
            System.out.println("请输入商品名称:");
            String goodsName=scanner.next();
            System.out.println("请输入商品价格:");
            double goodsPrice=scanner.nextDouble();
            System.out.println("请输入品牌");
            String brandsName=scanner.next();
            int brandsNum;
            if(brandsDAO.findBranch(brandsName)){
                brandsNum=brandsDAO.findByName(brandsName).getBrandsNum();
            }
            else{
                brandsNum=brandsDAO.brandsNumbers()+1;
                Brands brands=new Brands(brandsName,brandsNum);
                brandsDAO.addBranch(brands);
            }
            System.out.println("请输入商品类型");
            String goodsCate=scanner.next();
            Goods goods=new Goods(goodsName,goodsPrice,0,goodsCate,brandsNum, UUID.randomUUID().toString());
            goodsDAO.addGoods(goods);
            System.out.println("商品添加成功");
            controlGoods();
        }
        //改变价格
        public void changePrice(){
            System.out.println("--------修改价格------");
            brandsDAO.findAll();
            System.out.println("请输入要查询的品牌编号:");
            String  brandsNum1=scanner.next();
            if(isNumeric(brandsNum1)) {
                int brandsNum=Integer.parseInt(brandsNum1);
                List<Goods> temporlist = goodsDAO.searchByBranchId(brandsNum);
                if (temporlist == null) {
                    System.out.println("没有该品牌的商品");
                    changePrice();
                }
                for (int i = 0; i < temporlist.size(); i++) {
                    System.out.println("序号" + (i + 1) + "\t" + "商品名字:" + temporlist.get(i).getGoodsName() + "\t价格" + temporlist.get(i).getGoodsPrice() + "元");
                }
                System.out.println("请输入要修改价格的商品ID或输入0返回上一层菜单。");
                String choose1 = scanner.next();
                if(isNumeric(choose1)) {
                    int choose=Integer.parseInt(choose1);
                    if (choose == 0) {
                        controlGoods();
                    }
                    else if(choose<=temporlist.size())
                    {
                        System.out.println("请输入要修改的价格:");
                        double price = scanner.nextDouble();
                        System.out.println("是否确定修改价格:是/否");
                        String endChoose = scanner.next();
                        if (endChoose.equals("是")) {
                            goodsDAO.modify(temporlist.get(choose - 1).getGoodsNum(), price);
                            System.out.println("价格修改完成");
                            controlGoods();
                        } else {
                            controlGoods();
                        }
                    }
                    else{
                        System.out.println("输入序号超过边界,请重新输入");
                        changePrice();
                    }
                }
                else{
                    System.out.println("输入错误符号,请重新输入");
                    changePrice();
                }
            }
            else{
                System.out.println("输入错误符号,请重新输入");
                changePrice();
            }
        }
        //删除商品
        public void deleteGoods(){
            System.out.println("--------删除商品------");
            brandsDAO.findAll();
            System.out.println("请输入要查询的品牌编号:");
            String  brandsNum2=scanner.next();
            if(isNumeric(brandsNum2)) {
                int brandsNum=Integer.parseInt(brandsNum2);
                List<Goods> temporlist = goodsDAO.searchByBranchId(brandsNum);
                if (temporlist == null) {
                    System.out.println("没有该品牌的商品");
                    deleteGoods();
                }
                for (int i = 0; i < temporlist.size(); i++) {
                    System.out.println("序号" + (i + 1) + "\t" + "商品名字:" + temporlist.get(i).getGoodsName());
                }
                System.out.println("请输入要删除的商品ID或输入0返回上一层菜单。");
                String choose1 = scanner.next();
                if(isNumeric(choose1)) {
                    int choose=Integer.parseInt(choose1);
                    if (choose == 0) {
                        controlGoods();
                    }
                    else if(choose<=temporlist.size()){
                        System.out.println("是否确定删除:是/否");
                        String endChoose = scanner.next();
                        if (endChoose.equals("是")) {
                            int brandsNum1 = temporlist.get(choose - 1).getBrandsNum();
                            goodsDAO.delete(temporlist.get(choose - 1).getGoodsNum());
                            System.out.println("删除成功");
                            if (goodsDAO.searchByBranchId(brandsNum1) == null) {
                                brandsDAO.deleteBrands(brandsNum1);
                                brandsDAO.moveBrandsNum(brandsNum1);
                                for (int i = brandsNum1; i <= brandsDAO.brandsNumbers(); i++)
                                    goodsDAO.changeByBranchId(i + 1);
                            }
                            controlGoods();
                        } else {
                            controlGoods();
                        }
                    }
                    else{
                        System.out.println("输入序号超过边界,请重新输入");
                        deleteGoods();
                    }
                }
                else{
                    System.out.println("输入错误符号,请重新输入");
                    deleteGoods();
                }
            }
            else{
                System.out.println("输入错误符号,请重新输入");
                deleteGoods();
            }
        }
        public boolean isNumeric(String str){
            for (int i = str.length();--i>=0;){
                if (!Character.isDigit(str.charAt(i))){
                    return false;
                }
            }
            return true;
        }
    }
    
    

    以上代码部分内部类的导入未填写
    还需要一个测试类运行
    暂且略过

    展开全文
  • 在webshop-prodect项目的qo文件夹下新建如下几个类,这几个类对应着新增商品接口中的各个对象,如下: Attr: import lombok.Data; @Data public class Attr { private Long attrId; private String attrName; ...
  • // 将商品属性和属性子属性中 抽离出来 List < GoodsSellAttributeValueDTO > goodsSellAttributeValueDTO = goodsSellAttributeDTO . stream ( ) . flatMap ( o - > o . getGoodsSellAttributeValueDTO ...
  • 淘淘商城的新增商品中的商品类目选择时,只有父节点,没有子节点。解决方案EasyUITreeNode类中的属性是state,不是status
  • 先看一下图,之前完成了查询...这是新增商品页面的,可以看到这里有一个选择类目,今天先完成该功能。 该功能是个查询操作,我们先来分析一下。 点击父节点,请求初始化子节点动作是tree空间封装好的。没打开...
  • @Autowired private SolrServer solrServer;
  • 需要在Mapper.xml文件中给insert标签内部第一行加上类似如下代码,表示新增完毕后立马查询id。 keyProperty属性填写的是你的实体类的主键字段; order为after时表示是新增完后才返回主键id,如果是before则是新增前...
  • Java电商项目面试--商品模块

    万次阅读 多人点赞 2018-08-24 08:58:42
    面试:商品模块技术要点 1、POJO、BO、VO抽象模型 2、高效分页及动态排序 3、FTP服务对接、富文本上传 一、商品模块功能 前台功能: ...二、后台新增和更新商品 Controller: @Controlle...
  • 使用有赞商城API新增商品

    万次阅读 热门讨论 2015-02-08 13:09:18
    使用有赞开发API添加商品,设置商品品类,分组,价格,图片,描述等信息。
  • * 新增商品 * @param spu * @return */ @PostMapping public ResponseEntity<Void> saveGoods(@RequestBody Spu spu) { try { this.goodsService.save(spu); return new ResponseEntity<>...
  • 简易的java上传商品的程序

    千次阅读 2014-03-06 19:07:00
    //增 返回新增数据的id主键 public int executeInsertReturnId(Connection conn,String sql,Object...objects) throws SQLException{ pstat=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); ...
  • 1. 商品管理业务 2.商品新增操作 3.文件上传操作
  • java爬虫 京东商品页 简单案例

    千次阅读 热门讨论 2016-04-30 13:41:26
    java爬虫 HttpClient HtmlCleaner Xpath mysql 京东
  • public List<SpecParam> querySpecParams(Long gid, Long cid, Boolean searching, Boolean generic) { SpecParam param = new SpecParam(); param.setGroupId(gid); param.setCid(cid);...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,742
精华内容 8,296
关键字:

java新增商品

java 订阅