HSQLDB INSERT INTO in einer For Schleife mit selber ID, machbar? Alternative?

DefconDev

Bekanntes Mitglied
Hallo zusammen,

ich müsste ein Array in ein INSERT INTO einfügen über eine For-Schleife mit der selben ID.

Java:
for(int i=0,j=1;i<spielerArray.length;j++,i++){
	
updateSpielerTable = "INSERT INTO \"Match\" (\"Datum\", \"Karte\", \"Anzahl Spieler\", \"Team A winloss\", 
\"Team B winloss\", \"Spieler "+j+"\", \"Nation "+j+"\" ) "

+ "VALUES (\'"+date+"\',\'"+spielerArray[i].getChosenMap_Spieler()+"\',\'"+spielerArray.length+"\',\'"+Spieler.isWinTeamA()+"\',\'"+Spieler.isWinTeamB()+"\'"
+ ",\'"+spielerArray[i].getSpielerName()+"\',\'"+spielerArray[i].getChosenNation_Spieler()+"')";
									
					
statement.execute(updateSpielerTable);
				
}

Das Array ist nicht immer gleich groß. Sobald die For Schleife durchläuft, wird logischerweise immer eine neue Zeile mit neuer ID vergeben(Auto increment). Also in dem Fall wenn das Array 8 groß ist, werden 8 Zeilen erschaffen mit der ID 1-8. Das möchte ich aber nicht, sondern viel mehr dass das komplette Array unter der selben ID gespeichert wird.

Ich hatte nun die Idee, erst mal ohne Schleife ein INSERT INTO Statement ausführe, und dann die Zeile komplett mit null beschreibe und dann UPDATE die selbe Zeile mit Daten füllen.

Gibt es irgend etwas eleganteres?
 

JavaMeister

Gesperrter Benutzer
Ich verstehe noch das Problem nicht.

Offensichtlich ist ID ein Autoincrement. Ergo wäre alles sowieso nicht in einer ID zu speichern.

Das Problem ist, dass hier vermutlich ein Modelierungsfehler vorliegt. - Die Relation "Match" darf keine Spielerinformationen enthalten, weil ein Match pot. aus verschiedenen Spielern besteht: Es wäre also eine 1:N relation.
 

DefconDev

Bekanntes Mitglied
Ja, es sollen unter einer ID so ziemlich alles gesammelt werden was für mich nützlich ist, anzahl der Spieler, welche Karte gespielt wurde, welche Spieler überhaupt teilgenommen haben.

Wenn du sagst es liegt ein Modelierungsfehler vor, inwiefern muss ich dann umdenken? Das Autoincrement kann ich auch entfernen, das spielt für mein Vorgehen keine Rolle. Habe das nur aus Gründen des Komfort so gewählt. Die Tabelle selber ist mit keiner anderen verknüpft.
 

JavaMeister

Gesperrter Benutzer
Habe ich geschrieben.

1. Neue Relation "Match_spieler" mit spieler_id, match_id

Damit verknüpfst du einen vorhandenn Spieler zu einem Match

2. Anzahl spieler ergibst sich aus count(*) from match_spieler where match_id = x

3. Die Felder zu den Spieler natürlich aus match entfernen. Auch nationalität.

4. Eigentlich müsste es eine Relation "SPieler" geben, wo die spieler eben enthalten sind.
 

DefconDev

Bekanntes Mitglied
Ich kann mich gerade nicht in dein Konzept reindenken.

Vielleicht muss ich etwas ausholen.

Die Spieler werden zufällig zusammengewürfelt in zwei Teams, dann wird eingetragen, welches Team gewonnen hat, das findet alles in einer DefaultTable statt. Von dort aus will ich dann das extra eintragen in eine Datenbanktabelle.

Ich will dann anhand der Match id feststellen wer im ersten Spiel dabei war und gewonnen hat, wer zb. im Spiel 10 gewonnen und verloren hatte und welche Nationen dabei waren.
 

DefconDev

Bekanntes Mitglied
Was ich sagen will, ich brauche eigentlich keine Verknüpfung mit anderen Tabellen. Ich brauche nur ne simple Ablage wo ich mal reinschauen kann wie unter welche Match id die Spiele stattgefunden haben.
 

Thallius

Top Contributor
Doch, Du brauchst eine zweite Tabelle mit den mindestens Spalten "Spieler" und "MatchId". In diese trägst für jeden Spieler der das Match mitgemacht hast einen Eintrag ein. Nun kannst du alle Spieler zu einer MatchID heruasfinden.

