繁体   English   中英

从Grails连接到Oracle 12c数据库

[英]Connect to Oracle 12c Database from Grails

如何配置Grails Web应用程序以连接到简单的(一个表!)Oracle 12c数据库? 我已经看过一堆教程,每个教程要么不完整,要么已经过时。 我需要一个简单的手动分步教程。 我知道GORM是基于Hibernate的,某种程度上它已经在后台处理了,但是我无法获得一个简单的连接。 我浏览了Grails文档,但它似乎更支持H2和MySQL连接,而不是Oracle。

因此,我知道我必须修改DataSource.groovy,以替换默认的H2设置。 以下是我为Oracle 12c数据库修改DataSource.groovy的尝试:

dataSource {
    pooled = true
    driverClassName = "oracle.jdbc.driver.OracleDriver"
    username = "scott"
    password = "Sc0ttSc0tt"
    dialect = "org.hibernate.dialect.OracleDialect"
}

hibernate {
    cache.use_second_level_cache = true
    cache.use_query_cache = false
    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
    temp.use_jdbc_metadata_defaults = false
}

// environment specific settings
environments {
    development {
        dataSource {
            pooled - true
            dialect = "org.hibernate.dialect.OracleDialect"
            driverClassName = 'oracle.jdbc.OracleDriver'
            username = 'scott'
            password = 'Sc0ttSc0tt'
            url = "jdbc:oracle:thin:@192.168.0.105:1521:orcl"
            dbCreate = "validate" // one of 'create', 'create-drop', 'update', 'validate', ''           
        }
    }

    test {
        dataSource {
            pooled = true
            dialect = "org.hibernate.dialect.OracleDialect"
            driverClassName = 'oracle.jdbc.OracleDriver'
            username = 'scott'
            password = 'Sc0ttSc0tt'
            url = 'jdbc:oracle:thin:@192.168.0.105:1521:orcl'
            dbCreate = 'validate'
        }
    }

    production {
        dataSource {
            pooled = true
            dialect = "org.hibernate.dialect.OracleDialect"
            driverClassName = 'oracle.jdbc.OracleDriver'
            username = 'scott'
            password = 'Sc0ttSc0tt'
            url = 'jdbc:oracle:thin:@192.168.0.105:1521:orcl'
            dbCreate = 'validate'
        }
    }
}

然后,我了解到我可以以某种方式使用“脚手架”或GORM或其他任何方式将域类映射到数据库表...这就是我遇到的问题,或者我没有喝足够的咖啡或者错过了一些东西。

有人可以帮忙吗?

提前致谢。

您使用的是较旧的方言,您需要使用“ org.hibernate.dialect.Oracle10gDialect”。 (至少对于我来说,连接到Oracle11gR2 DB)您使用的方言是针对Oracle9g的,而对于我的经验,之前是。

在处理了Datasource.groovy文件并进行了mwaisgold上面建议的更改之后,我终于得到了以下格式的代码:

dataSource {
    pooled = true
    driverClassName = "oracle.jdbc.OracleDriver"
    username = "scott"
    password = "Sc0ttSc0tt"
}

hibernate {
    cache.use_second_level_cache = true
    cache.use_query_cache = false
    cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' // Hibernate 3
    //    cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' // Hibernate 4
    temp.use_jdbc_metadata_defaults = false
}

// environment specific settings
environments {
    development {
        dataSource {
            dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
            dialect = "org.hibernate.dialect.Oracle10gDialect"
            url = "jdbc:oracle:thin:@192.168.0.103:1521:orcl"           
        }
    }

test {
    dataSource {
        dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
        dialect = "org.hibernate.dialect.Oracle10gDialect"
        url = "jdbc:oracle:thin:@192.168.0.103:1521:orcl"               
    }
}

production {
    dataSource {            
        dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
        dialect = "org.hibernate.dialect.Oracle10gDialect"
        url = "jdbc:oracle:thin:@192.168.0.103:1521:orcl"
    }
}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM