我正在尝试在Oracle DB上创建一个DBA工具,以使用Grails管理多个数据库服务器。我的应用程序需要通过获取用户(DBA)输入来创建数据库用户。创建新数据库用户是DDL语句。我们可以用Grails编写DDL语句吗?
答案 0 :(得分:4)
当然,依赖项 - 将dataSource
bean注入控制器/服务/等。并从那里获得连接。然后,您可以执行任何所需的JDBC查询。最好的办法是使用groovy.sql.Sql
,因为它简化了做JDBC的工作流程。
您还可以从Grails控制台运行查询(运行grails console
以启动它)。可以使用来自隐式ctx
变量(Spring ApplicationContext)的属性访问表示法来使用Bean,因此可以通过def dataSource = ctx.dataSource
获取dataSource bean
以下是服务中的示例:
import groovy.sql.Sql
class MyService {
def dataSource
def someMethod() {
def sql = new Sql(dataSource)
String dml = '''\
create table foo (
...
)'''
sql.execute(dml)
}
}