JAVA+SWING超市销售管理系统开发(JAVA实训作业增删改查)

     一个非常简单的超市销售系统,只涉及增删改查。

1. 登录
两种方式登录系统,这里主要分享管理员登录

最简单的方法,指定账号密码

        JButton button_login = new JButton("登录");
		button_login.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String name = textField_username.getText();
				String password= passwordField.getText();
				if (name.equals("1234") && password.equals("1234"))
				{ 
					GoodsManagerJframe mainJframe = new GoodsManagerJframe(); 
					mainJframe.setVisible(true);	
					dispose();
				}else {
					JOptionPane.showMessageDialog(null, "用户名或密码错误!", "标题",JOptionPane.WARNING_MESSAGE);  
			        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);			        		
					}
				}			
			}
		);

2.菜单
商品的增删改查
在这里插入图片描述
3.商品入库(最简单
向输入框中输入商品信息,保存即可
在这里插入图片描述
添加数据库SQL语句

public void JDBCSQLAdd throws ClassNotFoundException, SQLException {
		// 添加商品
		String sql = "INSERT INTO `goodstable` VALUES(?,?,?,?)";// 添加语句
		statement = con.prepareStatement(sql);
		statement.setString(1, number1);
		statement.setString(2, name1);
		statement.setString(3, price1);
		statement.setString(4, stock1);
		int n = statement.executeUpdate();
		if (n > 0) {
			System.out.println("商品入库成功!");
		} else {
			System.out.println("商品入库失败!");
		}
	}

窗口事件处理

//添加事件处理
	private void GoodsTypeAddActionEvent(ActionEvent e) {
		String number= textField_number.getText();
		String name = textField_name.getText();
		String price= textField_price.getText();
		String stock= textField_stock.getText();
		if(StringUtil.isEmpty(number)) {
			JOptionPane.showMessageDialog(null, "商品信息不能为空!");
			return;
		}
		//JDBCSQLAdd add=new JDBCSQLAdd();
		AddDao add=new AddDao();
		try {
			add.JDBCSQLAdd(number,name,price,stock);
		} catch (ClassNotFoundException | SQLException e1) {
			e1.printStackTrace();
		}
		JOptionPane.showMessageDialog(null, "商品已入库!", "标题",JOptionPane.PLAIN_MESSAGE);
		this.resetValue();
		this.Table(new Goods());
	}
	//初始化表格
		public void Table(Goods goods) {
			DefaultTableModel dtm=(DefaultTableModel) table.getModel();
			dtm.setRowCount(0);		
			Connection con=null;
			try {
				con=dbUtil.getCon();
				ResultSet rs=queryDao.list1(con, goods);
				while(rs.next()) {
					Vector v =new Vector();
					v.add(rs.getString ("Number"));
					v.add(rs.getString ("Name"));
					v.add(rs.getString ("Price"));
					v.add(rs.getString("Stock"));
					dtm.addRow(v);
				}
			}catch(Exception e) {
				e.printStackTrace();
			}finally{
	      try {			
		          dbUtil.close(con);;
				} catch (Exception e) {
					e.printStackTrace();
				}
			}			
		}
		
		//重置表单
		private void resetValue(){
			this.textField_number.setText("");
			this.textField_name.setText("");
			this.textField_price.setText("");
			this.textField_stock.setText("");
		}

4.查询商品
按名称查找
在这里插入图片描述
查找数据库SQL语句

public class QueryDao {
//按名称查找
	public ResultSet list(Connection con,Goods goods) throws SQLException {
		StringBuffer sb =new StringBuffer("select * from goodstable where Name like '%"+goods.getName()+"%'");
		PreparedStatement pstmt=con.prepareStatement(sb.toString());
		return pstmt.executeQuery();
	}

窗口事件处理

//商品搜索事件处理
	private void GoodsSearchActionPerformed(ActionEvent evt) {
		String Name=this.textField_name.getText();	
		Goods goods=new Goods();
		goods.setName(Name);
	   if(StringUtil.isEmpty(Name)) {
		   JOptionPane.showMessageDialog(null, "请输入商品名称!");
		   return;
	   }else {
		   this.resetValue();
			this.Table(goods);
	   }
	}
//初始化表格
	public void Table(Goods goods) {
		DefaultTableModel dtm=(DefaultTableModel) bookTypeTable.getModel();
		dtm.setRowCount(0);
		Connection con=null;
		try {
			con=dbUtil.getCon();
			ResultSet rs=goodsTypeDao.list(con, goods);
			while(rs.next()) {
				Vector v =new Vector();
				v.add(rs.getInt ("Number"));
				v.add(rs.getString ("Name"));
				v.add(rs.getString ("Price"));
				v.add(rs.getString ("Stock"));
				dtm.addRow(v);
			}
		}catch(Exception e) {
			e.printStackTrace();
		}finally{
      try {			
	          dbUtil.close(con);;
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		}
	//刷新表格
	private void resetValue(){
		this.textField_name.setText("");
	}

5.商品出库
先按名称查找到需要删除的商品,随即删除
在这里插入图片描述
删除数据库SQL语句

public class DeleteDao {
	public int delete(Connection con,Goods goods) throws SQLException {
		String sql="DELETE FROM `goodstable`  WHERE Name=  ?  ";
		PreparedStatement pstmt=con.prepareStatement(sql);		
		pstmt.setString(1, goods.getName());		
		return pstmt.executeUpdate();
	}
}

窗口事件处理

//删除事件处理
	private void GoodsDeleteActionPerformed(ActionEvent e) {
		String name= textField_name.getText();
		textField_name.setText("");							
		
		DeleteDao d=new DeleteDao();
		try {			
			d.JDBCSQLDelete(name);
			JOptionPane.showConfirmDialog(null, "确定要删除该记录吗?");
			
		} catch (SQLException e1) {
			e1.printStackTrace();
		} catch (ClassNotFoundException e1) {
			e1.printStackTrace();
		}
		if(StringUtil.isEmpty(name)) {
			JOptionPane.showMessageDialog(null, "商品出库成功!", "标题",JOptionPane.PLAIN_MESSAGE);
		}else {
		
		this.resetValue();
		this.Table(new Goods());
	}
		}
//查找事件处理
	private void GoodsSearchActionPerformed(ActionEvent e) {
		String Name=this.textField_name.getText();	
		Goods goods=new Goods();
		goods.setName(Name);	   
	    this.resetValue();
		this.Table(goods);
	}
	//初始化表格
		public void Table(Goods goods) {
			DefaultTableModel dtm=(DefaultTableModel) table.getModel();
			dtm.setRowCount(0);
			Connection con=null;
			try {
				con=dbUtil.getCon();
				ResultSet rs=goodsTypeDao.list(con, goods);
				
				while(rs.next()) {
					Vector v =new Vector();
					v.add(rs.getString ("Number"));
					v.add(rs.getString ("Name"));
					v.add(rs.getString ("Price"));
					v.add(rs.getString ("Stock"));
					dtm.addRow(v);
				}
			}catch(Exception e) {
				e.printStackTrace();
			}finally{
	      try {			
		          dbUtil.close(con);;
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			}
		//刷新表格
		private void resetValue(){
			this.textField_number.setText("");
			this.textField_name.setText("");
			this.textField_price.setText("");
			this.textField_stock.setText("");
		}

6.修改商品(最难
修改前要查找(按名称查找),点击表格获取商品信息,点击商品编号或者商品名称、商品单价、商品库存可以进行修改,修改成功自动保存并且修改数据库中的数据
在这里插入图片描述
修改数据库SQL语句

public class UpdateDao {
	public int update(Connection con,Goods goods) throws SQLException {
		String sql="update goodstable set Name=?,Price=?,Stock=?  where Number=?";
		PreparedStatement pstmt=con.prepareStatement(sql);		
		pstmt.setString(1, goods.getName());
		pstmt.setString(2, goods.getPrice());
		pstmt.setString(3, goods.getStock());
		pstmt.setInt(4,goods.getNumber());			
		return pstmt.executeUpdate();
	}
}

窗口事件处理

//修改事件
	private void GoodsUpdateActionPerformed(ActionEvent e) {
		String Number= textField_u_number.getText();
		String Name = textField_u_name.getText();
		String Price= textField_u_price.getText();
		String Stock= textField_u_stock.getText();
		if(StringUtil.isEmpty(Number)) {
			JOptionPane.showMessageDialog(null, "请选择要修改的记录");
			return;
		}
		Goods goods=new Goods(Integer.parseInt(Number),Name,Price,Stock);
		Connection con=null;
		try {
			con=dbUtil.getCon();
			int modifyNum=updateDao.update(con, goods);
			if(modifyNum==1) {
				JOptionPane.showMessageDialog(null, "修改成功");
				this.resetValueUpdate();
				this.fillTable1(new Goods());
			}else {
				JOptionPane.showMessageDialog(null, "修改失败");
			}
		} catch (Exception e1) {
			e1.printStackTrace();
	}
//查找事件
	private void GoodsSearchActionPerformed(ActionEvent e) {
		String Name=this.textField_s_name.getText();	
		Goods goods=new Goods();
		goods.setName(Name);							
	    this.resetValueQuery();
		this.Table(goods);
	}
//初始化查询表格
		public void Table(Goods goods) {
			DefaultTableModel dtm=(DefaultTableModel) table.getModel();
			dtm.setRowCount(0);		
			Connection con=null;
			try {
				con=dbUtil.getCon();
				ResultSet rs=queryDao.list(con, goods);
				
				while(rs.next()) {
					Vector v =new Vector();
					v.add(rs.getString ("Number"));
					v.add(rs.getString ("Name"));
					v.add(rs.getString ("Price"));
					v.add(rs.getString("Stock"));
					dtm.addRow(v);
				}
			}catch(Exception e) {
				e.printStackTrace();
			}finally{
	      try {			
		          dbUtil.close(con);;
				} catch (Exception e) {
					e.printStackTrace();
				}
			}			
		}
	//初始化修改表单
				public void fillTable1(Goods goods) {
					DefaultTableModel dtm=(DefaultTableModel) table.getModel();
					dtm.setRowCount(0);		
					Connection con=null;
					try {
						con=dbUtil.getCon();
						ResultSet rs=queryDao.list1(con, goods);
						
						while(rs.next()) {
							Vector v =new Vector();
							v.add(rs.getString ("Number"));
							v.add(rs.getString ("Name"));
							v.add(rs.getString ("Price"));
							v.add(rs.getString("Stock"));
							dtm.addRow(v);
						}
					}catch(Exception e) {
						e.printStackTrace();
					}finally{
			      try {			
				          dbUtil.close(con);;
						} catch (Exception e) {
							e.printStackTrace();
						}
					}			
				}
//重置更新表单
		private void resetValueUpdate(){
			this.textField_u_number.setText("");
			this.textField_u_name.setText("");
			this.textField_u_price.setText("");
			this.textField_u_stock.setText("");
		}
//重置查询表单
		private void resetValueQuery(){
			this.textField_s_name.setText("");
}

源码连接
链接: https://pan.baidu.com/s/1iM0kv1nmZsmWZcOIwEsAvQ?pwd=cikr 提取码: cikr 复制这段内容后打开百度网盘手机App,操作更方便哦

开发工具:eclipse
数据库:Access、连接ODBC

  • 26
    点赞
  • 168
    收藏
    觉得还不错? 一键收藏
  • 27
    评论
销售管理系统使用说明书 主要功能 销售管理系统由基础信息、基础资料、业务管理、信息查询、辅助工具、系统设置、个人设置等模块组成,其规划功能模块如下: 基础信息 基础信息主要实现员工职务、单位类型、计量单位、支付方式、银行名称、企业资信、商品类别等功能。 基础资料 基础资料主要实现企业档案管理、商品资料管理等功能。 业务管理 业务管理主要实现订货业务、出货业务、退货业务等功能。 信息查询 信息查询主要实现订货业务查询、出货业务查询、退货业务查询、区域信息查询等功能。 辅助工具 辅助工具主要实现调用Word文档、调用Excel文档、调用计算器等功能。 系统设置 系统设置主要实现员工管理、员工权限管理、公司简介设置等功能。 个人设置 个人设置主要实现修改密码、修改个人信息等功能。 操作注意事项 用户在使用《销售管理系统》之前,应注意以下事项: (1)管理员用户名和密码为:mr、mrsoft。 业务流程 要想运行本系统,请按照以下流程操作: (1)在登录界面中单击“新用户注册”按钮,注册用户名和密码,然后由超级管理员进行分配权限。 (2)在登录界面中输入用户名和密码,进入系统,首先在“基础信息”中添加基本信息。 (3)在“基础资料”中添加商品信息,单击“详细信息”按钮,在商品详细信息页面中可以增加进货数量。 (4)在“业务管理”中可以执行出货及退货操作。 (5)在“信息查询”中可对出货信息、退货信息及区域信息进行查询。
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值