??
?? ??(Start-up) ??
? ? ?? ? ??? "BootStrap" ???? "%PROJECT_HOME%grails-appconf" ????? ??????? ?? ?? ??? ?????? ? ????:
class ExampleBootStrap {
def init = { servletContext ->
// ??????? ??????.
}
def destroy = {
// ??????? ??(destroy)???.
}
}
?? "init" ???? ???? ??? ??????? ??? ? ?????. "destroy" ????(?? ???? ???) ??????? ??? ? ?????.
?????? ?? ?? ??(shutdown) ?? ?? ??????? ?????(gracefully) ???? ?? ?, {{destroy}} ? ??? ???? ????. ??? {{destroy}} ? ?? ?? ???? ??? ???.
??? ??(Data Source) ????
??? ?? ??? ??? "DataSource"? ??? ??, ?? ? ?? String ??? ??? ??? ???. ????? ??? ??? ?? ??? Grails? ??? ?? HSQLDB ??????? ????, ?????? ???? ???? ????? ?????:
- url - ??????? ?? JDBC URL
- driverClassName - JDBC ???? ??? ??
- username - ??? ??
- password - ????
class HsqlDataSource {
String dbCreate = "update"
String url = "jdbc:hsqldb:hsql://localhost"
String driverClassName = "org.hsqldb.jdbcDriver"
String username = "sa"
String password = ""
}??
????? Grails? {{DevelopmentDataSource}}, {{ProductionDataSource}}, {{TestDataSource}} ? ? ?? ??? ??? ?????. ??? ???? ?? ??, ???? ??, ??? ??? ??? ???. Grails? ??? ? ??? ?? ?? ??? ??? ? ????:
grails run-app // ???? "development" ??? ??? ???? ??
grails dev run-app // "development" ??? ??? ???? ??
grails prod run-app // "production" ??? ??? ???? ??
grails test run-app // "test" ??? ??? ???? ??
? ???? ??????? WAR ??? ??? ? ??? ?????:
grails dev war // "development" ??? ??? ???? ???
grails prod war // "production" ??? ??? ???? ???
?? ??? ?? ??? ??? ??? ?? ? ??? ?? ??? ??? ??? ????? ???. ?? ?? {{BookDataSource}} ? ?? ? ??? ?? ???? ? ????:
grails -Dgrails.env=book run-app
??? ??(pooling)
????? org.apache.commons.dbcp.BasicDataSource? ????, BasicDataSource? ?? ???? ??? ?? ???? ??? ? ????. ??? ??? ???? ???? "pooling" ??? ???? ?? false? ???? ???. ??? ?? ?? org.springframework.jdbc.datasource.DriverManagerDataSource? ?????. Grails ??? ???? ??? ?? ? DriverManagerDataSource?? ???? ?? ??? ?? ??? ?? ??(silently) ??? ????.
?????? ?? ??
Grails? ????? ??????? ??? ? ??????? ????? ?? ????? ?? ???, "dbCreate" ??? ??? ??? ????:
String dbCreate= "update"
?? ? ??? ??? ??????? ???? ????? ??? ????? ?? ????? ???. ??? ??? ??? "create"? "create-drop" ???.
SQL ??
SQL ?? ??? ????? Grails ??? ?? ??? ?? ??? ?????:
??? ?? ??(dialect)? ????
Hibernate ??? ?? ??? ????? ??? ??? 'dialect' ??? ???? ????? ?? ???? ?????:
def dialect = MySQLDialect.class
?? ?????? ????
Grails GORM? Hibernate ??/?? ?? ?????? ???? ????. ??? Grails? Hibernate?? ???? ?? ??????? ?????. Hibernate? ?? SQL ???????? ?? ????? ????? ????:
- DB2 7.1, 7.2, 8.1
- HSQL DB
- HypersonicSQL 1.61, 1.7.0, 1.7.2, 1.8
- Microsoft SQL Server 2000
- MySQL 3.23, 4.0, 4.1, 5.0
- Oracle 8i, 9i, 10g
- PostgreSQL 7.1.2, 7.2, 7.3, 7.4, 8.0, 8.1
- SAP DB 7.3
- Sybase 12.5 (JConnect 5.5)
- Timesten 5.1
Hibernate? ?? ?? ????????? ??? ???, (????? ??? ?? ??? ???) ?? ??? ??? ?????:
- Apache Derby
- HP NonStop SQL/MX 2.0 (requires Dialect from HP)
- Firebird (1.5 with JayBird 1.01 tested)
- FrontBase
- Informix
- Ingres
- Interbase (6.0.1 tested)
- Mckoi SQL
- Pointbase Embedded (4.3 tested)
- Progress 9
MySQL ????
?? ???? Java MySQL ????? ???? ????.
http://www.mysql.com/products/connector/j/??? ?? mysql*.jar ??? Grails ?????? ????? lib ?? ?????.
ApplicationDataSource ??? ???? ??? ??? ?????:
class ApplicationDataSource {
boolean pooling = true
String dbCreate = "create-drop"
String url = "jdbc:mysql://localhost/yourDB"
String driverClassName = "com.mysql.jdbc.Driver"
String username = "yourUser"
String password = "yourPassword"
}Log4j ????
Log4j ? ????? "web-app/WEB-INF/log4j.properties" ??? ??? ??? ??? ????? ??? ?????. ??? ??? Log4j ??? ?????.
Log4j Hibernate ??
?? SQL ??? Hibernate ???? ??? ????
? ?? log4j.properties ??? ?? ?? ?????:
log4j.logger.org.hibernate=debug, stdout