写一个在Grails框架下使用JDBC进行数据库操作的工具类
时间: 2024-04-10 11:33:09 浏览: 134
以下是一个在Grails框架下使用JDBC进行数据库操作的工具类的示例:
```groovy
import groovy.sql.Sql
class JdbcUtil {
def grailsApplication
def executeQuery(String query, List<Object> params = []) {
Sql sql = new Sql(grailsApplication.dataSource)
List<Map<String, Object>> results = []
try {
results = sql.rows(query, params)
} finally {
sql.close()
}
return results
}
def executeUpdate(String query, List<Object> params = []) {
Sql sql = new Sql(grailsApplication.dataSource)
int rowsAffected = 0
try {
rowsAffected = sql.execute(query, params)
} finally {
sql.close()
}
return rowsAffected
}
}
```
在上述示例中,我们创建了一个名为`JdbcUtil`的工具类。该类中包含了两个方法:`executeQuery`和`executeUpdate`。
`executeQuery`方法用于执行查询语句并返回结果集。它接收查询语句和参数列表作为输入,并使用Grails的`Sql`类执行查询。最后,它将结果集以`List<Map<String, Object>>`的形式返回。
`executeUpdate`方法用于执行更新语句(如插入、更新、删除)并返回受影响的行数。它的实现与`executeQuery`类似,但它使用`sql.execute`方法执行更新语句。
这个工具类可以通过在其他Grails应用程序的服务或控制器中注入`JdbcUtil`来使用。例如:
```groovy
class MyService {
def jdbcUtil
def myMethod() {
String query = "SELECT * FROM my_table WHERE id = ?"
List<Object> params = [1]
List<Map<String, Object>> results = jdbcUtil.executeQuery(query, params)
// 处理结果集
}
}
```
注意,上述示例中的`grailsApplication.dataSource`是Grails应用程序中配置的数据源。确保在使用该工具类之前,已正确配置数据库连接信息。
希望这个示例可以帮助到你!如果有任何疑问,请随时提问。
阅读全文