我的 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/