CSV jdbc Treiber gesucht

bin-doph

Grünschnabel
Hi,

kann jemand einen Vernünftigen jdbc-Treiber für CSV-Dateien empfehlen? Ich habe schon ein paar ausprobiert, aber perfekt ist keiner und es fehlen überall features. Folgende hab' ich mir schon angeschaut und bin zu dem Schluss gekommen das sie alle nicht meine Anforderungen (lesen/schreiben, wenigstens SQL92)

http://forge.objectweb.org/project/showfiles.php?group_id=39
Bisher der Beste den ich gefunden habe unterstützt aber wirklich nur einfachste SQL-Syntax, kann nichtmal sortieren.

http://csvjdbc.sourceforge.net
read only...

http://sourceforge.net/projects/xlsql/
Macht prinzipiell einen zuversichtlichen Eindruck, aber der Link zu Dokumentation und Tutorials führt ins Nirvana, im bundle sind keine enthalten.

cheers
 
Hallo,

unter Windows könntest du auch den standard Microsoft Text Driver über ODBC verwenden:

schau mal hier:
Java:
package de.tutorials;

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

public class ReadCSVUsingMicrosoftTextDriverExample {
    public static void main(String[] args) throws Exception{
        Connection connection = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=C:/csv");
        
        Statement statement = connection.createStatement();
        
        ResultSet resultSet = statement.executeQuery("select * from bubu.csv order by c desc");
        ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
        
        int columnCount = resultSetMetaData.getColumnCount();
        
        for(int i =1; i<=columnCount;i++){
            System.out.print(resultSetMetaData.getColumnName(i));
            System.out.print(" ");
        }
        System.out.println();
        System.out.println("------------------");
        
        while(resultSet.next()){
            for(int i = 1; i<= columnCount;i++){
                System.out.print(resultSet.getString(i));
                System.out.print(" ");
            }
            System.out.println();
        }
        
        resultSet.close();
        
        statement.close();
        
        connection.close();
    }
}

Im Verzeichnis c:/csv gibts eine bubu.csv
Code:
C:\csv>type bubu.csv
a;b;c
1;10;100
2;20;200
3;30;300

Ausgabe:
Code:
a b c 
------------------
3 30 300 
2 20 200 
1 10 100

Über ein Schema.ini File in dem c:/csv Verzeichnis kannst du das CSV Format genauer spezifizieren:
http://msdn2.microsoft.com/en-us/library/ms709353.aspx

Gruß Tom
 
Hi,

danke für die Antwort, aber ODBC ist mir zu unflexibel, da ich selbst hauptsächlich auf Linux arbeite, die Anwendung Plattformunabhängig sein soll und unixodbc auch eine Qual ist, kommt das für mich nicht in Frage. Ich such schon irgendwie die eierlegende Wollmilchsau, aber es gibt so viele Projekte zu dem Thema und keins hat's so wirklich geschaft fertig zu werden oder hab ich noch eins übersehen?

grüsse
 

Zwei Aspekte daran die mich schon abschrecken:
Preis: 176,00 $
OS: Windows 98/XP/Vista

Thomas Darimont hat gesagt.:
Ansonsten könntest du ja die CSV Datei in eine in-Memory DB reinladen (Java DB bzw. Apache Derby oder HSQLDB)

hmm, das klingt interessant für HSQL gibts auch schöne eclipse-plugins. Da werd ich mich mal reinlesen. Vielen Dank.

Grüßlichkeit
 
Moin,
Kann mir jemand ein Beispiel geben wie man eine CSV Datei mit HSQL auslesen kann.
Würde mich sehr interessieren wie das geht.
Vielen Dank im voraus .
Gruß Der Heilige
 
Zurück