groovy sql
时间: 2025-07-06 13:07:38 AIGC 浏览: 18
Groovy 提供了 `groovy.sql.Sql` 类来简化与关系型数据库的交互,使得执行 SQL 查询、更新等操作变得非常方便。以下是一些基本的操作示例和教程,帮助快速上手 Groovy 中的 SQL 操作。
### 连接数据库
首先需要建立到数据库的连接。使用 `Sql.newInstance()` 方法可以创建一个数据库连接实例。
```groovy
import groovy.sql.Sql
def url = 'jdbc:mysql://localhost:3306/your_database'
def user = 'your_username'
def password = 'your_password'
def driver = 'com.mysql.cj.jdbc.Driver'
def sql = Sql.newInstance(url, user, password, driver)
```
### 执行查询
使用 `eachRow()` 方法可以遍历查询结果集中的每一行数据。
```groovy
sql.eachRow('SELECT * FROM your_table LIMIT 0, 3') { row ->
def id = row[0]
def name = row.name
println("${id}, ${name}")
}
```
### 插入数据
使用 `executeInsert()` 方法可以插入新的记录,并获取生成的主键值。
```groovy
def newId = sql.executeInsert('INSERT INTO your_table (name, age) VALUES (?, ?)', ['John Doe', 30])
println("Inserted record with ID: ${newId[0][0]}")
```
### 更新数据
使用 `executeUpdate()` 方法可以更新现有的记录。
```groovy
def rowsAffected = sql.executeUpdate('UPDATE your_table SET age = ? WHERE name = ?', [31, 'John Doe'])
println("Rows affected: ${rowsAffected}")
```
### 删除数据
同样地,删除记录也可以通过 `executeUpdate()` 实现。
```groovy
rowsAffected = sql.executeUpdate('DELETE FROM your_table WHERE name = ?', ['John Doe'])
println("Rows affected: ${rowsAffected}")
```
### 使用命名参数
Groovy 的 `Sql` 类还支持使用命名参数来构建查询语句,这在处理复杂的 SQL 语句时特别有用。
```groovy
def params = [name: 'Jane Doe', age: 25]
sql.execute('INSERT INTO your_table (name, age) VALUES (:name, :age)', params)
```
### 关闭连接
完成所有数据库操作后,记得关闭数据库连接以释放资源。
```groovy
sql.close()
```
### 注意事项
- 确保已经添加了必要的 JDBC 驱动依赖项。
- 在生产环境中,应考虑使用连接池来管理数据库连接,提高性能[^2]。
阅读全文
相关推荐




















