Grails 多数据源相关配置
1.Mysql、SQLServer、PG、Oracle 单数据源配置
---
hibernate:
cache:
queries: true
use_second_level_cache: true
use_query_cache: true
region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
# jdbc:
# use_get_generated_keys: true
dataSource:
pooled: true
jmxExport: true
driverClassName: com.mysql.jdbc.Driver
# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
# driverClassName: org.postgresql.Driver
# driverClassName: oracle.jdbc.OracleDriver
username: username
password: password
environments:
development:
dataSource:
dbCreate: update
url: jdbc:mysql://localhost:3306/databaseName?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
# url: jdbc:sqlserver://10.0.8.241:1433;DatabaseName=databaseName
# url: jdbc:postgresql://127.0.0.1:5432/databaseName
# url: jdbc:oracle:thin:@10.201.1.41:1521:serverName
test:
dataSource:
dbCreate: create-drop
url: jdbc:mysql://localhost:3306/loan-160?useUnicode=true&characterEncoding=UTF-8&useSSL=false
production:
dataSource:
dbCreate: update
# product
url: jdbc:mysql://localhost:3306/databaseName?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
# url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=databaseName
# url: jdbc:postgresql://127.0.0.1:5432/databaseName
# url: jdbc:oracle:thin:@127.0.0.1:1521:serverName
properties:
jmxEnabled: true
initialSize: 50
maxActive: 500
minIdle: 20
maxIdle: 300
maxWait: 120000
maxAge: 600000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1
# validationQuery: SELECT 1 from DUAL
validationQueryTimeout: 60
validationInterval: 30000
testOnBorrow: true
testWhileIdle: true
testOnReturn: false
jdbcInterceptors: ConnectionState
defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED
注意:
1.mysql驱动:runtime 'mysql:mysql-connector-java:5.1.41'
2.SQLserver驱动:在libs下添加sqljdbc42.jar
3.Postgres驱动:在libs下添加postgresql-42.1.4.jar
4.Oracle驱动:runtime "com.oracle:ojdbc6:11.2.0.3",另外额外需要配置参数
(1)jdbc:
use_get_generated_keys: true
(2)validationQuery: SELECT 1 from DUAL
2.多数据源配置
---
hibernate:
cache:
queries: true
use_second_level_cache: true
use_query_cache: true
region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
jdbc:
use_get_generated_keys: true
dataSources:
dataSource:
pooled: true
jmxExport: true
driverClassName: oracle.jdbc.OracleDriver
username: username
password: password
extraSource:
dialect: org.hibernate.dialect.PostgreSQLDialect
driverClassName: org.postgresql.Driver
username: username
password: password
environments:
development:
dataSources:
dataSource:
dbCreate: update
url: jdbc:oracle:thin:@127.0.0.1:1521:serverName
extraSource:
dbCreate: update
url: jdbc:postgresql://127.0.0.1:5432/databaseName
test:
dataSources:
dataSource:
dbCreate: update
url: jdbc:oracle:thin:@127.0.0.1:1521:serverName
production:
dataSources:
extraSource:
dbCreate: update
url: jdbc:postgresql://127.0.0.1:5432/databaseName
properties:
jmxEnabled: true
initialSize: 50
maxActive: 500
minIdle: 20
maxIdle: 300
maxWait: 120000
maxAge: 600000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 from dual
validationQueryTimeout: 60
validationInterval: 30000
testOnBorrow: true
testWhileIdle: true
testOnReturn: false
jdbcInterceptors: ConnectionState
defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED
注意:配置两个数据源Oracle和Postgres,默认数据源为:dataSource
创建数据库表的时候,如果未指定,会自动创建到默认数据源dataSource中,如果想创建到extraSource指定的数据库中需要在domain的mapping中指定数据源
static mapping = {
datasource 'extraSource'
}
static mapping = {
datasources(['dataSource','extraSource'])
}
static mapping = {
datasource 'ALL'
}
还有要注意的地方是:dialect: org.hibernate.dialect.PostgreSQLDialect,一定要声明第二个数据源,各数据库配置可参考官方文档:http://docs.grails.org/latest/guide/conf.html#multipleDatasources
在controller和service中获取数据源方式:def dataSource 和 def dataSource_extraSource
配置多数据源时候,必须有一个数据源名字为dataSource,Grails会认为它是默认数据源
至于在controller和service中对于数据源的操作,请参考:Grails 对于多数据源的增删改查操作
相关推荐
3.3.1 数据源和环境 3.3.2 JNDI数据源 3.3.3 自动数据库移植 3.4 外部配置 3.5 定义版本 4. 命令行 4.1 创建Gant脚本 4.2 可复用的Grails脚本 4.3 脚本中的事件 4.4 Ant和Maven 5. 对象关系映射(GORM) 5.1 快速指南 ...
3.4 数据源配置 3.4.1 支持的数据库 3.4.2 配置自定义方言(dialect) 3.5 引导grails应用程序 3.6 配置日志(logging) 3.6.1 启用sql日志 3.6.2 日志记录(logging)和环境 ...
添加了对多个数据源的完全支持 Grails 2.0 插件重构 最小 Grails 依赖项 2.0.3 添加了对可选乐观锁定的支持 - 基于 MyBatis Optimist 插件( ),同时避免 Java 注释(约定优于配置) 添加了对自定义 Enum 持久性...
grails-datasource-jndi-declare 将 jndi 数据源声明为 web.xml 中的资源引用元素的简单 grails 插件 ...此插件没有配置选项它将检测所有具有 jndiName 属性的数据源并将它们声明为 web.xml 中的元素
第19章 浅析Grails的源程序 231 19.1 准备工作 231 19.1.1 下载源码 231 19.1.2 编译Grails源码 231 19.2 HibernateCriteriaBuilder的原理 233 19.3 开启Hibernate Query Cache 237 19.4 本章小结 241 第20章 未来...
将示例数据源和电子邮件配置文件复制到您机器上的某个位置,并使用您的配置更新它们。 您需要更新将它们复制到 。 cp grails-app/conf/DataSource.example.groovy /etc/grails/config/lochchat/DataSource.groovy ...
在本教程中,我们将学习如何在一个简单的Spring MVC Web应用中集成Jasper报表工具。教程涵盖的技术点有:报表自定义数据源的使用;报表渲染、呈现的配置与实现;iReport报表设计器的使用(报表模板设计)等
如果您想从源代码构建,您需要在构建机器上安装 2.4.4 和 JDK 1.8。 JDK 需要是 Oracle,版本 1.8.0_31 才能使用 run-app。 安装 grails 的推荐方法是使用: $ curl -s http://get.sdkman.io | bash $ source $HOME/...
8.11 用向导表单控制器处理多页表单 331 8.11.1 问题 331 8.11.2 解决方案 331 8.11.3 工作原理 332 8.12 使用注解(JSR-303)的Bean校验 341 8.12.1 问题 341 8.12.2 解决方案 342 8.12.3 工作原理 ...
8.11 用向导表单控制器处理多页表单 331 8.11.1 问题 331 8.11.2 解决方案 331 8.11.3 工作原理 332 8.12 使用注解(JSR-303)的Bean校验 341 8.12.1 问题 341 8.12.2 解决方案 342 8.12.3 工作原理 ...