如何在grails中获取数据库实例?

bat*_*man 5 java mysql grails groovy

我是Grails的新手,我有一个疑问.让我说我Datasource.groovy配置了mysql数据库.一切正常,我的grails应用程序正在运行.

在控制器中,如果我想添加/修改我已经设置的数据库,我该DataSource.groovy怎么做?

我需要在每个控制器中执行类似的操作:

def db = Sql.newInstance(
                    'jdbc:mysql://*****',
                    'root',
                    '',
                    'com.mysql.jdbc.Driver'
                )
Run Code Online (Sandbox Code Playgroud)

为了获取我指向DataSource.groovy文件的db实例?

有没有最佳做法?

tim*_*tes 5

你应该能够这样做(我建议这是在服务而不是控制器中完成的,因为它会使你的控制器更干净,你的代码更容易遵循)

import groovy.sql.Sql 

class DataSourceAccessingService {
  def datasource

  def runSomeQuery( String sql ) {
    def sql = new Sql( datasource )
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)