2016-03-07 50 views
3

我正在尝试创建一个使用groovy.sql.Sql类连接到Oracle数据库的小Springboot应用程序(该Oracle jar已被抓取并位于spring引导类路径中)。这是一个概念/测试证明的非常简单的例子。groovy.sql.Sql Springboot cli

import groovy.sql.Sql 

@RestController 
class ThisWillActuallyRun { 

    @RequestMapping("/") 
    String home() { 
    oracleSql = Sql.newInstance(jdbc:oracle:thin:@oracle-db:1521:db-name, 
           "oracle-user", 
           "oracle-pass", 
           "oracle.jdbc.driver.OracleDriver") 

    row = oracleSql.firstRow("select foo from blah") 
    return "ok" 
    } 
} 

当应用程序使用命令运行:

spring run test_for_so.groovy 

以下错误产生:

startup failed: 
file:test_for_so.groovy: 1: unable to resolve class groovy.sql.Sql @ line 1, column 1. 
    import groovy.sql.Sql 

回答

2

你包括作为依赖什么时髦罐子? groovy jar只包含基本语言支持。将其更改为groovy-all以获取完整的语言和库包。例如,在gradle产出,使用方法:

dependencies { 
    compile "org.codehaus.groovy:groovy-all" 
    ... 
} 

Maven中,它应该是这样的:

<dependencies> 
    <dependency> 
     <groupId>org.codehaus.groovy</groupId> 
     <artifactId>groovy-all</artifactId> 
    </dependency> 
</dependencies> 

您也可以只是在groovy封装的顶部添加groovy-sql如果你不想一切。

+0

对于这个程序,我没有采用POM文件,上面以及如何运行它是所有没有列出的代码。这是一个小的简单的应用程序。关于你对groovy jar的评论只包括基础语言支持,那么当你从命令行调用groovy时,这是否也适用? – user6025432

1

我有同样的问题。我刚找到解决方案。 添加以下代码。

@Grab('groovy-sql') 

常规-SQL后,您可以使用

import groovy.sql.Sql