利用JAVA,一个文本文件存储了20名学生的Java考试成绩信息,从文本文件读数据,并将文本文件里的数据插入到数据库中,打印输出数据库里的所有学生成绩信息,计算Java成绩的平均分。
时间: 2024-03-24 20:36:14 浏览: 56
程序用JAVA编写,统计每个学生的总分
好的,这是一个关于Java读取文本文件并将数据插入到数据库的问题,需要用到Java的IO和JDBC API。
首先,我们需要创建一个文本文件,里面包含20名学生的Java考试成绩信息。每行一个学生信息,格式为:姓名,学号,成绩。例如:
```
张三,1001,85
李四,1002,90
...
```
接下来,我们需要用Java的IO API读取文本文件里的数据,并将数据插入到数据库中。假设我们已经连接到了数据库,可以使用如下代码将数据插入到数据库中:
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class InsertDataFromTextFile {
public static void main(String[] args) {
String fileName = "student.txt"; // 文本文件名
String url = "jdbc:mysql://localhost:3306/test"; // 数据库连接URL
String user = "root"; // 数据库用户名
String password = "123456"; // 数据库密码
try (Connection conn = DriverManager.getConnection(url, user, password);
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO student(name, id, score) VALUES (?, ?, ?)"); // SQL插入语句
BufferedReader br = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = br.readLine()) != null) {
String[] fields = line.split(",");
String name = fields[0];
String id = fields[1];
int score = Integer.parseInt(fields[2]);
pstmt.setString(1, name);
pstmt.setString(2, id);
pstmt.setInt(3, score);
pstmt.executeUpdate();
}
} catch (SQLException | IOException e) {
e.printStackTrace();
}
}
}
```
上面的代码中,我们使用了Java的try-with-resources语句,确保在使用完IO和JDBC资源后及时关闭它们。在循环里,我们使用逗号分隔符将每行数据分成三个字段,然后将它们插入到数据库中。
最后,我们需要查询数据库里的所有学生成绩信息,并计算Java成绩的平均分。可以使用如下代码:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class QueryDataFromDatabase {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/test"; // 数据库连接URL
String user = "root"; // 数据库用户名
String password = "123456"; // 数据库密码
try (Connection conn = DriverManager.getConnection(url, user, password);
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM student");
ResultSet rs = pstmt.executeQuery()) {
int count = 0;
double sum = 0;
while (rs.next()) {
String name = rs.getString("name");
String id = rs.getString("id");
int score = rs.getInt("score");
System.out.printf("%s %s %d\n", name, id, score);
count++;
sum += score;
}
System.out.printf("平均分:%.2f\n", sum / count);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
上面的代码中,我们使用了Java的JDBC API查询数据库里的所有学生成绩信息,并计算Java成绩的平均分。在循环里,我们累加成绩和学生数量,然后用它们计算平均分。
这就是利用Java读取文本文件并将数据插入到数据库的完整流程。
阅读全文