2011-03-16 4 views
0

내 sql 데이터베이스에서 일부 데이터를 가져 와서 .gsp 페이지에 기록하고 싶습니다. 이를 위해, 나는 한 다음 다음과 같은 출력을 줄 것이다 Grails에서 SQL 데이터베이스 정보 처리

<% 
    def temp = dbname.Road.list() 
%> 

<strong>Name:</strong>${temp.name} 
<strong>Local:</strong>${temp.local} 

:

이름 : 피카딜리

지역 : 런던

선생님이 말해 줬어 Grails는 via 컨트롤러를 통해 작동하지만 잘못된 것은 아니지만 데이터베이스에서 필요한 정보를 요청하여 컨트롤러와 n으로 반환해야합니다. 직접 액세스 할 수 있습니다. 이걸로 손이 필요해. 고마워.

답변

4

이것은 절대적으로 잘못된 방법입니다. Grails는보기 좋게 코드를 삽입하는 것은 거대한 반 패턴입니다. grails 방법은로드 도메인을 갖는 것입니다. RoadController가 있습니다.

class Road { 
    String name 
    String local 
} 

class RoadController { 
    def list = { 
     [roadList: Road.list()] 
    } 
} 

그리고 당신은 컨트롤러에서 나오는 모델을 렌더링하기 위해 Grails의-응용 프로그램/뷰/도로 /의 list.gsp에 위치한 list.gsp는있을 것입니다.

<ul> 
<g:each in="${roadList}"> 
    <li>Name: ${it.name}, Locale: ${it.local}</li> 
</g:each> 
</ul> 

그래서이 액세스하는 것처럼 간단 할 것이다 :

http://localhost:8080/youApp/road/list

이것은 아주 기본적인 Grails는 당신이 튜토리얼과 수백 권의 책에서 찾을 수있는 물건을 당신이 Grails가 제공하는 발판을 사용하는 경우, 코드를 작성하지 않아도됩니다. 인터넷 검색을해라.

0

list()를 실행하면 해당 테이블의 전체 내용이 서버의 메모리로로드됩니다. 크기가 충분히 크면 서버가 최악의 경우 메모리 부족 오류로 중단되고 시간이 지남에 따라 서서히 느려집니다.