gpt4 book ai didi

java - 结果集打印到txt文件

转载 作者:行者123 更新时间:2023-11-30 22:59:27 35 4
gpt4 key购买 nike

我想将查询结果打印到 .txt 文件中。怎么做?我尝试使用或不使用 .tostring 来打印它,但它仍然不是我想要的结果。

这是我的代码

try {
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ta", "root", "root");
Statement st = con.createStatement();
String query = "select count(no) as 'jumlah',kelompok from email group by kelompok";
//System.out.println(query);
ResultSet rs = st.executeQuery(query);

while (rs.next()) {
dataset.setValue( Integer.parseInt(rs.getString(1)), "Jumlah", rs.getString(2));
}
try {
PrintStream out = new PrintStream(new FileOutputStream("OutFile.txt"));
String jumlahemail = "select count(*) from email";
ResultSet rs1 = st.executeQuery(jumlahemail);
out.println("E-mail yang diterima adalah sebanyak: "+rs1.toString());
out.println("Dengan detail: ");
out.println(rs.toString());
out.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
} catch (SQLException ex) {
Logger.getLogger(GUI.Home.class.getName()).log(Level.SEVERE, null, ex);
}

结果是:

E-mail yang diterima adalah sebanyak: com.mysql.jdbc.JDBC4ResultSet@81c868
Dengan detail:
com.mysql.jdbc.JDBC4ResultSet@8c241a

如何正确地做到这一点?

最佳答案

当您调用 rs1.toString() 时,您将获得 Object 的默认 toString() 实现,它打印类名和实例哈希(com.mysql.jdbc.JDBC4ResultSet@81c868 在你的例子中)。

您要做的是从 ResultSet 中提取查询的结果,并打印它。使用 rs1.getInt(1) 获取查询提取的计数。

参见引用资料 here .

编辑(在问题中编辑后):

首先,我将第一个查询更改为:

String query = "select count(kelompok),kelompok from email group by kelompok";

因为您是按 kelompok 分组的,所以这是您要计算的列。

其次,您对结果集的迭代:

while (rs.next()) {
dataset.setValue( Integer.parseInt(rs.getString(1)), "Jumlah", rs.getString(2));
}

我不知道 dataset 是什么,但计数返回一个整数,因此没有必要尝试读取字符串并将其转换为整数。我建议你使用 map :

Map<String,Integer> map = new LinkedHashMap<String,Integer>();
while (rs.next()) {
map.put (rs.getString(2), rs.getInt(1));
}

请注意,我将 map 的键选择为 kelompok(无论是什么意思),将值选择为计数。

第二个查询似乎是多余的,因为您可以从第一个查询的结果中获取它检索的数据(总计数)。

我们可以将第一个查询结果集的迭代改成:

Map<String,Integer> map = new LinkedHashMap<String,Integer>();
int total = 0;
while (rs.next()) {
int count = rs.getInt(1);
total += count;
map.put (rs.getString(2), count);
}

现在您已获得将数据输出到文件所需的一切:

PrintStream out = new PrintStream(new FileOutputStream("OutFile.txt"));
out.println("E-mail yang diterima adalah sebanyak: "+ total);
out.println("Dengan detail: ");
for (String s : map.keySet()) {
out.println(s + " = " + map.get(s)); // you might want to change the formatting
}
out.close();

关于java - 结果集打印到txt文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24724942/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com