如何使用命令行中的连接参数在groovy中连接mysql数据库?

时间:2017-04-14 20:05:20

标签: mysql groovy

我需要从Groovy脚本连接我的MySQL数据库。 由于此脚本的目的是用于db更新,并且稍作修改;我需要能够使用jar文件提供必要的连接参数。我想动态输入连接参数,如dbUrl,dbUsername和dbPassword,以便我可以按照数据库输入这些参数。下面的代码成功连接到数据库,但它是手动的。如果我必须使用除'test'之外的其他数据库,我必须为每个数据库创建jar文件。

我对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
    }

1 个答案:

答案 0 :(得分: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
    }