2016-07-17 6 views
0

BEARBEITET!Vaadin Zugriff Inhalt von SQL-Container

I Retriev Daten von einer mysql DB unter Verwendung Vaadin, SQLContainer und Freeformquery. Jetzt möchte ich alle Beschreibungen in einem String bekommen (später wird jeder String gedruckt/zu einer Textdatei hinzugefügt).

.... 
String text =""; 
FreeformQuery subcatExtractionQuery = new FreeformQuery("select Description from customers", connectionPool); 
SQLConateiner s = new SQLContainer(subcatExtractionQuery); 

Collection<?> c = s.getContainerPropertyIds(); 
    for(Object o : c){ 
     Property<?> p = s.getContainerProperty(o, "Description"); 
     text+=(String)p.getValue(); 
    } 
    System.out.println(text); 

ich den Fehler: java.lang.NullPointerException Problem Linie ist der Text + = ... wenn ich es entfernen, erscheint kein Fehler. ABER Die Abfrage gibt Daten zurück!

Diese Beschreibungen sind Strings. Ich muss alle Wörter jeder Zeichenfolge in einer einzigen Liste von Token haben (ich habe bereits eine Methode, um eine Token-Liste einer Datei zu erstellen.) (Fragen Sie nicht, ob das Sinn macht, es ist nur ein Beispiel).

Wie kann ich auf die Saiten meiner SQL-Container? Bisher habe ich nur den Container als Datenquelle einer Tabelle verwendet und nicht auf einzelne Elemente/Strings zugegriffen. Ich brauche eine for-Schleife, um jeden String zu bekommen ... wie funktioniert das?

+1

Es ist ein wenig unklar, was Sie versuchen zu erreichen, da dieser Ton besser geeignet für eine grundlegende JDBC/ORM Abfrage ohne weitere Interaktion Vaadin, außer vielleicht für eine Schaltfläche klicken ... Sind Sie Versuchen Sie, die Daten, die Sie in einer Tabelle/Grid/etc anzeigen, in einer Datei zu speichern oder ..? Bitte geben Sie weitere Einzelheiten an. – Morfic

+1

Sie können alle ItemId aus dem Container abrufen (die die Zeilen identifizieren) und dann mit getItemProperty (..) den Wert des Felds abfragen –

+0

Ich trid das: \t \t FreeformQuery subcatExtractionQuery = neue FreeformQuery ("Nachricht auswählen von" + sqlPart, connectionPool); \t \t SQLContainer s = neuer SQLContainer (subcatExtractionQuery); Aber das funktioniert nicht \t \t Sammlung t = s.getContainerPropertyIds(); \t \t für (Object o: t) { \t \t \t o.getItemProperty(); \t \t} – Tobi123

Antwort

0

Seine getItemIds insted getContainerPropertyIds. Also diese Worte

.... 
String text =""; 
FreeformQuery subcatExtractionQuery = new FreeformQuery("select Description from customers", connectionPool); 
SQLConateiner s = new SQLContainer(subcatExtractionQuery); 

Collection<?> c = s.getItemIds(); 
for(Object o : c){ 
    Property<?> p = s.getContainerProperty(o, "Description"); 
    text+=(String)p.getValue(); 
} 
System.out.println(text); 
Verwandte Themen