groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jochen Theodorou (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GROOVY-7817) Rewrite all our sql tutorials to use datasource
Date Wed, 27 Apr 2016 18:11:12 GMT

    [ https://issues.apache.org/jira/browse/GROOVY-7817?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15260638#comment-15260638
] 

Jochen Theodorou commented on GROOVY-7817:
------------------------------------------

I was more thinking along your first thought and change everything to use datasource. It is
the more modern interface with less problems in general. That it actually works with grab
without class loading magic is the original motivation for this, but I see it more as a benefiting
side effect ;)

> Rewrite all our sql tutorials to use datasource
> -----------------------------------------------
>
>                 Key: GROOVY-7817
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7817
>             Project: Groovy
>          Issue Type: Bug
>            Reporter: Jochen Theodorou
>              Labels: JDK9
>
> 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:
> {code:Java}
> @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)"
> }
> {code}
> 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



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message