在数据库jdbc里面创建一个名为student的数据表,数据表中结构为学号 char(9) 姓名 char(9) 数学成绩 int(4) 英语成绩 int(4) java成绩 int(4) ,向student表中插入4位同学信息(要求其中两位的Java成绩高于90分)。查询Java成绩高于90的学生信息,并计算其总成绩和平均分,将查询结果输出
时间: 2024-01-15 14:03:28 浏览: 68
好的,我可以帮你解决这个问题。首先,你需要确保你已经安装了Java JDBC驱动程序,然后编写Java代码来连接到数据库、创建表和插入数据。以下是示例代码:
```java
import java.sql.*;
public class JdbcExample {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/yourDatabaseName";
static final String USER = "yourDatabaseUsername";
static final String PASS = "yourDatabasePassword";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
// 注册 JDBC 驱动器
Class.forName("com.mysql.jdbc.Driver");
// 打开一个连接
System.out.println("连接到数据库...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询
System.out.println("创建数据表...");
stmt = conn.createStatement();
String sql = "CREATE TABLE student " +
"(id CHAR(9) not NULL, " +
" name CHAR(9), " +
" math INT, " +
" english INT, " +
" java INT, " +
" PRIMARY KEY ( id ))";
stmt.executeUpdate(sql);
System.out.println("数据表创建成功!");
// 插入数据
System.out.println("向数据表中插入数据...");
sql = "INSERT INTO student " +
"VALUES ('100000001', '张三', 90, 80, 95)";
stmt.executeUpdate(sql);
sql = "INSERT INTO student " +
"VALUES ('100000002', '李四', 85, 90, 92)";
stmt.executeUpdate(sql);
sql = "INSERT INTO student " +
"VALUES ('100000003', '王五', 70, 75, 80)";
stmt.executeUpdate(sql);
sql = "INSERT INTO student " +
"VALUES ('100000004', '赵六', 80, 85, 95)";
stmt.executeUpdate(sql);
System.out.println("数据插入成功!");
// 查询数据
System.out.println("查询Java成绩高于90分的学生信息...");
sql = "SELECT id, name, math, english, java, math+english+java AS total, (math+english+java)/3 AS avg FROM student WHERE java > 90";
ResultSet rs = stmt.executeQuery(sql);
// 输出结果
while(rs.next()){
String id = rs.getString("id");
String name = rs.getString("name");
int math = rs.getInt("math");
int english = rs.getInt("english");
int java = rs.getInt("java");
int total = rs.getInt("total");
int avg = rs.getInt("avg");
System.out.print("学号: " + id);
System.out.print(", 姓名: " + name);
System.out.print(", 数学成绩: " + math);
System.out.print(", 英语成绩: " + english);
System.out.print(", Java成绩: " + java);
System.out.print(", 总成绩: " + total);
System.out.println(", 平均分: " + avg);
}
rs.close();
} catch(SQLException se) {
// 处理 JDBC 错误
se.printStackTrace();
} catch(Exception e) {
// 处理 Class.forName 错误
e.printStackTrace();
} finally {
// 关闭资源
try{
if(stmt!=null) stmt.close();
} catch(SQLException se2) {
}
try {
if(conn!=null) conn.close();
} catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
```
注意:在上面的代码中,你需要将 `yourDatabaseName`、`yourDatabaseUsername` 和 `yourDatabasePassword` 替换为你自己的数据库名称、用户名和密码。
运行上面的代码后,它将连接到你的数据库并创建一个名为 `student` 的表。然后,它将插入4位同学的信息。最后,它将查询Java成绩高于90的学生信息,并计算其总成绩和平均分,输出查询结果。
希望这可以帮助到你!
阅读全文