使用MySQL数据库,建立一个模拟商店的数据库,数据库名为shop 在数据库中创建商品表goods,表结构如下: number(文本),name(文本),madeTime(日期),price(数字,双精度) 其中number为主键,表示商品编号。 往数据表随机写入30-50条数据。 编写程序,先查询出goods表中的数据,然后随机获取其中的10条记录,并计算出这10条记录price字段值的平均值,即平均价格,在控制台打印出10条记录和平均价格 然后使用java语言连接MySQL数据库,并执行以下代码查询goods表中的数据,随机获取其中的10条记录并计算平均价格:
时间: 2024-04-10 07:27:41 浏览: 139
国家开放大学 MySQL数据库应用 实验训练1 在MySQL中创建数据库和表
以下是使用Java语言连接MySQL数据库并执行查询的示例代码:
```java
import java.sql.*;
public class ShopDatabase {
public static void main(String[] args) {
// 连接数据库
String url = "jdbc:mysql://your_host:your_port/shop";
String username = "your_username";
String password = "your_password";
try {
Connection conn = DriverManager.getConnection(url, username, password);
// 查询数据并计算平均价格
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM goods");
// 获取总记录数
int rowCount = 0;
if (rs.last()) {
rowCount = rs.getRow();
rs.beforeFirst();
}
// 随机获取10条记录
int[] randomIndices = generateRandomIndices(rowCount, 10);
int count = 0;
double totalPrice = 0;
while (rs.next()) {
if (count < randomIndices.length && rs.getRow() == randomIndices[count] + 1) {
String number = rs.getString("number");
String name = rs.getString("name");
Date madeTime = rs.getDate("madeTime");
double price = rs.getDouble("price");
System.out.println("商品编号: " + number + ", 商品名称: " + name + ", 生产日期: " + madeTime + ", 价格: " + price);
totalPrice += price;
count++;
}
}
double averagePrice = totalPrice / randomIndices.length;
System.out.println("平均价格: " + averagePrice);
// 关闭连接
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
// 生成随机索引数组
private static int[] generateRandomIndices(int maxIndex, int count) {
int[] randomIndices = new int[count];
for (int i = 0; i < count; i++) {
randomIndices[i] = (int) (Math.random() * maxIndex);
}
return randomIndices;
}
}
```
请根据实际情况修改连接数据库的相关参数(host、port、username、password)。
阅读全文