2016-07-17 1 views
0

EDITED!SQL 컨테이너의 Vaadin 액세스 내용

Vaadin, SQLContainer 및 Freeformquery를 사용하여 mysql DB에서 데이터를 검색합니다. 이제 모든 설명을 하나의 문자열로 가져오고 싶습니다. 나중에 각 문자열이 텍스트 파일에 인쇄되거나 추가됩니다.

.... 
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); 

내가 오류를 얻을 : 나는 그것을 제거하는 경우 java.lang.NullPointerException이 문제 라인 텍스트 +입니다 = ..., 오류가 나타납니다. 하지만 쿼리는 데이터를 반환합니다!

이러한 설명은 문자열입니다. 하나의 토큰 목록에 각 문자열의 모든 단어를 포함해야합니다. 이미 파일의 토큰 목록을 만드는 방법이 있습니다. (이것이 의미가 있는지 물어 보지 말고 그냥 예입니다).

내 SQL 컨테이너의 문자열에 액세스하려면 어떻게해야합니까? 지금까지는 테이블의 컨테이너 als 데이터 소스 만 사용했으며 단일 항목/문자열에 액세스하지 않았습니다. 각 문자열을 얻으려면 for 루프가 필요합니다. 어떻게 작동합니까?

+1

그것은 어쩌면 버튼 클릭을 제외하고, 다른 angel이라는 상호 작용없이 기본 JDBC/ORM 쿼리에 대한 때문에이 소리 더 적합 당신이 달성하려고하는지 좀 불분명 ... 당신이 있습니까 테이블/그리드/etc에있는 데이터를 파일에 저장하려고 시도하거나 ..? 자세한 내용을 입력하십시오. – Morfic

+1

컨테이너에서 모든 ItemId를 검색하고 getItemProperty (..)를 사용하여 필드 값을 검색 할 수 있습니다. –

+0

나는 이것을 처리 할 것입니다 : \t \t FreeformQuery subcatExtractionQuery = new FreeformQuery ("Select Message from" + sqlPart, connectionPool); \t \t SQLContainer s = 새 SQLContainer (subcatExtractionQuery); 그러나 이것은 작동하지 않습니다. \t \t 컬렉션 t = s.getContainerPropertyIds(); \t \t for (Object o : t) { \t \t \t o.getItemProperty(); \t \t} – Tobi123

답변

0

getItemIds는 getContainerPropertyIds를 기반으로합니다. 그래서이 단어

.... 
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);