我正在尝试在 Oracle DB 上创建一个 DBA 工具来使用 Grails 管理多个数据库服务器。我的应用程序需要通过获取用户 (DBA) 输入来创建数据库用户。创建一个新的数据库用户是一个 DDL 语句。我们可以在 Grails 中编写 DDL 语句吗?
最佳答案
当然,依赖注入(inject) dataSource
bean 到 Controller /服务/等。并从那里获得连接。然后你可以做任何你想做的 JDBC 查询。您最好的选择是使用 groovy.sql.Sql
因为它简化了执行 JDBC 的工作流程。
您也可以从 Grails 控制台运行查询(运行 grails console
来启动它)。使用隐式 ctx
中的属性访问表示法可以使用 Bean。变量是 Spring ApplicationContext,因此您可以通过 def dataSource = ctx.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)
}
}
关于grails - 使用 Grails 的 DDL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22337899/