我已经创建了一个Grails 3.3.8
项目。在application.yml
文件中成功完成了数据源(Oracle)配置。但是当我在groovy类中使用数据源时,遇到了以下错误:
Caused by GroovyRuntimeException: Ambiguous method overloading for method groovy.sql.Sql#<init>.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[interface java.sql.Connection]
[interface javax.sql.DataSource]
我的代码是:
package DATABASE_CONF
import groovy.sql.Sql
/**
*
* @author CESC
*/
public class dbconn {
def dataSource
public String showname2() {
def sql = new Sql(dataSource)
def namestr = ""
sql.eachRow('select * from TEST_TB') {
tp ->
namestr = namestr + "<br>" + tp.NAME
}
sql.close()
return namestr
}
}
答案 0 :(得分:2)
您的类无法解析dataSource
属性,因此出现了一个空且模棱两可的方法重载异常。
其原因可能是您的课程位于src
文件夹中,而不参与bean(自动)接线。有几种方法可以解决该问题:
so it will get the
dataSource`下自动注入(推荐)dataSource
声明为showname2()
方法的参数,并在每次调用时将其显式传递。