Prepared Statements und Sets

Timo Frenzel

Mitglied
Guten Tag Leute,
bin neu und lege gleich einmal los^^

Ich muss einige zig Hunderttausend Einträge in die mysql db füllen,
dabei kommt es aber oft vor, das die Datensätze die gleichen sind.
Somit müsste ich dann teilweise 40.000 überflüssige Einträge pro Stream machen; was ich verhindern möchte.

Also, ich bekomme jede Datenzeile als Stream. Aus dieser Zeile werden 5 Inserts gebastelt.

Aufgrund der Datenmenge hatte ich mich für PS entschieden.
Nun da ich weiß, das ich überflüssige Inserts habe, hole ich mir aus den PS per tostring() den erzeugten String, speicher diesen in einem Hashset und erhalte also pro Datei nur Uniques.
Diese muss ich nun aber als statement behandeln.

Ich suche nun nach einer Möglichkeit, zb die PS in einem SET zu speichern und diesen dann einfach zu executen.
Hat da einer vielleicht eine Idee?


Timo
 

tfa

Top Contributor
Ich würde verhindern, dass überhaupt doppelte Datensätze auftreten - also die überflüssigen vorher rausfiltern. Wo kommen die Daten denn her?
 
N

nillehammer

Gast
Ich bin mir nicht sicher, ob man PreparedStatement überhaupt vernünftig in Sets speichern kann. Habe es mir zwar nicht angeschaut würde aber vermuten, dass equals() und hashCode() dieser Klasse das garnicht hergeben.

Wenn Du die Datenzeilen als Stream bekommst, kannst Du diese nicht in ein Set<String> stecken und erst danach die PS erzeugen?
 

Timo Frenzel

Mitglied
Guten Morgen...

ok, stimmt.

Habe nun versucht es erst zu filtern und dann die PS zu bilden.

Hab jetzt aber wohl n verständnis Problem.

Code:
HashSet set = new HashSet();
set.add("Hallo");
set.add("Welt!");
set.add("Welt!"); // Wird nicht nochmal hinzugefügt!


Ich habe es nun so versucht:

Code:
HashSet set = new HashSet();
set.add(String1[]);
set.add(String2[]);
set.add(String2[]); /[B]/ Wird nochmal hinzugefügt![/B]


Hatte gehofft, das wenn die Inhalte des StringArrays nun gleich sind, also meine Datensätze für PS gleich sind, das wie bei den Strings diese nur einmal hinzugefügt werden.

Einer eine Idee wie ich aus diesem Dilemma heraus komme?;(


Ich versuche es mal statt mit einem StringArray mit einer ArrayList

Timo
 
Zuletzt bearbeitet:
N

nillehammer

Gast
Ist zwar schon erledigt, nur noch kurz der Hinweis zu Arrays und equals(). Arrays sind auch Objekte und sogar eigene "Klassen". In dem Fall hier String[].class. Die equals-Methode ist nicht überschrieben. D.h. es werden nicht (wie erwartet) die Elemente des Arrays auf Gleichheit verglichen. Dafür gibt es aber eine Hilfsklasse/-methode im JDK:
Java:
java.util.Arrays.equals(array1,array2);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Wiederverwendung von Prepared Statements Datenbankprogrammierung 4
N prepared Statements Datenbankprogrammierung 6
G Flexible Prepared Statements Datenbankprogrammierung 2
F Update mit Prepared Statements Datenbankprogrammierung 10
A JDBC Prepared Statement Autoincrement Datenbankprogrammierung 3
N Update Prepared Statement Fehler bei Argumenten Datenbankprogrammierung 3
C PostgreSQL Prepared Statement Datenbankprogrammierung 7
N Prepared Statement mit unbekannter Anzahl von Where-Clauses Datenbankprogrammierung 30
L MySQL Prepared Statement batch langsamer als bulk insert? Datenbankprogrammierung 10
F Frage zu Prepared Statement Datenbankprogrammierung 2
Landei Mehre Werte für einen Prepared-Statement_Parameter übergeben? Datenbankprogrammierung 3
D Problem: Prepared Statement (Insert) funktioniert nicht. Datenbankprogrammierung 3
G Mit Prepared Statement in MDB schreiben Datenbankprogrammierung 7
W Prepared Statement und Verbindungsverlust Datenbankprogrammierung 4
W Prepared Statement mehrere Zeichenketten Datenbankprogrammierung 4
G Keine Aussicht mit Prepared Statement Datenbankprogrammierung 10
P Prepared Statement scheint nicht zu funktionieren Datenbankprogrammierung 14
N Prepared Statement Datenbankprogrammierung 8
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
berserkerdq2 database is closed, obwohl ich alle statements in try catch blöcken habe? Datenbankprogrammierung 5
J Wohin mit den SQL-Statements ? Datenbankprogrammierung 7
E Kann man in einer if-Bedingung auch SELECT-Statements überprüfen? Datenbankprogrammierung 23
U JDBC prepaird Statements Datenbankprogrammierung 4
S SqlObject - eine objektorientierte Art SQL-Statements zu schreiben. Datenbankprogrammierung 4
P DB2 Reihenfolge Create Statements Datenbankprogrammierung 2
D Anzeige wärend des Ausführens eines Statements Datenbankprogrammierung 13
Z manipulation statements with executeQuery Datenbankprogrammierung 7
F statements und resultsets schließen Datenbankprogrammierung 2
M [gelöst] Problem mit SQL Server. Statements... Datenbankprogrammierung 4
G Library zum Generieren von SQL-Statements Datenbankprogrammierung 15
H Wie viele SQL-Statements gehen in ein Batch Datenbankprogrammierung 2
P frage zu "" bei INSERT STATEMENTS Datenbankprogrammierung 2
K frage zum ausführen eines INSERT statements Datenbankprogrammierung 16
J Aufteilung von Verbindungsaufbau & SQL Statements sinnvo Datenbankprogrammierung 15
R Statements und Resultset Allgemein Datenbankprogrammierung 2
H Sql Statements automatisch generieren lassen Datenbankprogrammierung 2
G Ausführen von SQL-Statements Datenbankprogrammierung 7
H logging von postgresql statements Datenbankprogrammierung 5
L Mehrere SQL-Statements gleichzeitig!? Datenbankprogrammierung 5
M Problem mit Insert-Statements/ PreparedStatements Datenbankprogrammierung 6
S Sets speichern Datenbankprogrammierung 2
R vor/nach INSERT mysql-SETS absetzen Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben