当前位置: 首页 > 知识库问答 >
问题:

如何将我的sql查询结果集导出为CSV格式?

尉迟阳煦
2023-03-14
import com.opencsv.CSVWriter;

public class DbToCSV {

    @SuppressWarnings("deprecation")
    public static String RetrieveData(String filename) throws Exception {

        String readFile = readFile(filename);

        String sql = readFile;
        System.out.println(sql);
        PreparedStatement statement;

        DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
        String mysqlUrl = "jdbc:mysql://localhost:3306/employee";
        Connection con = DriverManager.getConnection(mysqlUrl, "root", "root");
        statement = con.prepareStatement(sql);
        ResultSet rs = statement.executeQuery();
        System.out.println("Process Started");
        String file = filename + "/elastic1.csv";
        System.out.println(file);
        CSVWriter writer = new CSVWriter(new FileWriter(file));

        ResultSetMetaData Mdata = rs.getMetaData();
        String line1[] = { "id", "tenant_id", "hierarchy_name", "attribute_name", "item_pk" };
        writer.writeNext(line1);
        String data[] = new String[5];
        while (rs.next()) {
            data[0] = new Integer(rs.getInt("id")).toString();
            data[1] = new Integer(rs.getInt("tenant_id")).toString();
            data[2] = rs.getString("hierarchy_name");
            data[3] = rs.getString("attribute_name");
            data[4] = rs.getString("item_pk");
            writer.writeNext(data);
        }
        writer.flush();
        System.out.println("Data entered");
        return file;
    }

    public static void main(String[] args) throws Exception {
        RetrieveData("/home/niteshb/Pictures");
    }
}
id","tenant_id","hierarchy_name","attribute_name","item_pk
1",    "1",         "PRODUCT",            "BU",        "SCM
2",    "1",         "PRODUCT",            "BU",       "SPR
3",    "1",         "PRODUCT",            "BU",       "SSC

                     
id,tenant_id,hierarchy_name,attribute_name,item_pk
1,  1,      PRODUCT,        BU,               SCM
2,  1,       PRODUCT,       BU,               SPR
3,  1,      PRODUCT ,        BU,               SSC

共有1个答案

马欣德
2023-03-14

您可以使用writeNext的重载方法,它接受boolean作为参数。

void writeNext(String[] nextLine, boolean applyQuotesToAll)

在此,将布尔值传递为false,以忽略引号。

[编辑]

CSVWriter writer = new CSVWriter(outputfile, ',',
                                 CSVWriter.NO_QUOTE_CHARACTER,
                                 CSVWriter.DEFAULT_ESCAPE_CHARACTER,
                                 CSVWriter.DEFAULT_LINE_END);
 类似资料:
  • 哪种方法是以CSV格式导出JPA查询结果的最佳方法?我试过opencsv,但它需要一个java.sql.ResultSet对象,我不明白如何创建它。我尝试了以下代码 但我收到异常java.lang.ClassCastException:java.util.Vector不能强制转换为java.sql.ResultSet

  • 问题内容: 有没有一种简单的方法可以从Linux命令行运行MySQL查询并以CSV格式输出结果? 这是我现在正在做的事情: 当有很多列需​​要用引号引起来时,或者结果中有引号需要转义时,它将变得混乱。 问题答案: 从http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or- csv-file/ 使用此命令

  • 这可以在单个sql查询中完成吗?或者我必须在循环中对每个房间进行查询吗?还是在一次查询中转储整个数据集,然后在pyhton中处理它更有效率?这是一个很小的数据集,但我有兴趣知道哪一个是最有效的方法。 先谢谢你,马丁 下面是我的表结构:

  • 问题内容: 我正在处理ETL,并且在SSIS包中的SQL任务中具有以下sql代码。这就是我编码的方式。我正在从表中选择数据,并将该查询的结果作为文件。我希望此附件以CSV格式发送。我该怎么做? 任何帮助将不胜感激。提前致谢。 问题答案: 添加应该可以解决问题。 添加可能会稍微清除结果。所有的论点都可以在这里找到

  • 问题内容: 我需要以.csv格式输出hadoop结果。我该怎么做?我的代码:https : //github.com/studhadoop/xml/blob/master/XmlParser11.java 我应该在我的代码中简单地包含csvoutputFormat吗?我正在使用mapreduce API myjob.sh 解 是的,我不见了>在猫里 问题答案: 您可以使用TextOutputFor

  • 问题内容: 我的要求是存储查询的整个结果 到Excel文件。 问题答案: 实现此目的的典型方法是导出为CSV,然后将CSV加载到Excel。 您可以使用任何MySQL命令行工具通过在语句中包含以下子句来执行此操作: 有关详细选项,请参见此链接。 另外,您可以使用mysqldump,使用– tab选项将转储存储为单独的值格式,请参见此链接。