So erstellen Sie eine h2-Datenbank aus einigen Feldern einer CSV-Datei

8

Ich möchte eine neue eingebettete h2-Datenbank aus einer CSV-Datei erstellen. Hier ist das Snippet der CSV-Datei

  

Land, Stadt, AccentCity, Region, Bevölkerung, Breitengrad, Längengrad

     

Anzeige, aixovall, Aixovall, 06, 42,4666667,1,4833333

     

ad, Andorra, Andorra, 07,, 42.5, 1.5166667

     

ad, andorra la vella, Andorra la Vella, 07,20430,42,5,1,5166667

     

ad, andorra-vieille, Andorra-Vieille, 07,, 42.5, 1.5166667

     

Anzeige, andorre, Andorre, 07,, 42.5, 1.5166667

Ich möchte nicht alle Felder der CSV-Datei abrufen. Eigentlich möchte ich sie alle außer den City und Region Feldern.

Außerdem möchte ich den Inhalt der csv-Datei nur dann in die Datenbank einfügen, wenn der Inhalt von POPULATION nicht leer ist.

Daher müssen wir im obigen csv-Beispiel nur die dritte Zeile in die h2-Tabelle WORLDCITIES einfügen, weil das Feld 'population' angegeben ist.

Hier ist ein Codeausschnitt, den ich geschrieben habe. Aber wie Sie sehen, ist es noch nicht genug:

%Vor%

Und wenn ich richtig verstehe, erstellt CSVREAD die Felder mit dem VARCHAR-Typ, aber ich möchte die Dinge so:

LAND VARCHAR (3), ACCENTCITY VARCHAR (40), BEVÖLKERUNG FLOAT, LATITUDE FLOAT, LONGITUDE FLOAT

Vielen Dank im Voraus für die Hilfe.

    
paissad 01.03.2011, 20:14
quelle

3 Antworten

9

Sie können die Spaltendefinitionen in CREATE TABLE als dokumentiert und kombiniert dies mit einer WHERE-Klausel. Bitte beachten Sie, dass die Verwendung von CREATE TABLE AS SELECT etwas schneller ist als die separaten Anweisungen CREATE TABLE und INSERT INTO (nicht sicher, ob die Geschwindigkeit für Sie sehr wichtig ist):

%Vor%     
Thomas Mueller 02.03.2011, 05:27
quelle
3
Schließlich ging ich so vor, wie Sie es empfohlen haben. Ich habe nur die Teile des Codes eingefügt, von denen ich denke, dass sie mehr mit der Frage zu tun haben:)

'

%Vor%

....

Danke!

    
paissad 02.03.2011 05:02
quelle
2

Verwenden Sie die Methode read() der Klasse H2 Csv und Iteriere durch ResultSet und füge die gewünschten Zeilen ein, wie du sie findest.

    
trashgod 01.03.2011 20:30
quelle

Tags und Links