2016-03-07 72 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