Wie JM bereits schrieb. Die Spieler haben in deiner Tabelle nichts verloren. Deine Tabelle sollte auch besser Match-Tabelle heissen, denn sie enthält keine Daten zu Spielern sondern zum Match.

Gruß

Claus
 
Zuletzt bearbeitet:

JavaMeister

Gesperrter Benutzer
Ich kann mich gerade nicht in dein Konzept reindenken.

Dazu braucht es auch Grundlagen (1...3) Kapitel Relationenalgebra. Du musst wisssen, wie man eine 1:N, M:N oder 1:1 Beziehung in Relationalen Datenbanken ablegt.

Ansonsten steht ja schon alles hier. Und simpler geht es nicht ;D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S 2 Tabellen zu einer zusammenführen, INSERT INTO Fehler Datenbankprogrammierung 5
T compiler fehler: should be mapped with insert="false" update="false" Datenbankprogrammierung 1
L SQL Datenbank INSERT INTO Datenbankprogrammierung 6
L SQL Datenbank Tabelle insert Datenbankprogrammierung 7
O HOW TO INSERT PRIMARY INTO ANOTHER TABLE AND USE IT AS FOREIGN KEY TO DISPLAY DATA IN A RELATIONSHIP Datenbankprogrammierung 3
G Eine Spalte in xampp als Typ array erstellen - ein array mit "insert" hinzufügen. Datenbankprogrammierung 3
C Problem with INSERT.............ON DUPLICATE KEY Datenbankprogrammierung 3
A MySQL Select und Insert in Java Datenbankprogrammierung 15
S PostgreSQL Bytea INSERT Datenbankprogrammierung 8
W Problem mit Insert in zwei Tabellen Datenbankprogrammierung 8
L INSERT INTO Befehl in Java Datenbankprogrammierung 8
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
D Insert Methode per Servlet Datenbankprogrammierung 2
D Insert Methode per Servlet Datenbankprogrammierung 0
D SQLite INSERT OR REPLACE INTO macht neuen Eintrag?! Datenbankprogrammierung 2
O JDBC Daten in zwei Tabellen mit zwei foreach-Schleifen einfügen (insert into) Datenbankprogrammierung 1
B JPA->fehler beim Insert in die Datenbank Datenbankprogrammierung 3
A Oracle insert Array in DB Datenbankprogrammierung 7
C MySQL JTable in JScrollPane nach insert aktualisieren Datenbankprogrammierung 3
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
M JAVA Derby INSERT probleme Datenbankprogrammierung 12
Y MySQL Eclipselink Insert JSF Beispiel gesucht Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
M Derby/JavaDB Derby SQL Insert mit AUTO_INCREMENT, welche ID wurde vergeben? Datenbankprogrammierung 6
J SQL-Statement Meine insert befehle funktionieren nicht und ich weiß nicht wo der fehler liegt Datenbankprogrammierung 5
M INSERT-Problem = integrity constraint violation: foreign key no parent Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
M MySQL Insert über mehrere Tabellen Datenbankprogrammierung 7
V HSQLDB Insert in eine Tabelle mit Autoincrement Datenbankprogrammierung 2
B MS SQL: Insert LOB Datenbankprogrammierung 4
M MySQL INSERT will einfach nicht funktionieren Datenbankprogrammierung 9
H HSQLDB insert .... values("test1",select test2 from foo) Datenbankprogrammierung 2
D JDBC insert mit select abfrage Datenbankprogrammierung 5
R vor/nach INSERT mysql-SETS absetzen Datenbankprogrammierung 2
C insert into mit between-Anweisung Datenbankprogrammierung 10
C Derby/JavaDB INSERT auf FOREIGN KEY schlägt fehl Datenbankprogrammierung 2
F Insert into Access Datenbankprogrammierung 3
S Nochmals: ID ermitteln nach Insert Datenbankprogrammierung 2
S ID Wert von Insert über jdbcTemplate.update Datenbankprogrammierung 3
O Viele Verbindungen-Exception bei insert Daten zur MySQL-Datenbank Datenbankprogrammierung 2
B SELECT ja - INSERT nein (MySQL) Datenbankprogrammierung 3
E Derby/JavaDB Keine Reaktion von "insert into" im ActionListener Datenbankprogrammierung 22
A Oracle Unbekannter Fehler bei insert Befehl Datenbankprogrammierung 3
T MySQL Db select * und Insert schlagen fehl Datenbankprogrammierung 2
Kenan89 Insert ohne Auswirkung Datenbankprogrammierung 7
B MySQL myBatis INSERT Datenbankprogrammierung 13
E Access Datenbank mit Insert befüllen Datenbankprogrammierung 5
M Datenbankverbindung zu langsam beim Insert? Datenbankprogrammierung 6
L H2 Auto INC Primary Key & Insert Datenbankprogrammierung 8
R Derby/JavaDB Insert Statement Probleme Datenbankprogrammierung 14
F H2:Wie kann man insert eine Reihe "int" wert als blob in table? Datenbankprogrammierung 12
S MySQL INSERT schlägt nicht fehl, fügt aber auch nichts ein Datenbankprogrammierung 13
S Probleme mit INSERT Befehl Datenbankprogrammierung 11
L MySQL Prepared Statement batch langsamer als bulk insert? Datenbankprogrammierung 10
M Insert in Table mit 250 Feldern Datenbankprogrammierung 2
E [ACCESS ODBC] INSERT INTO Fehler Datenbankprogrammierung 4
A Insert Methode Syntaxfehler Datenbankprogrammierung 2
G INSERT DATE in Oracle-DB Datenbankprogrammierung 11
G ODBC Insert und gleich danach Selects Datenbankprogrammierung 8
Iron Monkey Insert into Spalte ID AUTO_INCREMENT Datenbankprogrammierung 7
C ID-Rückgabe bei INSERT Datenbankprogrammierung 5
D mysql insert - performance/robustheit, "best practice" Datenbankprogrammierung 15
M Hibernate: Insert statt Update Datenbankprogrammierung 8
C Rückgabe ob INSERT erfolgreich Datenbankprogrammierung 11
H Batch Update/Insert Datenbankprogrammierung 4
E Insert oder Update- Prüfung Datenbankprogrammierung 3
K DB2 Insert mit Subselect Fehler Datenbankprogrammierung 2
M Derby insert, ID auslesen Datenbankprogrammierung 3
W Problem bei Insert mit JDBC auf MS-SQL-Server 2005 Datenbankprogrammierung 7
G Frage zum Insert-Statement Datenbankprogrammierung 2
R Probleme mit Insert Datenbankprogrammierung 2
D Problem: Prepared Statement (Insert) funktioniert nicht. Datenbankprogrammierung 3
M Insert Update usw. Datenbankprogrammierung 2
P Insert into mit zwei Datenbanken Datenbankprogrammierung 3
S Insert mit Select Datenbankprogrammierung 6
G INSERT-STATEMENT Datenbankprogrammierung 6
M insert in 2 tabellen Datenbankprogrammierung 7
J Insert auf Access DB funktioniert nicht Datenbankprogrammierung 5
H Beim insert bekomme ich den Fehler missing select keyword Datenbankprogrammierung 2
V Fehlermeldung beim Insert Datenbankprogrammierung 16
S Insert into , executeupdate oder executequery Datenbankprogrammierung 3
B PrepareStatement "Insert into" fehlermeldung Datenbankprogrammierung 13
D Insert Oracle BLOB Datenbankprogrammierung 1
T ibatis + "generated p-key" nach insert? Datenbankprogrammierung 24
G Herausfinden des Primary Keys nach INSERT-Kommando? Datenbankprogrammierung 4
G INSERT abfragen ob erfolgreich? Datenbankprogrammierung 5
D INSERT String enthält ' wie kann man das Escapen? Datenbankprogrammierung 4
T INSERT-Befehl in Java für Oracle Datenbankprogrammierung 4
Y Hibernate - Datum Insert Datenbankprogrammierung 7
D ODBC Zugriff auf MDB-Datenbank, Insert Into ohne Funktion Datenbankprogrammierung 2
U INSERT INTO von 2 Textfeldern Datenbankprogrammierung 6
D Syntaxfehler in der INSERT INTO Anweisung Datenbankprogrammierung 2
F JAVA & MySQL : INSERT INTO DB ! Datenbankprogrammierung 2
D Problem mit INSERT INTO Datenbankprogrammierung 19
S insert into table Datenbankprogrammierung 8
S Insert in Datenbank Datenbankprogrammierung 15
G Insert-anweisung mehrere Varianten eine geht Datenbankprogrammierung 2
P frage zu "" bei INSERT STATEMENTS Datenbankprogrammierung 2
K frage zum ausführen eines INSERT statements Datenbankprogrammierung 16
K INSERT INTO bei Windows 2005 SQL Server Standard Edition . Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben