Groovy und JDBC

  • Beitrags-Autor:
  • Beitrags-Kategorie:Java
  • Beitrags-Kommentare:Ein Kommentar

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)
}

Dieser Beitrag hat einen Kommentar

  1. admin

    Es ist einfach und schnell. Bei uns ist es das perfekte Mittel, um mal eben schnell etwas zu machen.

Schreibe einen Kommentar

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