在grails中更改控制器中的DB

时间:2014-06-17 08:38:53

标签: mongodb grails gorm

我有一个grails应用程序,我使用mongodb作为数据存储区。我在DataSource.groovy中配置了mongodb主机,端口和数据库名称详细信息。我有多个数据库,我想根据在我的应用程序的所有网址中作为查询参数传递的值之一进行切换。我使用Grails GORM for mongodb来查询数据库。如何根据请求动态更改数据库?我仍然想继续使用相同的gorm API。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

您可以使用groovy sql

建立与新/其他数据库的连接
def createConnectionToSecondDatabase() {
            def db = [url:'jdbc:mysql://localhost:3306/secondDatabaseName?    autoReconnect=true&zeroDateTimeBehavior=convertToNull', user:'root', password:'root', driver:'com.mysql.jdbc.Driver']
    def sql = null
    try {
        sql = Sql.newInstance(db.url, db.user, db.password, db.driver)
       sql.eachRow( 'select * from tableName' ) { 
      println "$it.id -- ${it.firstName} --" }

} catch (Exception e){
        e.printStackTrace()
        log.error("Exception while creating connection======>>>>>>>>>>"+e)
    }finally{
        if(sql != null){
            sql.close()
        }