Java+Swing+mysql5实现超市商品管理系统



一、系统介绍

1.系统功能

1.登录系统
2.添加商品
3.商品列表
4.查询商品
5.修改商品
6.删除商品
7.退出系统

2.环境配置

JDK版本:1.8
Mysql:5.7

3.数据库

/*
SQLyog Enterprise v12.09 (64 bit)
MySQL - 5.7.14 : Database - swing_goods
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`swing_goods` /*!40100 DEFAULT CHARACTER SET latin1 */;

USE `swing_goods`;

/*Table structure for table `goods` */

DROP TABLE IF EXISTS `goods`;

CREATE TABLE `goods` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`number` int(11) DEFAULT NULL,
`price` decimal(10,2) DEFAULT '0.00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

/*Data for the table `goods` */

insert into `goods`(`id`,`name`,`number`,`price`) values (1,'农夫山泉矿泉水',100,'3.00'),(2,'优乐美奶茶',200,'10.00');

/*Table structure for table `user` */

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) DEFAULT NULL,
`userpass` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

/*Data for the table `user` */

insert into `user`(`id`,`username`,`userpass`) values (1,'admin','123456');

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

4.工程截图

Java+Swing+mysql5实现超市商品管理系统_sql

二、系统展示

1.登录页

Java+Swing+mysql5实现超市商品管理系统_sql_02

1.1登录成功

Java+Swing+mysql5实现超市商品管理系统_mysql_03

2.添加商品

Java+Swing+mysql5实现超市商品管理系统_sql_04

3.商品列表

Java+Swing+mysql5实现超市商品管理系统_java_05

4.查询商品

Java+Swing+mysql5实现超市商品管理系统_mysql_06

5.修改商品

Java+Swing+mysql5实现超市商品管理系统_mysql_07

6.删除商品

Java+Swing+mysql5实现超市商品管理系统_java_08
Java+Swing+mysql5实现超市商品管理系统_mysql_09
Java+Swing+mysql5实现超市商品管理系统_mysql_10

7.退出系统

Java+Swing+mysql5实现超市商品管理系统_java_11

三、部分代码

DBConn.java

package cn.com.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;

public class DBConn {
private static String driverName = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/swing_goods?characterEncoding=utf8";
private static String userName = "root";
private static String password = "root";
private Connection conn;
private Statement stmt;

public DBConn() {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}

/**
* 连接数据库
*
* @return
* @throws SQLException
*/
public Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, userName, password);
}


/**
* 释放资源
*/
public void close() {
try {
if (conn != null) {
conn.close();
}
if (stmt != null) {
stmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}

}

LoginFrm.java

package cn.com.view;


import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;

import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.border.EmptyBorder;

import cn.com.dao.UserDao;
import cn.com.model.User;
import cn.com.util.DBConn;
import cn.com.util.StringUtil;

public class LoginFrm extends JFrame {

private JPanel contentPane;
private JTextField username_txt;
private JPasswordField password_txt;

private DBConn db=new DBConn();

private UserDao userDao=new UserDao();

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
LoginFrm frame = new LoginFrm();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public LoginFrm() {
setResizable(false);
setTitle("\u7BA1\u7406\u5458\u767B\u5F55");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);

JLabel lblNewLabel = new JLabel("\u8D85\u5E02\u5546\u54C1\u7BA1\u7406\u7CFB\u7EDF");
lblNewLabel.setFont(new Font("微软雅黑", Font.PLAIN, 24));

JLabel lblNewLabel_1 = new JLabel("\u7528\u6237\u540D:");

JLabel lblNewLabel_2 = new JLabel("\u5BC6\u7801:");

username_txt = new JTextField();
username_txt.setColumns(10);

password_txt = new JPasswordField();

JButton btnNewButton = new JButton("\u767B\u5F55");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
LoginActionPerformed(e);
}
});

JButton btnNewButton_1 = new JButton("\u91CD\u7F6E");
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ResetActionPerformed(e);
}

});
GroupLayout gl_contentPane = new GroupLayout(contentPane);
gl_contentPane.setHorizontalGroup(
gl_contentPane.createParallelGroup(Alignment.TRAILING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(114)
.addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING)
.addGroup(gl_contentPane.createSequentialGroup()
.addComponent(lblNewLabel_2)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(password_txt, 224, 224, 224)
.addPreferredGap(ComponentPlacement.RELATED))
.addGroup(gl_contentPane.createSequentialGroup()
.addComponent(lblNewLabel_1)
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
.addComponent(lblNewLabel)
.addComponent(username_txt, 226, 226, 226))))
.addGap(48))
.addGroup(Alignment.LEADING, gl_contentPane.createSequentialGroup()
.addGap(153)
.addComponent(btnNewButton)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(btnNewButton_1)
.addContainerGap(157, Short.MAX_VALUE))
);
gl_contentPane.setVerticalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(50)
.addComponent(lblNewLabel)
.addGap(18)
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(lblNewLabel_1)
.addComponent(username_txt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(18)
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(lblNewLabel_2)
.addComponent(password_txt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(18)
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(btnNewButton)
.addComponent(btnNewButton_1))
.addContainerGap(60, Short.MAX_VALUE))
);
contentPane.setLayout(gl_contentPane);

this.setLocationRelativeTo(null);
}

protected void ResetActionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
this.username_txt.setText("");
this.password_txt.setText("");


}

protected void LoginActionPerformed(ActionEvent e) {
// TODO Auto-generated method stub

String username=this.username_txt.getText();
String password=new String(this.password_txt.getPassword());

if(StringUtil.isEmpty(username)) {
JOptionPane.showMessageDialog(null, "用户名不能为空");
return;
}

if(StringUtil.isEmpty(password)) {
JOptionPane.showMessageDialog(null, "密码不能为空");
return;
}

User user=new User(username,password);
Connection conn=null;
try {
conn=db.getConnection();
User current_user=userDao.login(conn,user);
if(current_user!=null) {
JOptionPane.showMessageDialog(null, "登录成功");
dispose();
new MainFrm().setVisible(true);
}else {
JOptionPane.showMessageDialog(null, "用户名或者密码错误");
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}


}
}

Goods.java

package cn.com.model;

public class Goods {
private Integer id;
private String name;
private Integer number;
private Float price;



public Goods() {
super();
// TODO Auto-generated constructor stub
}




public Goods(String name, Integer number, Float price) {
super();
this.name = name;
this.number = number;
this.price = price;
}




public Integer getId() {
return id;
}



public void setId(Integer id) {
this.id = id;
}


public String getName() {
return name;
}



public void setName(String name) {
this.name = name;
}


public Integer getNumber() {
return number;
}



public void setNumber(Integer number) {
this.number = number;
}







public Float getPrice() {
return price;
}



public void setPrice(Float price) {
this.price = price;
}








}