Groovy 的SQL模块

Groovy的SQL模块提供了对JDBC的抽象,让我们使用JDBC更简单,相关类在groovy.sql包下。本文参考自Working with a relational database,一些代码引用了官方文档,需要了解详细信息请参见原文。

连接数据库

和原文一样,为了简单这里使用嵌入式数据库HSQLDB,连接时在内存中创建一个数据库。数据库驱动可以使用Maven或Gradle导入,也可以使用Groovy自带的Grape依赖管理器。不过在Intellij IDEA上,下面的代码有时候无法编译,说是找不到数据库驱动。这时候可以使用Gradle等工具管理依赖。

Groovy SQL的所有操作都在Sql类中,我们调用Sql的newInstance方法,传递URL、用户名、密码等参数即可连接到数据库。这种方式需要自己手动调用close方法关闭数据库。如果希望Groovy自动关闭连接,可以使用withInstance方法,所有操作都在该方法的参数闭包中完成,之后会自动关闭连接。

@GrabResolver(name = 'aliyun', root = 'http://maven.aliyun.com/nexus/content/groups/public/')
@GrabConfig(systemClassLoader = true)
@Grab(group = 'org.hsqldb', module = 'hsqldb', version = '2.3.4')

class SqlDatabase {
   
    static void main(String[] args) {
        def sql = setUpDatabase()
    }

    static Sql setUpDatabase() {
        def url = 'jdbc:hsqldb:mem:test'
        def user = 'sa'
        def password = ''
        def driver = 'org.hsqldb.jdbcDriver'
        def sql = Sql.newInstance(url, user, password, driver)
        return sql
    }

如果使用数据源创建连接。可以直接将数据源传递给Sql的构造方法,即可由数据源创建连接。

def dataSource = new JDBCDataSource(
    database: 'jdbc:hsqldb:mem:yourDB', user: 'sa', password: '')
def sql = new Sql(dataSource)

创建数据表

我们可以使用Sql的execute方法执行SQL语句。这里创建了一个数据表。另外还有executeInsert和executeUpdate方法用于执行插入和更新操作。由于Groovy支持多行字符串,所以我们不用像Java那么费劲。

    static void setUpTables(Sql sql) {
        println('准备表')
        sql.execute('''
  CREATE TABLE author (
    id          INTEGER GENERATED BY DEFAULT AS IDENTITY,
    firstname   VARCHAR(64),
    lastname    VARCHAR(64)
  );
''')
        println('准备表完成')
    }

增删查改

插入数据

插入数据可以使用execute或executeInsert方法。它们的主要区别是executeInsert方法会返回一个列表,包含了插入数据对应的所有主键。这两个方法都支持?占位符和

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值