Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
In JDK9 using the system loader is not going to work any longer with @Grab. This imposes a problem for scripts in our tutorials, which demo database usage. Since changing the database driver access mechanism to use the loader of the Groovy runtime instead of the system loader is not solving the problem I suggest to really update that old java 1.2 usage of jdbc and migrate all our scripts to datasources.
As an example of datasource usage:
@Grab(group='com.h2database', module='h2', version='1.3.168') import groovy.sql.Sql import org.h2.jdbcx.JdbcDataSource; def ds = new JdbcDataSource(URL: "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1", user: "sa", password: "sa"); def sql = Sql.newInstance(ds) sql.execute ''' create table PROJECT ( id integer not null, name varchar(50), url varchar(100), ) ''' def params = [10, 'Groovy', 'http://groovy.codehaus.org'] sql.execute 'insert into PROJECT (id, name, url) values (?, ?, ?)', params println 'Some GR8 projects:' sql.eachRow('select * from PROJECT') { row -> println "${row.name.padRight(10)} ($row.url)" }
the example is largely copied from the SQL javadoc or our documentation... as can be seen those largely still sue the codehaus urls as well