该项目实现了超市管理系统中最基本的增、删、改、查。
代码简单明了,适合入门级新手学习。
连接MySQL方便内容存储。
代码如下:
1.对商品类的声明与创建
package entity;
public class ComInfor {
int ID;//商品编号
String name;//商品名称
double price;//商品价格
int num;//商品数量
public ComInfor() {
}
public ComInfor(int ID, String name, double price, int num, double money) {
super();
ID = ID;
this.name = name;
this.price = price;
this.num = num;
}
public int getID() {
return ID;
}
public void setID(int ID) {
ID = ID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
- 添加几个其他商品
package entity;
import java.util.ArrayList;
public class OtherCom {
public static void init(ArrayList<ComInfor> arry) {
//创建第一个商品
ComInfor f1 = new ComInfor();
f1.ID=1000;
f1.name="笔记本";
f1.price=10.0;
//创建第二个商品
ComInfor f2 = new ComInfor();
f2.ID=1001;
f2.name="西红柿";
f2.price=2.0;
//创建第3个商品
ComInfor f3 = new ComInfor();
f3.ID=1002;
f3.name="辣条";
f3.price=5.0;
arry.add(f1);
arry.add(f2);
arry.add(f3);
}
}
3.实现添加功能
package methods;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Scanner;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;
import entity.ComInfor;
import test04.ConDB;
public class Addation {
public static void add(ArrayList<ComInfor> arry) {
System.out.println("选择的是添加商品功能");
Scanner in = new Scanner(System.in);
System.out.println("输出商品编号ID");
int ID = in.nextInt();
System.out.println("输入商品单价");
double price = in.nextDouble();
System.out.println("输入商品名称");
String name = in.next();
ConDB con=new ConDB();
String sql="insert shangpin values("+ID+",\""+price+"\""+",\""+name+"\")";
int i=con.doUpdate(sql);
if(i!=0){
System.out.println("添加成功");
}else{
System.out.println("添加失败");
}
// 创建商品对象
// ComInfor f = new ComInfor();
// f.setID(ID);
// f.setPrice(price);
// f.setName(name);
// 添加到集合
//arry.add(f);
}
}
4.实现删除功能
package methods;
import java.util.ArrayList;
import java.util.Scanner;
import entity.ComInfor;
import test04.ConDB;
public class Delete {
public static void del(ArrayList<ComInfor> arry) {
System.out.println();
System.err.println("选择的是删除功能");
System.out.println("输出要删除的商品编号ID");
Scanner in = new Scanner(System.in);int id = in.nextInt();
ConDB con=new ConDB();
String sql="delete from shangpin where ID="+id;
int i=con.doUpdate(sql);
if(i!=0){
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
//
// // 遍历集合
// for (int i = 0; i < arry.size(); i++) {
// ComInfor f = arry.get(i);
// // 比对输入的与已经存在的
// if (f.getID() == id) {
// arry.remove(f);
// System.out.println("删除成功");
// // 当遍历相等的时候直接结束方法
// return;
// }
// // 如果if不执行则 for循环结束打印
// System.out.println("不存在此商品");
// }
}
}
5.实现修改功能
package methods;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Scanner;
import entity.ComInfor;
import test04.ConDB;
public class Update {
public static void update(ArrayList<ComInfor> arry) {
System.out.println();
System.out.println("选的是修改功能");
System.out.println("输入你要修改的商品编号ID");
Scanner in = new Scanner(System.in);
int id = in.nextInt();
ConDB con=new ConDB();
String sql="select ID,price,name from shangpin where ID="+id;
ResultSet rs=con.doQuery(sql);
try {
rs.last();int count=rs.getRow();
String[][] s=new String[count][3];
int i=0;rs.beforeFirst();
while(rs.next()){
s[i][0]=rs.getString("ID");
s[i][1]=rs.getString("price");
s[i][2]=rs.getString("name");
i++;
}
System.out.println("商品编号 商品单价 商品名称");
int n=count;
for(int j=0;j<n;j++){
System.out.println(s[j][0]+" "+s[j][1]+" "+s[j][2]);
}
} catch (Exception e) {
// TODO: handle exception
System.out.println("查无此商品");
}
System.out.println("输入新的商品编号");
int newid=in.nextInt();
System.out.println("输入商品单价");
double newprice = in.nextDouble();
System.out.println("输入商品名称");
String newname=in.next();
sql="update shangpin set ID="+newid+",price=\""+newprice+"\""+",name=\""+newname+"\" where ID="+id;
int i=con.doUpdate(sql);
if(i!=0){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
// 遍历集合
// for (int i = 0; i < arry.size(); i++) {
// ComInfor f = arry.get(i);
// if (f.getID() == id) {
// System.out.println("输入新的商品编号");
// f.setID(in.nextInt());
// System.out.println("输入商品单价");
// f.setPrice(in.nextDouble());
// System.out.println("输入商品名称");
// f.setName(in.next());
// System.out.println("修改成功");
// return;
// }
// }
// System.out.println("不存该商品");
}
}
6.实现查找功能
package methods;
import java.sql.ResultSet;
import java.util.ArrayList;
import entity.ComInfor;
import test04.ConDB;
public class Examine{
//查看方法
public static void show(ArrayList<ComInfor> arry){
ConDB con=new ConDB();
String sql="select ID,price,name from shangpin";
ResultSet rs=con.doQuery(sql);
try {
rs.last();int count=rs.getRow();
String[][] s=new String[count][3];
int i=0;rs.beforeFirst();
while(rs.next()){
s[i][0]=rs.getString("ID");
s[i][1]=rs.getString("price");
s[i][2]=rs.getString("name");
i++;
}
System.out.println("商品编号 商品单价 商品名称");
int n=count;
for(int j=0;j<n;j++){
System.out.println(s[j][0]+" "+s[j][1]+" "+s[j][2]);
}
} catch (Exception e) {
// TODO: handle exception
}
//遍历集合
// for(int i=0;i<arry.size();i++){
// ComInfor f = arry.get(i);
// System.out.println(f.getID()+" "+f.getPrice()+" "+f.getName());
// }
}
}
7.对控制台主页面进行描述,这里可说明一下,还可以使用小窗口进行显示,这里只用最基本的。
package servlet;
public class Menu {
public static void mainMenu() {
System.out.println();
System.out.println("==========超市管理系统===========");
System.out.println("1: 货物清单 2: 增加货物 3: 删除货物 4: 修改货物 5 退出");
System.out.println("输出你要操作的编号:");
}
}
8.超市管理系统的启动类
package servlet;
import java.util.ArrayList;
import java.util.Scanner;
import entity.ComInfor;
import entity.OtherCom;
import methods.Addation;
import methods.Delete;
import methods.Examine;
import methods.Update;
/*
* 超市管理系统的启动类
* 实现基本功能
* 增加商品
* 删除商品
* 修改商品
* 查询商品
*/
public class Shop {
public static void main(String[] args) {
ArrayList<ComInfor> arry = new ArrayList<ComInfor>();
OtherCom.init(arry);
// 死循环操作
while (true) {
Menu.mainMenu();
Scanner s = new Scanner(System.in);
int in = s.nextInt();
switch (in) {
case 1:
Examine.show(arry);
break;
case 2:
Addation.add(arry);
break;
case 3:
Delete.del(arry);
break;
case 4:
Update.update(arry);
break;
case 5:
return;
default:
System.err.println("输入的序号不存在");//报错专用输出
break;
}
}
}
}
9.连接mysql的相关代码
package test04;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//数据库连接
public class ConDB {
static Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
public static Connection getConnection() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/shop", "root", "1234");
} catch (ClassNotFoundException e) {
// TODO: handle exception
e.printStackTrace();
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
return conn;
}
public ResultSet doQuery(String sql) {
try {
conn = ConDB.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
public int doUpdate(String sql) {
int count = 0;
try {
conn = ConDB.getConnection();
stmt = conn.createStatement();
count = stmt.executeUpdate(sql);
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
return count;
}
public void closeConnection() {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
}
将其启用后做成一个简单的小项目,代码十分简易,部分会出错部分并未进行修改,只提供简单思路。