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) } |
Es ist einfach und schnell. Bei uns ist es das perfekte Mittel, um mal eben schnell etwas zu machen.