JavaGUI实现超市信息管理系统界面(基于Oracle数据库)

java 专栏收录该内容
9 篇文章 0 订阅

1.项目设计
这次为大家带来的是基于Oracle数据库下的GUI超市信息管理系统,因还处于Java学习阶段,代码如有缺陷,还请多多指教。话不多说,下面是本次管理系统的主要框架。

本项目模拟真实的超市管理模式,以管理员为面向对象,所要实现的功能是基本的增删改查,具体实现步骤如下:

管理员登录
进入欢迎界面
进入仓库管理界面
管理员进行增删改查

1.1管理员登录界面Login
在这里插入图片描述
在这里插入图片描述

此界面的重点在于对三个按钮的监听:

  • 登录按钮logbt:对用户名、密码输入正确与否的判断
  • 重置按钮resetbt:用户对当前输入内容进行重置
  • 退出按钮exitbt:用户退出登录(这里设置直接退出系统)

部分代码如下:

//定义一个登录界面Login

package cn.itcast.SuperMarketTest.view;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

@SuppressWarnings("serial")
public class Login extends JFrame implements ActionListener{//继承窗体类

	 private JLabel username_label;//定义用户名标签
	 private JLabel pwd_label;//定义密码标签
	 private JLabel permit_label;//定义权限标签
	 private JTextField text1;
	 private JPasswordField text2;//定义文本框对象
	 private JRadioButton jrb1;//定义权限按钮
	 private Button logbt;
	 private Button resetbt;//定义按钮对象
	 private Button exitbt;//定义按钮对象
	 private ButtonGroup bg;
	
	 final String username="admin"; 
	 final String pwd="aaaaaa";
	 JPanel panel;
	
	public Login()
	{
	   this.setSize(700, 600);//设置窗体的大小
	   GUITools.center(this);
	   this.setTitle("超市管理系统");//设置窗体标题
	   this.setLayout(null);//将窗体的默认布局方式设置为无布局方式
		
		username_label = new JLabel("用户名");
	    pwd_label = new JLabel("密    码");
		permit_label = new JLabel("权    限");
		
		
		logbt = new Button("登录");
		resetbt = new Button("重置");
		exitbt = new Button("退出");

		jrb1=new JRadioButton("管理员"); 
		bg=new ButtonGroup(); 
		bg.add(jrb1); 
		jrb1.setSize(100,20);
		jrb1.setLocation(263,290);
		jrb1.setSelected(true); //初始页面默认选择权限为管理员
		
		
	    //设置标签的参数
	    username_label.setSize(60, 37);
	    username_label.setLocation(190,150);
	   
	    
	    pwd_label.setSize(60, 37);
	    pwd_label.setLocation(190,215);
	
	    
	    permit_label.setSize(130, 40);
	    permit_label.setLocation(190,280);
	
	    
	    text1=new JTextField();
	    text1.setSize(180,30);
	    text1.setLocation(270, 155);
	    text1.setFont(new Font("宋体",Font.PLAIN,20));

	    
	    text2=new JPasswordField();
	    text2.setSize(180,30);
	    text2.setLocation(270, 220);
	    text2.setFont(new Font("宋体",Font.PLAIN,20));

	    
	    logbt.setSize(45,30);
	    logbt.setLocation(230,350);

	    
	    resetbt.setSize(45,30);
	    resetbt.setLocation(310,350);

	    
	    exitbt.setSize(45,30);
	    exitbt.setLocation(390,350);

	    
		logbt.addActionListener(this);
		resetbt.addActionListener(this);
		exitbt.addActionListener(this);
		
		
		this.add(username_label);
		this.add(pwd_label);
		this.add(permit_label);
		this.add(text1);
		this.add(text2);
		this.add(jrb1);
		this.add(logbt);
		this.add(resetbt);
		this.add(exitbt);
		
		this.setVisible(true);//设置窗体可见
	}


