Есть ли драйвер JDBC для файлов Excel/CSV/XML с открытым исходным кодом, доступный в репозитории Maven? Механизм моста JDBC-ODBC очень громоздкий и плохо поддерживает DataSource (исключение «Дополнительная функция не реализована»). Возможность чтения/записи важна, но только чтение подойдет, если нет ничего лучше.
Драйвер JDBC с открытым исходным кодом для Excel, файлы CSV в репозитории Maven
comment
Зачем использовать JDBC? Он довольно тяжелый и громоздкий для записи в файлы. Воспользуйтесь одним из приведенных ниже предложений, например OpenCSV, который обеспечивает более подходящий уровень абстракции.
- person GaryF   schedule 02.01.2011
Ответы (2)
CsvJdbc — это драйвер базы данных Java для чтения файлов со значениями, разделенными запятыми.
http://csvjdbc.sourceforge.net/
Мейвен Репо:
<dependency>
<groupId>net.sourceforge.csvjdbc</groupId>
<artifactId>csvjdbc</artifactId>
<version>1.0.9</version>
</dependency>
Пример использования:
import java.sql.*;
public class DemoDriver
{
public static void main(String[] args)
{
try
{
// Load the driver.
Class.forName("org.relique.jdbc.csv.CsvDriver");
// 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:" + args[0]);
// Create a Statement object to execute the query with.
// A Statement is not thread-safe.
Statement stmt = conn.createStatement();
// Select the ID and NAME columns from sample.csv
ResultSet results = stmt.executeQuery("SELECT ID,NAME FROM sample");
// Dump out the results to a CSV file with the same format
// using CsvJdbc helper function
boolean append = true;
CsvDriver.writeToCsv(results, System.out, append);
// Clean up
conn.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
person
rekinyz
schedule
19.12.2014
OpenCSV
http://opencsv.sourceforge.net/
<dependency>
<groupId>net.sf.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>2.0</version>
</dependency>
Читать
CSVReader reader = new CSVReader(new FileReader("yourfile.csv"));
String [] nextLine;
while ((nextLine = reader.readNext()) != null) {
// nextLine[] is an array of values from the line
System.out.println(nextLine[0] + nextLine[1] + "etc...");
}
Написать
CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), '\t');
// feed in your array (or convert your data to an array)
String[] entries = "first#second#third".split("#");
writer.writeNext(entries);
writer.close();
person
Will
schedule
02.01.2011
Хотя это отличный инструмент, на самом деле он не отвечает на вопрос, особенно когда речь идет о файлах Excel...
- person Lukas Eder; 12.03.2013