# Vector in eine Datenbank speichern?



## Fastkiller (14. Februar 2008)

halli hallo... 

Bin noch ein totaler anfänger in java und Ich hab da ein Problem und werd jetzt versuchen das so gut wie möglich zu beschreiben =) 
_________ 

Ich hab nen Vector. In dem Vector steht folgendes(Wenn ich ihn mit Sys.out.pritnln ausgebe): 



```
DataVector :  [AHS, testDaten, 21534, 21342, Land, www.blablzb.at, 1]
```

Meine Tabelle in der Datenbank besteht aus den folgenden Spalten: 


```
Art, Adresse, Hausnummer, Postleitzahl, Ort, Homepage, nr
```
 
Gibt es irgendeine möglichkeit die einzelnen daten vom Vector auszulesen und diese mit 
nem INSERT befehl in die Datenbank einzufügen? 

Oder gibt es einen eigenen befehl in JDBC der den Vektor den betreffenden Spalten zuordnet? 
_________ 

So ich hoffe ihr habt meine Problemstellung verstanden  

Bin jedenfalls für alle Infos offen   


mfg


----------



## zerix (14. Februar 2008)

Hallo,

mit der Methode get() kannst du die einzelnen Felder des Vectors auslesen.

MFG

zEriX


----------



## Fastkiller (14. Februar 2008)

Wenn ich mit der methode Get auf den Vektor zugreife dann gibt er mir folgendes aus:


```
System.out.println(DataVector.get(1));
```

