Java 将结果集写入csv文件

Java 将结果集写入csv文件,java,arraylist,resultset,Java,Arraylist,Resultset,我有一个getstaffinfo方法,它有3个参数(var_1,connection,filewriter fw),var_1值是从文本文件读取的。因此,基于从文本文件传递的所有var_1值,该方法将被多次调用。约(15000) public静态字符串getstaffid(字符串变量1,连接, FileWriter(fw)抛出SQLException,异常 //创建一个语句 { 字符串记录=null; 结果集rs=null; 语句stmt=connection.createStatement()

我有一个getstaffinfo方法,它有3个参数(var_1,connection,filewriter fw),var_1值是从文本文件读取的。因此,基于从文本文件传递的所有var_1值,该方法将被多次调用。约(15000)

public静态字符串getstaffid(字符串变量1,连接,
FileWriter(fw)抛出SQLException,异常
//创建一个语句
{
字符串记录=null;
结果集rs=null;
语句stmt=connection.createStatement();
布尔空=真;
试一试{
rs=stmt
.执行("选择用户名、名字、姓氏、中间名、街道、城市、州或省、ziporpostalcode、国家或地区、传真、电话、分机、手机、寻呼机、标题、主要电子邮件、次要电子邮件、办公室名称、描述、评论、挂起日期、用户数据、员工ID、createuser、updateuser、createdate、updatedate、employeetype、servicedeskticketnumber、,开始日期、结束日期、经理、业务审批人、技术审批人、代表、地点、职务代码、customproperty1、customproperty2、customproperty3、customproperty4、customproperty5、customproperty6、customproperty7、customproperty8、customproperty9、customproperty10,来自globalusers,其中用户名=“+var_1+”);
ResultSetMetaData元数据=rs.getMetaData();
int columns=metaData.getColumnCount();
ArrayList记录=新的ArrayList();
while(rs.next()){
空=假;
//记录=rs.getString(1)+++rs.getString(2)+++rs.getString(3)+++rs.getString(4)+++rs.getString(5)+++rs.getString(6)+++rs.getString(7)+++rs.getString(8)+++rs.getString(9)+++rs.getString(10)+rs.getString(11)+++rs.getString(12)+++rs.getString(13)+rs.getString(14)+”“+rs.getString(15)++rs.getString(16)++rs.getString(17)++rs.getString(18)++rs.getString(19)++rs.getString(20)++rs.getString(21)++rs.getString(22)++rs.getString(23)++rs.getString(24)++rs.getString(25)++rs.getString(26)++rs.getString(27)+rs.getString(28)+”“+rs.getString(29)++rs.getString(30)++rs.getString(31)++rs.getString(32)++rs.getString(33)++rs.getString(34)++rs.getString(35)++rs.getString(36)++rs.getString(37)++rs.getString(38)++rs.getString(39)++rs.getString(40)++rs.getString(41)+rs.getString(42)+rs.getString(43)++rs.getString(44)++rs.getString(45)++rs.getString(46)++rs.getString(47);

对于(int i=1;i您没有编写您面临的确切问题,但有一点是肯定的:您从未在文件中写入换行符,因此所有数据都在一行中

while (rs.next()) {
... // your code, with the for loops

    fw.append(record); //writing out the line, from your code
    fw.append("\r\n"); //line break -- add this line
} //this is the end of the "while(rs.next())" loop
...

您可能已经解决了该问题。请告诉您,我刚刚尝试使用您的代码,发现问题出在这里:

record = records.get(j) + ",";
您应该使用如下内容:

record = record  + records.get(j) + ",";

另外,将
String
更改为
StringBuffer
将提高性能。

是否有堆栈跟踪?for中有一个错误(int j=0;irecord = record + records.get(j) + ",";