grails 中实现数据库的可配置

grails 中实现数据库的可配置

    博客分类: 
  • grails
Grails HSQLDB MySQL JDBC Groovy 
====== 问题由来 ====== 

需要更换数据库为MYSQL(测试)/ORACLE(正式),而默认数据库为HSQL。 
在grails中切换数据库还是比较方便的,不足之处是通过硬编码实现的,这样肯定不能满足实际部署的需要。 

====== 问题解决 ====== 

既然grails没有提供可配置的文件操作,那就自己实现一个吧。 

一个简单的配置文件读取类就OK了。 

这个类放在 PROJECT_HOME/grails-app/conf 下,配置文件(properties类型)也放在同一目录下 

特别说明: 
1、加载配置文件方法:XXXXUtils.class.getResourceAsStream(“config.properties”) 
2、打成WAR包后,PROJECT_HOME/grails-app/conf 下的配置文件 将被生成到 WEB-INF/classes 目录下 
3、在 development 阶段,还需要在 PROJECT_HOME/ 下建立同样的配置文件。这受制于加载配置文件方法。 
4、环境: NetBeans 6.5.1 + Grails 1.1 

如此使用: 

修改DataSource.groovy文件,如下: 

Groovy代码   收藏代码
  1. dataSource {  
  2.     pooled = true  
  3.     // driverClassName = "org.hsqldb.jdbcDriver"  
  4.         driverClassName = CommonUtils.getDBDriver()  
  5.     username = CommonUtils.getDBUSER()  
  6.     password = CommonUtils.getDBPWD()  
  7. }  
  8. hibernate {  
  9.     cache.use_second_level_cache=true  
  10.     cache.use_query_cache=true  
  11.     cache.provider_class='com.opensymphony.oscache.hibernate.OSCacheProvider'  
  12. }  
  13. // environment specific settings  
  14. environments {  
  15.     development {  
  16.         dataSource {  
  17.             dbCreate = "update" // one of 'create''create-drop','update'  
  18.             // url = "jdbc:hsqldb:mem:devDB"  
  19.             url = "jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF8"  
  20.         }  
  21.     }  
  22.     test {  
  23.         dataSource {  
  24.             dbCreate = "update"  
  25.             // url = "jdbc:hsqldb:mem:testDb"  
  26.             url = "jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF8"  
  27.         }  
  28.     }  
  29.     production {  
  30.         dataSource {  
  31.             dbCreate = "update"  
  32.             // url = "jdbc:hsqldb:file:prodDb;shutdown=true"  
  33.             url = "${CommonUtils.getDBURL()}?useUnicode=true&characterEncoding=UTF8"  
  34.         }  
  35.     }  
  36. }  


PS:这里,只需设置生产模式即可: 

production { 
dataSource { 
dbCreate = "update" 
// url = "jdbc:hsqldb:file:prodDb;shutdown=true" 
url = "${CommonUtils.getDBURL()}?useUnicode=true&characterEncoding=UTF8" 






原文: http://bufferx.iteye.com/blog/392979

你可能感兴趣的:(Hibernate,数据库,jdbc,HSQLDB,Netbeans,grails)