java - 如何使用此 Groovy 代码从 Groovy 类获取数据源连接?

标签 java grails groovy datasource

我的 Grails 应用程序中曾经有一个 Java 类,但我需要从 DataSource.groovy 获取连接,因此我将其传递给 Groovy 类,并使其获取 Context Application 。但是我如何使用此代码连接到该数据源?:

def dataSource = ctx.getBean('dataSource_Executer') // auto injected and referenced to a datasource
Connection conn = null;
Statement stmt = null;
Class.forName('driver');
conn = DriverManager.getConnection(dataSource);// Here it's the trouble

我需要这样,因为我需要这样的结果查询的元数据:

 stmt = conn.createStatement();
 def rs = stmt.executeQuery('query');
 def rsmd = rs.getMetaData();
 num = rsmd.getColumnCount();

并用 While 来控制它:

 while(rs.next()){..........}

最佳答案

我将使用 groovy.sql 包来执行此操作。

import groovy.sql.GroovyRowResult
import groovy.sql.Sql

def dataSource = ctx.getBean('dataSource_Executer')
def connection = new Sql(dataSource)
def results = connection.rows('SELECT ...')
results.each { r ->
  println r['columnName']
  ...
}

您还可以访问ResultSetMetaData。这个blog post有一个很好的示例说明如何执行此操作。

关于java - 如何使用此 Groovy 代码从 Groovy 类获取数据源连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23299375/

相关文章:

ajax - AJAX 调用后如何在 Grails 中显示 flash.message

jenkins - Groovy遍历只显示一个文件

groovy - 内置 'with' 类型方法,返回调用它的对象

java - IN XMPP 在提交表单时获得异常未授权(401)

java - Android Studio Box2D 循环工作时出现问题

java - 为什么我的 Java 链式方法尝试不起作用?

security - 验证 POST 参数后防止浏览器密码缓存

java - easymock - 匹配器和多次调用

grails - Shiro标签 'isLoggedIn'和 'authenticated'表示同一意思吗?

jenkins - 使用 CLI/groovy 配置 Jenkins "Global Tool Configuration"