mike-neckのブログ

Java or Groovy or Swift or Golang

groovyスクリプトでdb操作するときにはまったこと

こんにちわ、みけです。

最近はgroovy、groovyと言わなくなったのですが、実際はgroovyをちょっとしたことに活用していたりします。


JDBCドライバー使うときは@GrabConfig使っておけ

まあ、知っている人は知っているでしょうし、大した内容でもないのですが…

データベース操作するときにgroovyを使う場合、こういうスクリプトの書き始めになります。

@Grab(group='mysql:mysql-connector-java:5.1.34')

def sql = Sql.newInstance('jdbc:mysql://localhost:3306/mike', 'mike', 'mike', 'com.mysql.jdbc.Driver')

で、実行結果がこれ

$ groovyclient db-operation.groovy
Caught: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/mike
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/mike

mysqlドライバーが読み込まれてないらしい……(´・ω・`)

で、ググること数回、groovy mysql no suitable driver found for jdbc:mysql://localhost:3306stackoverflow様にたどり着きました。

曰く、JavaJDBCドライバーをシステムクラスローダーに探しに行くので、Groovyでやる場合、cpオプションで最初から渡しておくか、Grape使う場合は…

@GrabConfig( systemClassLoader=true )
@Grab(group='mysql:mysql-connector-java:5.1.34')

def sql = Sql.newInstance('jdbc:mysql://localhost:3306/mike', 'mike', 'mike', 'com.mysql.jdbc.Driver')

と書けとのこと。


はい(´・ω・`)