我有一个 JAVA 代码可以将 SQL Server 表输出到 CSV。打印在中间停止,我只得到部分数据作为 CSV 输出。在我的代码下面。
public class SQLServerConnection {
public static void main(String[] args) throws IOException, SQLException {
// TODO Auto-generated method stub
Connection conn = null;
SQLConnection cnn = new SQLConnection();
FileWriter fw = new FileWriter(cnn.fileName);
try {conn = DriverManager.getConnection(cnn.dbURL);
if (conn != null) {
DatabaseMetaData dm = (DatabaseMetaData) conn.getMetaData();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
String sql = String.format(cnn.Query);
assert conn != null;
PreparedStatement preStatement;
preStatement = conn.prepareStatement(sql);
ResultSet result = preStatement.executeQuery();
ResultSetMetaData rmsd = result.getMetaData();
int Columncount = rmsd.getColumnCount();
//Get the column name and print the column name
for (int iterator=1; iterator<= Columncount; iterator++) {
fw.append(rmsd.getColumnName(iterator)+",");
}
fw.append('\n');
while(result.next()){
try {
for (int jterator=1; jterator<=Columncount; jterator++){
fw.append(result.getString(jterator));
fw.append(',');
}
fw.append('\n');
} catch (SQLException e)
{
e.printStackTrace();
}}
conn.close();
}}
DB 和 Excel 参数的类
public class SQLConnection {
public String ServerName = "Server1";
public String DBName = "DB1";
public String FileLoc = "Location of the file";
public String dbURL = "jdbc:sqlserver://"+ServerName+";databaseName="+DBName+";integratedSecurity=true";
public String Query = "SELECT * from [scdHSBCHK]";
public String fileName = (FileLoc + DBName +"_QueryResult.csv");
}
实际的 db 返回 57 条记录,但 csv 仅返回 29 条。我尝试使用不同的 db 名称以及相同的问题。当我在程序窗口中输出结果时,数据显示正确。
相关分类