Split String für SQl query

Chriss_07

Aktives Mitglied
Ich bekomme eine String soweit schon aufgesplittet, das mir die einzelnen Werte angezeigt werden
Java:
String[] split = ((String) tour).split("\\,");
	for(int i = 0, length = split.length;i < length; i++){
		System.out.println(split[i]);

Nun möchte ich diese aber für ein
SQL:
insert into table
verwenden und sie dabei richtig sortiert dem Table übergeben.

Insgesamt werden so 9 Values der DB zugeführt, 5 aus dem String und 4 über
Java:
...'" + value.getTest1 + "' ........
So könnte ich den SQL String aufbauen um dem Aufbau der DB gerecht zu werden, d.h ich versuche nun via Getter und Setter auf die einzelnen Stringelemente zuzugreifen bisher aber ohne Erfolg.
Java:
		split[0] =  getString(0);
		split[1] =  getString(1);
Aber ich komm da nicht weiter und suche mir in Foren einen Wolf, denn zum Thema split String
gibt es ne Menge.

Hat jeamnd eine guten Tipp für mich?
Gruß Chriss
 
G

gman

Gast
d.h ich versuche nun via Getter und Setter auf die einzelnen Stringelemente zuzugreifen

Getter und Setter wovon? Du hast doch jetzt alle Bestandteile in dem Stringarray "split"
oder habe ich da was falsch verstanden? Damit kannst du dir doch einen anderen
String zusammenbauen:

Java:
...'" + value.getTest1 + "'" + split[0] + "' .....
 

Chriss_07

Aktives Mitglied
Damit kannst du dir doch einen anderen
String zusammenbauen:

Java:
...'" + value.getTest1 + "'" + split[0] + "' .....
Ja aber wie übergebe ich das einer anderen Klasse?
Hatte ich nicht erwähnt - aber da steh ich auf dem Schlauch:bahnhof:

Edit: Also den split[0] usw aus einer Klasse in die Klasse mit dem SQL String
 
Zuletzt bearbeitet:
G

gman

Gast
Mach doch aus "split" eine Instanzvariable mit Getter/Setter-Methoden in der Klasse A
und ruf diese aus Klasse B auf. Natürlich musst du in Klasse B ein Objekt von A erzeugen
oder irgendwie eine Referenz auf ein bestehendes Objekt erhalten. Wie du das machst,
hängt davon ab wie die beiden Klassen zusammenhängen.
 

Chriss_07

Aktives Mitglied
Joa so hatte ich mir das gedacht, mit
Java:
private String[] split;
die Instanz erstellt
und
Java:
	public void setTour(Object tour) {
		this.tour = tour;
	
	String[] split = ((String) tour).split("\\,");
	for(int i = 0, length = split.length;i < length; i++){
		System.out.println(split[i]);;
zerlegt den String Tour
mit
Java:
	public Object getTour() {
		return tour;
		
	}
gebe ich ihn zurück, komme da aber nicht ran
Also

Getter Setter für den Split
Java:
	public void setSplit(String split[]){
		this.split = split;
	}
	public String[] getSplit(){
		return split;
	}
Dann bekomme ich 'null'!
 
G

gman

Gast
Du musst dann auch die Instanzvariable "split" setzen. Du legst jetzt ja eine neue
(lokale) Variable an:

Java:
 String[] split = ((String) tour).split("\\,");

Lass einfach das "String[]" weg, dann sollte es laufen.
 

Chriss_07

Aktives Mitglied
Ja das ist wohl wahr.
Mit der Instanzvariabel und einem Getter
Java:
'" + tour.getSplit() + "'
bekomme ich
Java:
[Ljava.lang.String;@c3c749
. Selbst wenn, könnte ich nicht die einzelnen Werte im String übergeben, sondern nur den ganzen Stringinhalt.
Setzte ich statt
Java:
'" + tour.getSplit() + "'
Java:
'" + split[0] + "'
kann ich es nicht kompilieren - split muss eine lokale Variable sein.
Also der String setzt sich aus einer DB Abfrage zusammen. Dort sind viele Rows, die als String in einer ComboBox angezeigt werden. Der nun selektierte String soll in eine andere DB geschrieben werden.
Die Klasse mit der ComboBox wird von einem Container verwaltet ( getter und setter ), da auch andere Formularfelder Werte beisteuern( 5 im String - 4 weitere Formularfelder). Hier soll der String für den letzten SQL insert vorbereitet werden, da die Werte im String falsch sortiert sind. Das lässt sich auch nicht ändern, da bestimmte Werte im String in der CB an erster Stelle stehen sollen, später aber in der DB an anderer Stelle. Somit muss der String zerlegt werden und einzeln zugreifbar sein ( geht nicht).
Was mich wundert ist, wenn ich ein system.out ranhänge, bekomme ich die einzelnen Werte angezeigt. Nur darauf zugreifen kann ich nicht.

-Als Vector fülle ich die CB mit den Strings.
- der Container erbt das Object
Java:
private Object tour;

Damit komme ich recht schnell klar:) - nur die weitere Verarbeitung scheitert. Ich probier das noch mal mit einem Array, vllt fällt dir aber noch was wichtiges ein, was ich übersehen habe.
Ich denke mal es ist der Vector, den ich zum String zerlegen will.
 
G

gman

Gast
"getSplit()" liefert dir ja ein Stringarray zurück, daher die komische Ausgabe. Um auf die
einzelnen Elemente zuzugreifen kannst du einfach sowas machen:

Java:
'" + tour.getSplit()[0] + "'

oder du speicherst das Stringarray in Klasse B auch wieder in einer Instanzvariablen und
weist ihr den Rückgabewert von "getSplit()" zu.
 
G

Gast2

Gast
Ich probier das noch mal mit einem Array, vllt fällt dir aber noch was wichtiges ein, was ich übersehen habe.

Du solltest PreparedStatements verwenden und nicht die Queries als String zusammen konkatenieren - und hast auch keine Probleme mit dem Escaping

Das dein Code nicht geht ist klar:

Java:
'" + tour.getSplit() + "'

Das kann nicht gehn, da die Rückgabe von tour.getSplit ein Array ist, also wird dann einfach toString aufgerufen. Du müsstest nehmen:
Java:
'" + tour.getSplit()[0] + "'


Oder aber:
Java:
String[] split = tour.getSplit();
'" + split[0] + "'

//EDIT: zu langsam ;)
 

Chriss_07

Aktives Mitglied
Du solltest PreparedStatements verwenden

Das habe ich jetzt schon öfters gehört:autsch:


Das kann nicht gehn, da die Rückgabe von tour.getSplit ein Array ist, also wird dann einfach toString aufgerufen. Du müsstest nehmen:
Java:
'" + tour.getSplit()[0] + "'

Jupp so geht's - Danke euch beiden.
Nu habe ich nur noch ein
SQL:
datatype mismatch
.
Wahrscheinlich sind einige Felder leer ( ,' ', ) oder null ( , 'null', ). Aber sollte das der Datenbank nicht egal sein? Die Felder sind vom Typ TEXT bzw. NUMERIC

EDIT:

SQL:
datatype mismatch
kommt auch wenn alle Felder ausgefüllt sind

EDIT EDIT:

Habs gefunden - ein Feld war als PRIMARY KEY deklariert, das sollte aber TEXT sein.
Nun stimmts. :toll:
 
Zuletzt bearbeitet:
G

Gast2

Gast
Habs gefunden - ein Feld war als PRIMARY KEY deklariert, das sollte aber TEXT sein.

Erm - das eine hat nichts mit dem anderen zu tun. PRIMARY KEY ist der Constraint/Index auf der Spalte - TEXT defniert den Datentyp. Natürlich kann eine Spalte vom typ TEXT und gleichzeitig ein PRIMARY KEY auf der Spalte gesetzt sein.

ABER: PRIMARY KEY erzwingt das alle Werte unterschiedlich und nicht NULL sein müssen - sonst würde eine Primärschlüssel auch wenig Sinn machen.

Wenn deine Lösung da drin besteht den PRIMARY KEY zu droppen damit du NULL oder Leerstrings in die Spalte inserten kannst hast du soeben dein Datenmodel in die Mülltonne geworfen ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D SQL Server Android App: 'int java.lang.String.length()' on a null object reference Datenbankprogrammierung 15
T JPA: Nach String statt Primärschlüssel suchen Datenbankprogrammierung 9
M Oracle String aus Column splitten und x Rows daraus erstellen Datenbankprogrammierung 1
C String in Datenbank einfügen Datenbankprogrammierung 11
E Conversion failed when converting date and/or time from character string. Datenbankprogrammierung 3
D String übergeben Datenbankprogrammierung 7
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
M SQLite Suche nach String Datenbankprogrammierung 4
C Objekte aus DB in Strings umwandeln also von List<Objekt> in String Datenbankprogrammierung 6
A ByteArray zu String dann wieder zu ByteArray Datenbankprogrammierung 2
D HSQLDB SQL ORDER BY nur mit fixen String machbar? Datenbankprogrammierung 16
F Dynamischen String in SQL Statement einbinden Datenbankprogrammierung 9
N String Array in While Schleife befüllen Datenbankprogrammierung 2
H Derby: SYSCS_UTIL.SYSCS_EXPORT_QUERY mit String Abfrage in wehre-Klausel nicht möglich Datenbankprogrammierung 3
R Zeichenkette in String zählen Datenbankprogrammierung 3
P GWT Applikation-The method forName(String) is undefined for the type Class Datenbankprogrammierung 10
B Mysql speichert keine 0 alls String Datenbankprogrammierung 11
B MySQL Datenbank Connection als String zurückgeben Datenbankprogrammierung 7
F Oracle ResultSet zu einer HashMap<Integer, String[]> Datenbankprogrammierung 6
I DB-Zelleninhalt mit String vergleichen klappt nicht Datenbankprogrammierung 3
I SQL_Abfrage-Ergebnis (ResultSet) in String[] speichern Datenbankprogrammierung 29
M SQL String Datenbankprogrammierung 2
G Sonderzeichen im String codieren Datenbankprogrammierung 4
K Date in SQL-String konvertieren Datenbankprogrammierung 3
B String aus txtDatei auslesen und in Datenbank schreiben. Datenbankprogrammierung 8
T Mittels SQL-String ein Berechnung vornehmen Datenbankprogrammierung 2
C SQL String zwei Tabellen vergleichen und gleiche Zeile löschen Datenbankprogrammierung 25
J String[] in eine SQL-Anweisung implementieren Datenbankprogrammierung 13
F ResultSet to String[] Datenbankprogrammierung 3
S Connection String MS Access mit Systemdatenbank / Arbeitsgruppeninformationsdatei Datenbankprogrammierung 4
G Hilfe um String an Datenbank zu schicken Datenbankprogrammierung 3
M SELECT longtext -> als String behandeln Datenbankprogrammierung 6
G Daten aus ResultSet in String-Liste Datenbankprogrammierung 13
padde479 Connection String Oracle Datenbankprogrammierung 5
T SQL Date String in java.util.Date umwandeln Datenbankprogrammierung 3
G ResultSet: String mit Anführungszeichen einlesen Datenbankprogrammierung 8
A JPA + @OneToMany + String ArrayList Datenbankprogrammierung 4
S Char to String aus DB Datenbankprogrammierung 2
Q string Vergleich Datenbankprogrammierung 2
M Konvertierung eines Ojects to String Datenbankprogrammierung 3
M Preparedstatement SQL-string auslesen Datenbankprogrammierung 13
D INSERT String enthält ' wie kann man das Escapen? Datenbankprogrammierung 4
G MsSQL | Statement.execute(String s) Datenbankprogrammierung 3
G CLOB to String - Encoding Problem Datenbankprogrammierung 6
D String[][] Array in Access Datenbank speichern Datenbankprogrammierung 5
K Hibernate: Liste von String-Werten Datenbankprogrammierung 2
S String probleme Datenbankprogrammierung 3
R Nach String in MySQL datenbank suchen Datenbankprogrammierung 7
M Datum's String in MSSQL oder MySQL wie konvertieren ? Datenbankprogrammierung 3
T String in DB(Oracle) schreiben mit Leerzeichen Datenbankprogrammierung 4
K ResultSet: Erste Zeile ausgeben, Datensatz in String speiche Datenbankprogrammierung 13
E Fehler bei String-Insert in MySQL-DB Datenbankprogrammierung 8
L Datum (String) in MySQL-Tabelle (date) speichern Datenbankprogrammierung 4
C SQLException wenn String auf VARCHAR geschrieben wird Datenbankprogrammierung 10
T Methode getColumnIndex(String columnName) ? Datenbankprogrammierung 6
K string literal too long was tun ? Datenbankprogrammierung 9
D Verknüpfung auflösen für Frontend Datenbankprogrammierung 7
R Beste Lösung für User Erstellung in mongodb Datenbankprogrammierung 1
I SaaS Applikation: pro Kunde eine Datenbank / Schema oder eine DB für alle Kunden? Datenbankprogrammierung 76
O apache derby in eclipse für Datenbanken einbauen Datenbankprogrammierung 3
Zrebna Empfehlung für ein kostenloses DB-Hosting gesucht Datenbankprogrammierung 6
M Lösungsvorschläge für Multi-User Datenbankprogrammierung 1
M Alle Records Felder kriegen für DB Abfrage Datenbankprogrammierung 14
pkm PostgreSQL Kann mit mybatis einen Parameter für eine postgreSQL-Abfrage nicht übergeben. Datenbankprogrammierung 5
Kirby.exe Denkanstoß für Ranking Datenbankprogrammierung 1
L Oracle Repräsentative Namen für die Column Types Datenbankprogrammierung 9
OnDemand Struktur für Parent / Child Produkt Datenbankprogrammierung 5
N ORM für Sqlite Datenbankprogrammierung 4
I Konzept: Klasse / Entity für Einstellung der Software Datenbankprogrammierung 3
H suche eine Login system Bibliothek für Java Datenbankprogrammierung 5
ruutaiokwu MySQL MariaDB-Client-Zertifkate, nur für einen bestimmten User Datenbankprogrammierung 5
B Datenmodell für Regeln + Bedingungen & Referenz auf andere Tabelle Datenbankprogrammierung 12
O Dokumentation für MariaDB 10.3. Datenbankprogrammierung 2
F MariaDatabase Einstellungen für Verbindungen Datenbankprogrammierung 5
Dimax MySQL Trigger für eine Spalte Datenbankprogrammierung 5
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
B Brauche Tipps für Datenbankdesign Datenbankprogrammierung 8
B Tabelle für "wiederkehrende Rechnungen" Datenbankprogrammierung 12
Danloc Informationen für Datenbankverbindung wo/wie speichern? Datenbankprogrammierung 11
J Warum sind Sockets für einen Live-Chat sinnvoll? Datenbankprogrammierung 8
R Java-Befehle/Operatoren für copy&paste Datenbankprogrammierung 2
X PostgreSQL Datenbankdesign für Vokabeltrainer Datenbankprogrammierung 48
@SupressWarnings() HSQLDB Datenbank für mein Dorfbauspiel "Time of Kings" Datenbankprogrammierung 6
M Idee Umsetzung //NFC Eintrittskarten für Geburtstag Datenbankprogrammierung 2
looparda Architektur für JPA Hibernate Umstieg Datenbankprogrammierung 14
P Datanbank für Java-Programmierung Datenbankprogrammierung 10
M Feedback für neues Buch über "Java und Datenbanken" erwünscht Datenbankprogrammierung 8
J SQLite Ich muss für mein Projekt meine Datenbank Kapseln Datenbankprogrammierung 2
J Tipps für ERM Datenbankprogrammierung 4
P Highlevel-Lösung für Speicherung von Baumstruktur mit unbekannter Tiefe Datenbankprogrammierung 1
F welche Datenbank für Messwerte? Datenbankprogrammierung 4
E Warum werden für Datenbanktabellen Schemanamen festgelegt? Datenbankprogrammierung 1
M DB Schema für Vokabeltrainer Datenbankprogrammierung 2
U SQLite Für mich etwa komplexe Abfrage via 2 Tabellen Datenbankprogrammierung 5
E Kann man, wenn man in DB2 Tabellen erstellt hat für dessen auch einen Command-File erstellen? Datenbankprogrammierung 1
T NoSQL Connection für die Thesis [GWT] Datenbankprogrammierung 1
J SQLite Abfrage ausführen stoppt für Zyklus? Wie es zu lösen? Datenbankprogrammierung 3
S HSQLDB Fehlermeldung für den Bildschirm Datenbankprogrammierung 3
L Datenmodell erstellen für eine Nutzertanalyse Datenbankprogrammierung 1

Ähnliche Java Themen

Neue Themen


Oben