数据统计系统
设计目的:
1、掌握基本运算
2、掌握循环结构和选择结构
3、掌握数组链表的基本操作
设计要求:
1、录入商品信息,包含编号、名称、单价、类别四种数据
2、将单价大于用户输入的数值的所有商品打印出来
3、按商品类别,统计每种商品的个数,并打印出来
我帮你写
创建表的sql如下
CREATE TABLE `GOODS`(
`ID` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '编号',
`GOODS_NAME` VARCHAR(50) NOT NULL COMMENT '商品名称',
`PRICE` DOUBLE COMMENT '价格',
`TYPE` VARCHAR(50) NULL COMMENT '类别'
PRIMARY KEY(`ID` ASC)
)COMMENT = '商品信息' ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
插入数据的sql如下:
insert into GOODS(`ID`, `GOODS_NAME`, `PRICE`, `TYPE`) values(1, '鼠标', 20, '配件');
insert into GOODS(`ID`, `GOODS_NAME`, `PRICE`, `TYPE`) values(2, '鼠标', 50, '配件');
insert into GOODS(`ID`, `GOODS_NAME`, `PRICE`, `TYPE`) values(3, '硬盘', 100, '大件');
insert into GOODS(`ID`, `GOODS_NAME`, `PRICE`, `TYPE`) values(4, '光驱', 400, '大件');
完成的程序代码如下:
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/goods?useUnicode=true&characterEncoding=utf8";
System.out.print("请输入商品价格: ");
Scanner scanner = new Scanner(System.in);
double price = scanner.nextDouble();
try (Connection connection = DriverManager.getConnection(url, "root", "123456")) {
String sql1 = "select * from GOODS where price>?";
PreparedStatement preparedStatement = connection.prepareStatement(sql1);
preparedStatement.setDouble(1, price);
ResultSet rs = preparedStatement.executeQuery();
System.out.println("大于"+price+"的商品有:");
while(rs.next()) {
System.out.print(rs.getString("ID") + " ");
System.out.print(rs.getString("GOODS_NAME") + " ");
System.out.print(rs.getString("PRICE") + " ");
System.out.print(rs.getString("TYPE") + " ");
}
System.out.println();
String sql2 = "select t.TYPE, count(*) from GOODS t group by t.TYPE";
ResultSet rs2 = connection.createStatement().executeQuery(sql2);
System.out.println("商品类别,统计每种商品的个数:");
while(rs.next()) {
System.out.print(rs.getString(1) + " ");
System.out.print(rs.getInt(2));
}
System.out.println();
}
}
如有帮助,请采纳,十分感谢!
有人写了吗?