Files
some-java-packages/assignment1/ProductAdditionAndInquiry.java
T
2024-05-14 10:47:38 +08:00

86 lines
3.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package assignment1;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class ProductAdditionAndInquiry {
private static final String DBURL = "jdbc:mysql://localhost:3306/xiaoshou?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT";
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int choice;
try (Connection conn = DriverManager.getConnection(DBURL)) {
do {
System.out.println("===超市商品管理维护====");
System.out.println("1、输入商品");
System.out.println("2、查询商品");
System.out.println("3、退出");
System.out.print("请选择(1-3):");
choice = scanner.nextInt();
scanner.nextLine();
switch (choice) {
case 1:
addProduct(scanner, conn);
break;
case 2:
queryProduct(scanner, conn);
break;
case 3:
System.out.println("退出系统");
break;
default:
System.out.println("无效选择,请重新选择(1-3):");
}
} while (choice != 3);
} catch (SQLException e) {
e.printStackTrace();
}
}
private static void addProduct(Scanner scanner, Connection conn) throws SQLException {
System.out.print("请输入商品信息(格式:条形码,商品名称,单价,供应商):");
String input = scanner.nextLine();
String[] productInfo = input.split(",");
String tiaoma = productInfo[0];
PreparedStatement checkStmt = conn.prepareStatement("SELECT COUNT(*) FROM t_shangping WHERE tiaoma = ?");
checkStmt.setString(1, tiaoma);
ResultSet rs = checkStmt.executeQuery();
rs.next();
if (rs.getInt(1) > 0) {
System.out.println("条形码不能重复,请重新输入");
return;
}
PreparedStatement insertStmt = conn.prepareStatement(
"INSERT INTO t_shangping (tiaoma, mingcheng, danjia, gongyingshang) VALUES (?, ?, ?, ?)");
insertStmt.setString(1, tiaoma);
insertStmt.setString(2, productInfo[1]);
insertStmt.setBigDecimal(3, new BigDecimal(productInfo[2]));
insertStmt.setString(4, productInfo[3]);
insertStmt.executeUpdate();
System.out.println("增加成功");
}
private static void queryProduct(Scanner scanner, Connection conn) throws SQLException {
System.out.print("请输入查询的商品名称:");
String nameQuery = scanner.nextLine();
PreparedStatement queryStmt = conn.prepareStatement("SELECT * FROM t_shangping WHERE mingcheng LIKE ?");
queryStmt.setString(1, "%" + nameQuery + "%");
ResultSet rs = queryStmt.executeQuery();
System.out.println("满足条件的记录总共" + rs.getFetchSize() + "条,信息如下:");
System.out.println("序号\t条形码\t商品名称\t单价\t供应商");
int count = 1;
while (rs.next()) {
System.out.println(count++ + "\t" +
rs.getString("tiaoma") + "\t" +
rs.getString("mingcheng") + "\t" +
rs.getBigDecimal("danjia") + "\t" +
rs.getString("gongyingshang"));
}
}
}