At line 1 added 176 lines |
[{TableOfContents}] |
|
|
!!!Grails 정리 |
{{{ |
- 프로젝트 생성 - |
>grails create-app |
프로젝트명 입력 |
|
- 프로젝트 실행 |
>grails run-app |
|
- 도메인 클래스 생성 |
>grails create-domain-class |
생성할 도메인 클래스 입력 |
|
- 컨트롤 생성 |
>grails create-controller |
}}} |
|
!!!Grails 프레임워크 |
{{{ |
Trails (Hibernate / Spring / Tapestry 기반) |
Grails = (Spring + Hibernate + SiteMesh ) * Implementation by Groovy |
|
공식 Site http://www.grails.org |
Grails란 무엇인가? http://docs.codehaus.org/display/GRAILS/Korean+Home |
Grails 설치 http://www.grails.org/Korean+Installation |
Grails 빠르게 시작 하기 http://grails.codehaus.org/Korean+Quick+Start |
Grails 콘솔 http://grails.org/Korean+Command+Line+Tools |
Grails GORM(OR맵핑) http://grails.codehaus.org/Korean+GORM |
}}} |
|
!!!Grails 스크린 캐스팅 정리 |
*[http://media1.podster.de/hansamann/grails_screencast_directory.mov] |
{{{ |
# grails create-app |
|
명령어 입력 : bookapp |
|
# cd bookapp/ |
# ls -laF |
|
# grails run-app |
|
웹브라우져 : http://localhost:8080/bookapp |
|
# grails create-domain-class |
|
명령어 입력 Book |
|
# vi grails-app/domain/Book.groovy |
Long version 밑에 추가 |
String author |
String title |
Date releaseDate |
String description |
|
def constraints = { |
title() |
author(inList:["graeme Rochder", "Dierk Koenig"]) |
releaseDate() |
description(widget:'textarea') |
} |
|
# grails generate-all |
|
명령어 입력 Book |
|
# grails run-app |
|
브라우져로 접속하면 북 컨트롤러가 자동 생성됨 |
}}} |
|
!!!Grails 오라클 연동 |
*[참고 사이트|http://www.oracle.com/technology/pub/articles/grall-grails.html] |
{{{ |
grails-bin-0.2.2 를 이용하여 정리 함 |
|
오라클에 테이블과 시쿼스 생성 |
CREATE TABLE comics ( |
id NUMBER(10) NOT NULL, |
title VARCHAR2(60), |
issue NUMBER(4), |
publisher VARCHAR2(60), |
PRIMARY KEY (id) |
); |
CREATE SEQUENCE comics_seq; |
|
|
|
|
> grails create-app |
.... |
..... |
create-app: |
[input] Enter application name: |
comics_catalog |
..... |
|
|
|
> cd comics_catalog |
> grails create-domain-class |
.... |
create-domain-class: |
[input] Enter domain class name: |
comics |
.... |
|
|
|
|
/comics_catalog/grails-app/domain/Comics.groovy |
|
class Comics { |
@Property Long id |
@Property Long version |
|
// new properties for the Comics class |
@Property String title |
@Property Long issue |
@Property String publisher |
|
String toString() { "${this.class.name} : $id" } |
} |
|
> grails generate-all |
.... |
input-domain-class: |
[input] Enter domain class name: |
comics |
.... |
|
|
|
|
./comics_catalog/grails-app/controllers |
./comics_catalog/grails-app/views |
|
|
|
|
|
|
./comics_catalog/grails-app/conf/DevelopmentDataSource.groovy |
class ApplicationDataSource { |
@Property boolean pooled = true |
@Property String dbCreate = "update" // one of 'create', 'create-drop','update' |
@Property String url = "jdbc:oracle:thin:@localhost:1521:XE" |
@Property String driverClassName = "oracle.jdbc.OracleDriver" |
@Property String username = "ruby" |
@Property String password = "ruby" |
} |
|
|
|
|
ojdbc14.jar 파일을 ./comics_catalog/grails-app/lib 폴더에 복사 |
|
|
|
서버 실행 |
grails run-app |
|
|
|
포트 수정 |
grails -Dserver.port=9090 run-app |
|
|
http://localhost:8080/comics_catalog/comics/ |
}}} |
|
!!!Grails MySql 연동 |
*[http://jasonrudolph.com/blog/2006/06/20/hoisting-grails-to-your-legacy-db/3/] |