2017-04-14 63 views
0

我需要從Groovy腳本連接我的MySQL數據庫。 由於這個腳本的目的是爲了更新數據庫而對其進行微小的更改;我需要能夠提供必要的連接參數與jar文件。我想動態地輸入連接參數,例如dbUrl,dbUsername和dbPassword,以便我可以根據數據庫輸入這些參數。下面的代碼成功連接到數據庫,但它是手動的。如果必須使用其他數據庫而不是'測試',我必須爲每個數據庫創建jar文件。如何使用命令行中的連接參數在groovy中連接mysql數據庫?

我對groovy比較新,任何幫助/建議,將不勝感激。

我該如何處理?

import groovy.sql.Sql 
import java.sql.* 
import java.io.File 

    Sql sql 
    def cities = [] 
try{ 
    def url= 'jdbc:mysql://localhost:3306/test' 
    def username = 'username' 
    def password = 'password' 
    def driver = 'org.mariadb.jdbc.Driver' 
    sql = Sql.newInstance(url, username, password, driver) 
    sql.eachRow("select * from City where city are not null"){cities += it.city} 
    }catch(ClassNotFoundException | SQLException e){ 
      e.printStackTrace 
    } 

回答

0

執行下面的腳本:

groovy dbscript jdbc:mysql://localhost:3306/test username password 

dbscript.groovy

import groovy.sql.Sql 
import java.sql.* 
import java.io.File 

if (args.size() != 3) { 
    println 'Please supply DB URL, username and password' 
    System.exit(0) 
} 

Sql sql 
def cities = [] 
try{ 
    def url= args[0] 
    def username = args[1] 
    def password = args[2] 
    def driver = 'org.mariadb.jdbc.Driver' 
    sql = Sql.newInstance(url, username, password, driver) 
    sql.eachRow("select * from City where city are not null"){cities += it.city} 
    }catch(ClassNotFoundException | SQLException e){ 
      e.printStackTrace 
    } 
+0

感謝您的幫助邁克W. – Sam

+0

@Sam,如果答案是有幫助的,你需要考慮接受它作爲答案。 – Rao

+0

@Rao,我找不到這樣做的方法。 – Sam