	@Override
	public void actionPerformed(ActionEvent e) {
		
		if(e.getActionCommand()=="登录") 
		  { 
			adminlogin();        //连接到管理员界面方法
		  }
		
		else if(e.getActionCommand()=="重置") { 
			clear();
		}
		
	    else if(e.getActionCommand()=="退出") { 
	    	System.exit(0);
	}
		
		}
	@SuppressWarnings("deprecation")
	public void adminlogin() 
	 { 
	  if(username.equals(text1.getText())&&pwd.equals(text2.getText())) 
	  { 

	    JOptionPane.showMessageDialog(null,"登录成功!","提示消息",JOptionPane.WARNING_MESSAGE); 
	    clear();   
	    dispose();   
	   
	    this.remove(username_label);
		this.remove(pwd_label);
		this.remove(permit_label);
		this.remove(text1);
		this.remove(text2);
		this.remove(jrb1);
		this.remove(logbt);
		this.remove(resetbt);
		this.remove(exitbt);
	    
	    JPanel panel = new Enter();
	    
		//创建欢迎面板
		panel.setLocation(0,0);
		this.add(panel);
		this.repaint();
		this.setVisible(true);
	    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置当关闭窗口时,保证JVM也退出 
	   
	  }else if(text1.getText().isEmpty()&&text2.getText().isEmpty()) 
	  { 
	   JOptionPane.showMessageDialog(null,"请输入用户名和密码!","提示消息",JOptionPane.WARNING_MESSAGE); 
	  }else if(text1.getText().isEmpty()) 
	  { 
	   JOptionPane.showMessageDialog(null,"请输入用户名!","提示消息",JOptionPane.WARNING_MESSAGE); 
	  }else if(text2.getText().isEmpty()) 
	  { 
	   JOptionPane.showMessageDialog(null,"请输入密码!","提示消息",JOptionPane.WARNING_MESSAGE); 
	  }else 
	  { 
	   JOptionPane.showMessageDialog(null,"用户名或者密码错误!\n请重新输入","提示消息",JOptionPane.ERROR_MESSAGE); 
	   clear(); //清空输入框 
	  } 
	 } 


	//清空文本框和密码框 
	 public void clear() 
	 { 
	  text1.setText(""); 
	  text2.setText(""); 
	 } 
	 
}


2.1欢迎界面Enter
在这里插入图片描述
欢迎界面是个过渡界面实现的内容相对较少,可写可不写

本界面 主要针对按钮进行了部分优化并设置了面板的背景显示 用户通过点击“进入系统”按钮进入到“管理界面”

部分代码如下:

//定义欢迎界面Enter

package cn.itcast.SuperMarketTest.view;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
//超市管理系统界面
@SuppressWarnings("serial")
public class Enter extends JPanel  implements ActionListener {
	
	private JLabel label1 = new  JLabel("超市管理系统欢迎您!");
	private ImageIcon image=new ImageIcon("images/4.png");
	private JLabel label2 = new JLabel(image);
	private JButton bt1=new JButton("进入系统");
	JPanel panel;
	   
	public  Enter(){
		//设置属性
		this.setSize(700,600);
		GUITools.center(this);
		this.setLayout(null);
		this.setVisible(true);
		
		label2.setSize(700,600);
		GUITools.center(this);
		this.add(label2);
		
		label1.setBounds(220,40,500,300);
		label1.setFont(new Font("宋体",Font.PLAIN,25));		
		this.add(label1);
		this.setVisible(true);
		
		bt1.setBounds(295,465,100,35);
		bt1.setFont(new Font("宋体",Font.PLAIN,16));
		bt1.setBackground(Color.white);
		//bt1.setContentAreaFilled(false); //透明度
		bt1.setFocusPainted(false); //去掉按钮中文体的边框
		bt1.setBorderPainted(false); //去掉边框
		bt1.addActionListener(this);
		this.add(bt1);
		
		this.setVisible(true);
	}

			
	@Override
	public void actionPerformed(ActionEvent e) {
			if(panel!=null)
			{
				this.remove(panel);
			}
			if(e.getActionCommand()=="进入系统"){
					
				this.removeAll();
				showAdminDialog();
				this.setSize(700,600);
				this.repaint();
				this.setVisible(true);
			}
		}
		public JPanel showAdminDialog(){
			new AdminDialogController().setVisible(true);
			return panel;
		}
}

3.1仓库管理系统界面
在这里插入图片描述

本界面为管理系统的核心界面,实现了管理员对整个货物系统的增删改查操作
货物列表显示目前仓库的货物基本信息

