Groovy und JDBC

Das Beispiel demonstriert verschiedenen Aspekte im Zusammenspiel Groovy/SQL, JDBC und H2. Zuerst wird eine Datenbank angelegt. Dann werden Datensätze hinzugefügt. Die automatisch vergebene ID wird direkt ausgelesen. Eine Aktualisierung wird durchgeführt und die Anzahl der bearbeiteten Zeilen ausgelesen. Zum Schluss wird der Tabelleninhalt formatiert aufgelistet.

Die Variable „rand“ wird benutzt, um über „ALTER TABLE…“ jeweils einen neuen zufälligen Startwert vorzugeben. Ohne diesen Eingriff würde der Spaltenwert innerhalb der Demo einfach von 1 bis 3 hochgezählt werden.

package bob.pokolm
 
import groovy.sql.Sql
 
sql = Sql.newInstance(
    "jdbc:h2:C:/temp/database",
    "sa", "",
    "org.h2.Driver")
 
sql.execute("""
DROP TABLE IF EXISTS demotable;
CREATE TABLE demotable (
   foo IDENTITY,
   bar VARCHAR(100)
);
""")
 
rand = 0
 
insert = {
    rand += new Random().nextInt(10)
    sql.execute('''ALTER TABLE demotable
ALTER COLUMN foo RESTART WITH ''' + rand)
    row = sql.executeInsert('INSERT INTO demotable(bar) VALUES(?)', [it])
    //println insert.dump()
    println "[insert] ${it} created (id = ${row[0][0]})"
    rand++
}
 
insert ('abc')
insert ('def')
insert ('abc')
 
update = sql.executeUpdate("""UPDATE demotable
SET bar = REGEXP_REPLACE(bar,'def', 'abc')
WHERE bar LIKE 'def%'""")
println "[update] ${update} rows"
 
sql.eachRow('SELECT * FROM demotable ORDER BY 1') {
    line = '[select] %04d | %s'
    println String.format(line, it.foo, it. bar)
}

Eine Antwort auf „Groovy und JDBC“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.