JDBC - csv 文件错误

JDBC - csv file Error

我有一个简单的问题,不知何故我看不出我的问题出在哪里。

我的 C:/Temp 文件夹中有一个 csv 文件。我想连接到 csv 以获取一些数据(取决于特定的行数据、不同的行...)。

所以我下载了 csvjdbc-1.0-28.jar 文件并将其添加到构建路径中。 我编写了如下所示的代码,但总是出现错误: "java.sql.SQLException: No suitable driver found for"

我看到有些人也遇到了问题,但我没有找到问题背后的问题。我知道这与 Connection 连接有关。我是否需要做一些额外的 JDBC 设置或如何添加连接路径?

提前致谢!

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.relique.jdbc.csv.CsvDriver;

public class Main_Class {

    public static void main(String[] args) {

        try {

            try {
                Class.forName("org.relique.jdbc.csv.CsvDriver");
                Connection conn = DriverManager
                        .getConnection("c:\temp\Spieltage_log.txt");
                Statement stmt = conn.createStatement();
                ResultSet results = stmt
                        .executeQuery("select * from Offensiver_Zweikampf");
                boolean append = true;
                CsvDriver.writeToCsv(results, System.out, append);
                conn.close();
                System.out.println(results);
            } catch (SQLException e) {
                e.printStackTrace();
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        // JFrame fenster = new Main_Menue();
    }
}

传递给DriverManager.getConnection()的URL字符串需要指定驱动名称:

Connection conn = DriverManager
                    .getConnection("jdbc:relique:csv:c:\temp");

此外,您需要传递csv 文件的目录而不是文件本身。请参阅同时发布详细说明的 Sachin 的回答。

根据示例 (http://csvjdbc.sourceforge.net/)-

 // Create a connection. The first command line parameter is
  // the directory containing the .csv files.
  // A single connection is thread-safe for use by several threads.
  Connection conn = DriverManager.getConnection("jdbc:relique:csv:" + directoryName);

你的情况应该是 -

  Properties props = new Properties();
  props.put("fileExtension", ".txt");

  Connection conn = DriverManager.getConnection("jdbc:relique:csv:C:\temp", props);

此外,您已将内容放入 txt 文件中,因此您需要指定一个自定义文件 属性,文件扩展名为“.txt”。

您的结果集对象可以使用以下语法查询文件 -

ResultSet results = stmt.executeQuery("select * from Spieltage_log");

对不起,我的错:我将文件保存为 xlsx 文件而不是 csv 文件。所以现在解决了它并且它起作用了!非常感谢你们!感谢您的帮助