添加Add():输入相应的属性参数,若用户对后台在库的货物信息进行操作则弹窗提示并要求用户重新输入
修改Update():输入要修改的参数,若用户对后台没在库的货物信息进行操作则弹窗提示并要求用户重新输入
查询Find():输入货物编号查询相关信息
删除Delete():删除相应编号的一条信息记录

部分代码如下:


    //定义管理窗口类AbstractAdminDialog
    
    package cn.itcast.SuperMarketTest.view;
    
    import java.awt.Font;
    import java.awt.Frame;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.*;
    
    //管理窗口类
    @SuppressWarnings("serial")
    public abstract class AbstractAdminDialog extends JDialog{
    	//定义界面使用到的组件
    	//成员变量
    	
	private JLabel tableLabel = new JLabel("货物列表");//标题
	private JScrollPane tablePane = new JScrollPane();//滚动视口
	protected JTable table = new JTable();//货物列表 
	private JLabel numLabel = new JLabel("货物编号");
	private JLabel nameLabel = new JLabel("货物名称");
	private JLabel priceLabel = new JLabel("货物单价");
	private JLabel countLabel = new JLabel("货物数量");
	//添加功能组件
	protected JTextField addnumText = new JTextField();//添加编号文本框
	protected JTextField addnameText = new JTextField();//添加名称文本框
	protected JTextField addpriceText = new JTextField();//添加单价文本框
	protected JTextField addcountText = new JTextField();//添加货物数量文本框
	private JButton addBtn = new JButton("添加");
	
	//修改功能组件
	protected JTextField updatenumText = new JTextField();//修改编号文本框
	protected JTextField updatenameText = new JTextField();//修改名称文本框
	protected JTextField updatepriceText = new JTextField();//修改单价文本框
	protected JTextField updatecountText = new JTextField();//修改货物数量文本框
	
	private JButton updateBtn = new JButton("修改");
	//删除功能组件
	
	protected JTextField delnumText = new JTextField();//删除编号文本框
	private JButton delBtn = new JButton("删除");
	
	//查询功能组件
	protected JTextField searchnumText = new JTextField();//查询编号文本框
	private JButton findBtn = new JButton("查询");
	
	//构造方法
	public AbstractAdminDialog(Frame owner,boolean modal){
		super(owner,modal);
		this.init();
		this.addComponent();
		this.addListener();
	}
	public AbstractAdminDialog() {
		this(null,true);
	}
	//初始化
	private void init() {
		this.setTitle("超市管理系统");
		this.setSize(700, 600);
		this.setLocation(150, 30);
		GUITools.center(this);
		this.setResizable(false);
		
	}
	//添加组件
	private void addComponent() {
		this.setLayout(null);
		//表格标题
		tableLabel.setBounds(320, 15, 100, 20);//设置位置大小
		tableLabel.setFont(new Font("宋体",Font.PLAIN,16));//字体
		this.add(tableLabel);
		//表格
		table.getTableHeader().setReorderingAllowed(false);//列不可移动
		table.getTableHeader().setResizingAllowed(false);//不可拉动表格
		table.setEnabled(false);//不可更改数据
		tablePane.setBounds(30,50,630,270);
		tablePane.setViewportView(table);
		this.add(tablePane);
		//字段标题
		numLabel.setBounds(30, 330, 100, 30);//放置四个标签
		numLabel.setFont(new Font("宋体",Font.PLAIN,16));
		nameLabel.setBounds(150, 330, 100, 30);
		nameLabel.setFont(new Font("宋体",Font.PLAIN,16));
		priceLabel.setBounds(280, 330, 100, 30);
		priceLabel.setFont(new Font("宋体",Font.PLAIN,16));
		countLabel.setBounds(410, 330, 100, 30);
		countLabel.setFont(new Font("宋体",Font.PLAIN,16));
		this.add(numLabel);
		this.add(nameLabel);
		this.add(priceLabel);
		this.add(countLabel);
		//增加
		addnumText.setBounds(30, 360, 80, 30);
		addnameText.setBounds(150, 360, 80, 30);
		addpriceText.setBounds(280, 360, 80, 30);
		addcountText.setBounds(410, 360, 80, 30);
		
		this.add(addnumText);
		this.add(addnameText);
		this.add(addpriceText);
		this.add(addcountText);
		
		addBtn.setBounds(540, 360, 80, 30);
		addBtn.setFont(new Font("宋体",Font.PLAIN,16));
		this.add(addBtn);
		//修改
		updatenumText.setBounds(30, 410, 80, 30);
		updatenameText.setBounds(150, 410, 80, 30);
		updatepriceText.setBounds(280, 410, 80, 30);
		updatecountText.setBounds(410, 410, 80, 30);
		
		this.add(updatenumText);
		this.add(updatenameText);
		this.add(updatepriceText);
		this.add(updatecountText);
		
		updateBtn.setBounds(540, 410, 80, 36);
		updateBtn.setFont(new Font("宋体",Font.PLAIN,16));
		this.add(updateBtn);
		
		//删除
		delnumText.setBounds(30, 510, 80, 36);//510
		this.add(delnumText);
		
		delBtn.setBounds(540, 510, 80, 36);//510
		delBtn.setFont(new Font("宋体",Font.PLAIN,16));
		this.add(delBtn);
		
		//查询
		searchnumText.setBounds(30, 460, 80, 36);//460
		this.add(searchnumText);
		
		findBtn.setBounds(540, 460, 80, 36);//460
		findBtn.setFont(new Font("宋体",Font.PLAIN,16));
		this.add(findBtn);
	}
	//添加监听器
	private void addListener() {
		//添加按钮监听
		addBtn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e){
				//调用修改方法
				addGoodsItem();
				
			}
		});
		//修改按钮监听
		updateBtn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e){
				//调用修改方法
				updateGoodsItem();
			}
		});
		//删除按钮监听
		delBtn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e){
				//调用修改方法
				delGoodsItem();
			}
		});
		
		//查询按钮监听
		findBtn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e){
				//调用修改方法
				//queryGoodsItem();
				findGoodsItem();
			}
		});
	}
	//添加
	public abstract void addGoodsItem();
	//修改
	public abstract void updateGoodsItem();
	//删除
	public abstract void delGoodsItem();
	//输出全部表内容
	public abstract void queryGoodsItem();
	//查询
	public abstract void findGoodsItem();
}


    //定义管理员界面操作类AdminDialogController
    
    package cn.itcast.SuperMarketTest.view;
    import java.awt.Frame;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.ArrayList;
    import javax.swing.JOptionPane;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.TableModel;
    
    
    //管理员界面操作
    @SuppressWarnings("serial")
    public class AdminDialogController extends AbstractAdminDialog{
    	private AdminService adminService = new AdminService();
    	public AdminDialogController(){
    		super();
    	}
    	public AdminDialogController(Frame owner,boolean modal){
    		super(owner,modal);
    		//创建对象时展示数据
    		queryGoodsItem();
    	}
    	//查询方法
    	public void queryGoodsItem(){
    		//定义表格头
    		String[] thead = {"货物编号","货物名称","货物单价","货物数量"};
    		//调用adminService 的查询业务
    		ArrayList<GoodsInfo> dataList = new AdminService().queryAllGoodsItem();
    		String[][] tbody = list2Array(dataList);
    		TableModel dataModal = new DefaultTableModel(tbody,thead);
    		table.setModel(dataModal);
    	}
    	//集合数据转为二维数组
    	public String[][] list2Array(ArrayList<GoodsInfo> list){
    		String[][] tbody = new String[list.size()][4];
    		for(int i = 0;i<list.size();i++){
    			GoodsInfo goodsItem = list.get(i);
    			tbody[i][0] = goodsItem.getNum();
    			tbody[i][1] = goodsItem.getName();
    			tbody[i][3] = goodsItem.getPrice();
    			tbody[i][2] = goodsItem.getCount();
    		}
    		return tbody;
    	}
    	//查询方法
    	public void findGoodsItem(){
    		String findnum = searchnumText.getText();
    		
		boolean findSuccess = adminService.findGoodsItem(findnum);
		if(findSuccess){
			queryGoodsItem();
			clear();
		}else{
			JOptionPane.showMessageDialog(this, "超市库存中无此货物编号,请检查数据!");
			clear();
		}
	}
	
	
	//添加方法
	public void addGoodsItem(){
		String addnum = addnumText.getText();
		String addcap = addnameText.getText();
		String addtype = addpriceText.getText();
		String addcount = addcountText.getText();
		
		//调用adminService 的添加服务
		boolean addSuccess = adminService.addGoodsItem(addnum, addcap, addtype, addcount);
		if(addSuccess){
			//添加成功后刷新
			queryGoodsItem();
			clear();
		}else{
			//未添加成功提示
			JOptionPane.showMessageDialog(this, "货物编号不能重复,请检查数据!");
			clear();
		}
	}
	//修改方法
	public void updateGoodsItem(){
		String updatenum = updatenumText.getText();
		String updatecap = updatenameText.getText();
		String updatetype = updatepriceText.getText();
		String updatecount = updatecountText.getText();
		//调用adminService 的添加服务
		boolean updateSuccess = adminService.updateGoodsItem(updatenum, updatecap, updatetype, updatecount);
		if(updateSuccess){
			//修改成功后刷新
			queryGoodsItem();
			clear();
		}else{
			//未修改成功提示
			JOptionPane.showMessageDialog(this, "超市库存中无此货物编号,请检查数据!");
			clear();
		}
	}
	//删除方法
	public void delGoodsItem(){
		String delnum = delnumText.getText();
		boolean delSuccess = adminService.delGoodsItem(delnum);
		if(delSuccess){
			queryGoodsItem();
			clear();
		}else{
			JOptionPane.showMessageDialog(this, "超市库存中无此货物编号,请检查数据!");
			clear();
		}
	}	
	//清除数据
	public void clear(){
		addnumText.setText("");
		addnameText.setText("");
		addpriceText.setText("");
		addcountText.setText("");
		updatenameText.setText("");
		updatenumText.setText("");
		updatepriceText.setText("");
		updatecountText.setText("");
		delnumText.setText("");
		searchnumText.setText("");
		
	}
}

    //定义管理业务类AdminService
    
    package cn.itcast.SuperMarketTest.view;
    import java.util.*;
    
    //管理员业务类
    public class AdminService {
    	private AdminDao adminDao = new AdminDao();
    	
	public boolean findGoodsItem(String num){
		ArrayList<GoodsInfo> data = queryAllGoodsItem();
		//使用输入编号与所有数据对比
		for(int i = 0;i<data.size();i++){
			GoodsInfo goodsItem = data.get(i);
			//若存在编号,则查询成功
			if(num.equals(goodsItem.getNum())){
				return true;
			}	
		}
		return false;
		}
	
	//查询业务
	public ArrayList<GoodsInfo> queryAllGoodsItem(){
		//调用Dao层的获取所有数据方法获取所有数据
		ArrayList<GoodsInfo> data = adminDao.queryAllData();
		return data;
	}
	//查询业务
	public boolean queryGoodsItem(String findnum){
		//调用Dao层的获取所有数据方法获取所有数据
		ArrayList<GoodsInfo> data = queryAllGoodsItem();
		//使用输入编号与所有数据对比
		for(int i = 0;i<data.size();i++){
			GoodsInfo goodsItem = data.get(i);
			//若存在相同编号的数据,则可以删除
			if(findnum.equals(goodsItem.getNum())){
				//调用Dao层的删除指定编号数据方法
				adminDao.del(findnum);
				return true;
			}
		}
		return false;
	}
	//添加业务
	public boolean addGoodsItem(String num,String name,String price,String count){
		ArrayList<GoodsInfo> data = queryAllGoodsItem();
		//使用输入编号与所有数据对比
		for(int i = 0;i<data.size();i++){
			GoodsInfo goodsItem = data.get(i);
			//若存在重复编号则添加不成功
			if(num.equals(goodsItem.getNum())){
				return false;
			}
		}
		//若没有重复编号,将数据封装为GoodsItem对象
		GoodsInfo thisGoodsItem = new GoodsInfo(num,name,price,count);
		adminDao.add(thisGoodsItem);
		return true;
		}
	//修改业务
	public boolean updateGoodsItem(String num,String name,String price,String count){
		ArrayList<GoodsInfo> data = queryAllGoodsItem();
		//使用输入编号与所有数据对比
		for(int i = 0;i<data.size();i++){
			GoodsInfo goodsItem = data.get(i);
			//若存在相同编号的数据,则可以修改
			if(num.equals(goodsItem.getNum())){
				//调用Dao层的删除指定编号数据方法
				adminDao.del(num);
				//若没有重复编号,将数据封装为GoodsItem对象
				GoodsInfo thisGoodsItem = new GoodsInfo(num,name,price,count);
				adminDao.add(thisGoodsItem);
				return true;
			}
		}
		return false;
	}
	//删除业务
	public boolean delGoodsItem(String delNum){
		ArrayList<GoodsInfo> data = queryAllGoodsItem();
		//使用输入编号与所有数据对比
		for(int i = 0;i<data.size();i++){
			GoodsInfo goodsItem = data.get(i);
			//若存在相同编号的数据,则可以删除
			if(delNum.equals(goodsItem.getNum())){
				//调用Dao层的删除指定编号数据方法
				adminDao.del(delNum);
				return true;
			}
		}
		return false;
	}
}

    //直连数据库类JDBCUtils 
    package cn.itcast.SuperMarketTest.view;
    
    import java.sql.*;
    
    //加载数据库驱动,并建立数据库连接
    	public class JDBCUtils {
    		public static Connection getConnection() throws SQLException,ClassNotFoundException{
    		Class.forName("oracle.jdbc.driver.OracleDriver");
    		// 加载jdbc连接oracle的驱动
    		String url="jdbc:oracle:thin:@localhost:1521:orcl";
		String username="scott";
		String password="admin";
		Connection conn=DriverManager.getConnection(url,username,password);
		conn.createStatement();
		// 用上面定义好的连接字符串,用户名和密码来创建数据库连接对象
		System.out.println("数据库连接成功");
		return conn;
		}
	//关闭数据库连接,释放资源
		public static void release(Statement stmt,Connection conn){
			if(stmt!=null)
			{
				try{
					stmt.close();
				}catch (SQLException e){
					e.printStackTrace();
				}
				stmt=null;
			}
			if(conn!=null){
				try{
					conn.close();
				}catch (SQLException e){
					e.printStackTrace();
				}
				conn=null;
			}
		}
		public static void release(ResultSet rs,Statement stmt,Connection conn){
			if(rs!=null){
				try{
					rs.close();
				}catch(SQLException e){
					e.printStackTrace();
				}
				rs=null;
			}
			release(stmt,conn);
		}

	
    }  
    //对货物信息表进行操作的数据访问类
        
    package cn.itcast.SuperMarketTest.view;
    
    import java.sql.*;
    import java.util.ArrayList;
    
    public class AdminDao {
    	//获取所有数据
    	public ArrayList<GoodsInfo> queryAllData(){
    		Connection conn = null;
    		Statement stmt = null;
    		ResultSet rs = null;
    		ArrayList<GoodsInfo> list = new ArrayList<GoodsInfo>();
    		try{
    			//获得数据的连接
    			conn = JDBCUtils.getConnection();
    			//获得Statement 对象
    			stmt = conn.createStatement();
    			//发送SQL语句
    			String sql = "SELECT * FROM cangku";
    			rs = stmt.executeQuery(sql);
    			//处理结果集
    			while(rs.next()){
    				GoodsInfo sgoods = new GoodsInfo();
    				sgoods.setNum(rs.getString("cnumber"));
    				sgoods.setName(rs.getString("cname"));
    				sgoods.setPrice(rs.getString("cprice"));
    				sgoods.setCount(rs.getString("ccount"));
    
    				list.add(sgoods);
    			}
    			return list;
    } catch (Exception e){
    			e.printStackTrace();
    		} finally {
    			JDBCUtils.release(rs,stmt,conn);//关闭数据库
    		}
    		return null;
    	}
    	//查询数据
    	public void find(String cnumber){	
    		Connection conn=null;
    		Statement stmt=null;
    		ResultSet rs=null;
    		try{
    			//获得数据的连接
    			conn = JDBCUtils.getConnection();
    			//获得Statement对象
    			stmt = conn.createStatement();
    			//发送SQL语句
    			String sql = "select * from cangku where cnumber='"+cnumber+"'";
    			int num = stmt.executeUpdate(sql);
    			if(num>0){
    				System.out.println("查询数据成功!");
    			}
    		}catch(Exception e){
    			e.printStackTrace();
    		}finally{
    			JDBCUtils.release(rs,stmt,conn);
    		}
    		
    	}
    	//添加数据
	public void add(GoodsInfo mr){
		Connection conn=null;
		Statement stmt=null;
		ResultSet rs=null;
		try{
			//获得数据的连接
			conn = JDBCUtils.getConnection();
			//获得Statement对象
			stmt = conn.createStatement();
			//发送SQL语句
			String sql = "INSERT INTO cangku VALUES('"+mr.getNum()+"','"+mr.getName()+"','"+mr.getPrice()+"','"+mr.getCount()+"')";
			int num = stmt.executeUpdate(sql);
			if(num>0){
				System.out.println("插入数据成功!");
			}
		}catch(Exception e){
				e.printStackTrace();
			}finally{
				JDBCUtils.release(rs,stmt,conn);
			}
		
	}
	//删除数据
	public void del(String delNumber){
		Connection conn=null;
		Statement stmt=null;
		ResultSet rs=null;
		try{
			//获得数据的连接
			conn = JDBCUtils.getConnection();
			//获得Statement对象
			stmt = conn.createStatement();
			//首先执行查询语句判断商品存在
			rs=stmt.executeQuery("select * from cangku where cnumber='"+delNumber+"'");
			System.out.println(delNumber);
			if (rs.next()){
				//将删除的数据放入历史表
				//String strSQL = "insert into cangku_hs(cnumber,cname,cprice,ccount) values('"+rs.getString(1)+"','"+rs.getString(2)+"','"+rs.getString(3)+"','"+rs.getString(4)+"')";
				//System.out.println(strSQL.toString());
				//stmt.execute(strSQL.toString());
				//发送SQL语句
				String sql = "DELETE FROM cangku WHERE cnumber='"+delNumber+"'";
				System.out.println(sql.toString());
				int num = stmt.executeUpdate(sql);
				if(num>0){
					System.out.println("删除数据成功!");
				}
			}
		}
		catch(Exception e){
			e.printStackTrace();
		}
		finally{
			JDBCUtils.release(rs,stmt,conn);
		}
	}
	//修改数据
	public void update(GoodsInfo mr){
		Connection conn=null;
		Statement stmt=null;
		ResultSet rs=null;
		try{
			//获得数据的连接
			conn = JDBCUtils.getConnection();
			//获得Statement对象
			stmt = conn.createStatement();
			//发送SQL语句
			String sql = "UPDATE cangku set cname='"+mr.getNum()+"',cprice="+mr.getPrice()+"',ccount='"+mr.getPrice()+"' where cnumber='"+mr.getCount()+"'";
			int num = stmt.executeUpdate(sql);
			if(num>0){
				System.out.println("插入数据成功!");
			}
		}catch(Exception e){
				e.printStackTrace();
			}finally{
				JDBCUtils.release(rs,stmt,conn);
			}
	}
    }    
    
    //创建超市货物数据模型GoodsInfo
    
    package cn.itcast.SuperMarketTest.view;
    
    //超市货物数据模型
    public class GoodsInfo {
    	//超市货物的私有属性
    	private String num;//货物名称
    	private String name;//货物名称
    	private String price;//货物单价
    	private String count;//货物数量
    	//构造方法
    	public GoodsInfo(){
    		
    	}
    	public GoodsInfo(String num,String name,String price,String count){
    		//有参构造方法
    		super();
    		this.num=num;
    		this.name=name;
    		this.price=price;
    		this.count=count;
	}
	
	public String getNum(){
		return num;
	}
	public void  setNum(String num){
		this.num = num;
	}
	
	public String getName(){
		return name;
	}
	public void  setName(String name){
		this.name = name;
	}
	
	public String getPrice(){
		return price;
	}
	public void  setPrice(String price){
		this.price = price;
	}
	
	public String getCount() {
		return count;
	}
	public void setCount(String count) {
		this.count = count;
	}
}	

Oracle数据库的相关创建在此就不多做赘述,本次超市管理系统代码还需进行优化,功能也不够完善,虽然GUI现在用的很少,但目前阶段多做练习也有一定的好处。至此,基于Oracle数据库下的JavaGUI实现的超市管理系统的所有内容均展示完毕,请多多指教。

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值