Ausgabe
DataVector :  [AHS, testDaten, 21534, 21342, Land, http://www.blablzb.at, 1]


----------



## Matze (14. Februar 2008)

Ich glaube Sascha wollte dich nur auf den richtigen Weg bringen:
Mit get die Daten auslesen und dann (gegebenfals noch bearbeiten) in die Datenbank.

[AHS, testDaten, 21534, 21342, Land, http://www.blablzb.at, 1] - die Daten sind doch super, kannst du alle schön am Komma trennen. Oder in ner MySQL Datenbank, kannst du die Daten auch so hineinpacken


----------



## Fastkiller (14. Februar 2008)

Ja schon nur wie bekomme ich zb genau den Text 


```
[AHS]
```
aus dem Vector? Geht das?

PS:
Mein Vektor hat die Daten von einer MYSQL Datenbank. 
Wie kann ich den jetzt wieder zurückschreiben? versteht der INSERT befehl das, dass ein Vektor ist und weißt die einzelnen Daten den Spalten zu?.


----------



## Matze (14. Februar 2008)

Fast.  Schau dir doch mal die Methoden IndexOf() und Substring() der Klasse String an.

Mit Substring() kannst du über einen Index einen Teilstring herausschneiden.

Mit IndexOf() kannst du herrausfinden welchen Index ein Komma hat.

Viel Glück


----------



## Matze (14. Februar 2008)

Einen ganzen Vector geht glaub ich nicht.


```
"INSERT INTO DeineDatenBank (Art, Adresse, Hausnummer, Postleitzahl, Ort, Homepage, nr) VALUES("\"" + ArtString + "\", \"" AdresseString + "\", \"" + ...
```


----------



## Fastkiller (14. Februar 2008)

Das mit Substring und IndexOf hab ich nicht ganz verstanden ... 

wo muss ich die Methode ausführen das der die kennt.. 
phu so viele neue infos bin total überfordert xD

Könntest du mir vl ein kleines beispiel schreiben wie das dann im Java Code ausschaut?


----------



## Matze (14. Februar 2008)

Hast du schon mal in die Java API geschaut, was String für Methoden hat?

```
String strNeu = StringAusVector.Substring(int iStartIndex)
```
oder
	
	
	



```
String strNeu = StringAusVector.Substring(int iStartIndex, int iEndIndex)
```

Das sind die 2 Möglichkeiten.

Sorry, aber ein bischen musst du dich schon selbs Anstrengen.


----------



## Fastkiller (14. Februar 2008)

danke schön =) 

Mit:

```
int i = dataVector.get(1).toString().indexOf(',');
    	System.out.println("Vektor:  "+dataVector.get(1));
    	String strNeu = dataVector.get(1).toString().substring(1, i);
    	System.out.println(strNeu);
```

Gibt er mir jetzt genau 
	
	
	



```
AHS
```
 aus. Nur wie schaff ich das jetzt mit 
IndexOF das er mir testDaten auch ausgibt.. und dann weitergeht bis zum nächsten strichpunkt und das nächste ausgibt.. 
Ich griegs einfach nicht hin


----------



## Matze (14. Februar 2008)

IndexOf(",") liefert dir den Index des ERSTEN Kommas als int zurück
IndexOf("," , int iIndex) macht das selbe, aber erst ab dem übergebenen Index.

Jetzt müsste es aber klar sein.


----------



## Fastkiller (14. Februar 2008)

hmm das gibts nicht.. ich bekomms nicht hin.. 

Mit dem Code müsste es doch klappen, tut es aber nicht:


```
int i = dataVector.get(1).toString().indexOf(','); //liefert dir den Index des ERSTEN Kommas als int zurück -->zb 4
    	
    	int i1 = dataVector.get(1).toString().indexOf(',',i+1); //index , ab position 4

    	System.out.println("Vektor:  "+dataVector.get(0));
    	String strNeu = dataVector.get(0).toString().substring(1, i);
    	String strNeu1 = dataVector.get(0).toString().substring(i, i1); //
    	System.out.println("String alt: "+strNeu);
    	System.out.println("STRING NEU:"+strNeu1);
```

Ausgabe:
[AHS, testDaten, 21534, 21342, Land, http://www.blablzb.at, 1]
String alt: AHS
STRING NEU:  


Achh gott ich greigs einfach net hin ... hab schon fast alle kombinationen versucht 
Langsam verzweifl ich


----------



## procurve (14. Februar 2008)

Warunm nicht einfach mit String.split() arbeiten? Ist doch viel einfacher, als das mühselige gebastel mit indexOf() und subString().


----------



## Matze (14. Februar 2008)

Was genau klappt denn gerade nicht? Gibts ne Fehlermelgung?

@procurve
Kenn ich noch nicht, ich arbeite mit Java1.3 ^^


----------



## Matze (14. Februar 2008)

Fastkiller hat gesagt.:


> ```
> String strNeu1 = dataVector.get(0).toString().substring(i, i1);
> ```



Wenn ich das richtig sehe, dann ziehst du da nur die Leerzeile hinter dem Komma raus.

Lass dir doch mal deine Variablen (i, i1) ausgeben. Dann kannst du sehen was sie gerade rausschneiden.

Ps.: Schau dir bei gelegenheit mal die Namenskonvention an, irgenwann blickst du nicht mehr durch.


----------



## Fastkiller (14. Februar 2008)

ne ich checks nicht... 


```
int i = dataVector.get(1).toString().indexOf(',');
    	
    	int i1 = dataVector.get(1).toString().indexOf(',',i+1);

    	System.out.println("Vektor:  "+dataVector.get(0));
    	String strNeu = dataVector.get(0).toString().substring(1, i);
    	System.out.println("i: "+i+"i1: "+i1);
    	String strNeu1 = dataVector.get(0).toString().substring(i+1, i1);
    	System.out.println("String alt: "+strNeu);
    	System.out.println("STRING NEU:"+strNeu1);
```

Vektor:  [AHS, Ödenburgerstrasse2, 2, 1210, Wien, http://www.hallo.de, 3]
i: 4i1: 14
String alt: AHS
STRING NEU: Ödenburg



Langssam geb ichs auf  das gibts nicht... so einfach und doch so kompliziert


----------



## MeinerEiner_80 (14. Februar 2008)

Moin!
Wenn ich das hier richtig überblicke, steht das hier zum Beispiel in deinem Vector:

```
AHS, testDaten, 21534, 21342, Land, www.blablzb.at, 1
```

Wie procurve sschon sagte, mach dir das Leben mit diesen indexOf und substring Methoden nicht so schwer. Nutze die split Methode..(falls du nicht auch noch Java 1.3 nutzt  )

```
String str = "AHS, testDaten, 21534, 21342, Land, www.blablzb.at, 1";
String[] parts = str.split(",");
for(String s : parts){
    System.out.println(s);
}
```

Ausgabe:


> AHS
> testDaten
> 21534
> 21342
> ...



*grüssle*
MeinerEiner


----------



## Fastkiller (14. Februar 2008)

Habs soeben selber rausgefunden mit split ...

Trotzdem danke an alle! =) Funktioniert wunderbar mit split


Dankeschön =)


----------

