2012-03-30 7 views
0

DB 액세스를 위해 Groovy SQL을 사용하고 있습니다. 아주 좋았지 만 해결책을 찾을 수 없다는 필요성이 있습니다. 나는 매김에서 SQL 클래스에서 아주 잘 지원 참조Groovy SQL을 사용하여 행의 페이징, 정렬 및 검색/필터링

, 예를 들면 :

sql.eachRow('select * from VENDOR', ((pageNumber-1)*pageSize)+1, pageSize) { row -> 
... 
} 

나는 또한/검색과 같이 필터링을 참조하십시오

def rows = sql.rows("select * from PROJECT where name like 'Gra%'") 

을 마지막으로 정렬 (필터링?)과 같이 (DataSet 클래스 사용) :

def vemdpr = new DataSet(sql, 'VENDOR') 
def sortedVendorsOfInterest = vendor. 
    findAll{ it.vendorName like '%Alpha%' }. 
    sort{ it.vendorName }.reverse() //for desc order, leave off "reverse" for asc 

협력? flexigrid를 사용하여 테이블 행을 표시하고 이러한 모든 기능을 조합 할 수 있습니다.

감사합니다. 마크

추신 Groovy를 사용하여이를 수행하는 방법을 아는 사람이 없다면 (내 선호도),이 모든 것을 SQL 쿼리로 결합하는 방법을 말해 줄 수 있다면 항상 쿼리를 실행할 수 있습니다.

답변

0

하나 개의 솔루션은 매개 변수를 사용하여 SQL 쿼리로 할 것 :

sql.eachRow('select * from VENDOR where vendorName like ? order by vendorName asc', ['%Alpha%'] ((pageNumber-1)*pageSize)+1, pageSize) { row -> 
... 
} 

가 페이징을 제공하지 않습니다 보여줍니다 데이터 집합 소스를 살펴 촬영. DataSet.rows()를 적절한 매개 변수 offset 및 maxRows로 확장하고 super.rows (getSql(), getParameters(), offset, maxRows)에 대한 기본 호출을 수정하여 쉽게 추가 할 수 있습니다.

- 업데이트 -

내가 그루비 JIRA에 문제를 제기하고 그루비 2.0로하고 그루비 1.8.7에서 그것을 만든 그루비 프로젝트를 해결하기 위해 끌어 오기 요청을 만들었습니다 (아직 발표되지 않음) . 이제 DataSet에서도 페이징이 지원됩니다!

:

는 끝내 2.0.0 API를 참조하십시오

관련 문제