我有一个要求,比如在 groovy 和 grails 中调用存储过程。我正在使用 Mongodb 作为数据库。谁能告诉我一步一步调用存储过程
问问题
3309 次
2 回答
0
旨在从 Grails 服务中执行此操作。
// Inject a data source:
def dataSource //or def dataSource_<other named DS name>
def serviceMethod() {
Sql sql = new Sql(dataSource_messages)
def sqlCall = "exec sp_name :param1, :param2"
final paramMap = [param1: new Timestamp(dateFrom.time), param2: new Timestamp(dateTo.time)]
log.info "Running: $sqlCall with params $paramMap"
def rows = []
try {
rows = sql.rows(sqlCall, paramMap)
} catch (Exception e) {
log.warn "Could not execute ${sqlCall} with params ${paramMap}: ${e.getMessage()}", e
}
rows
}
可选择转换为命令对象:
rows.collect { row -> new MyCmd(row) }
public class MyCmd {
String spField1
String spField2
Date dateTime
}
于 2012-09-25T05:15:00.173 回答
0
您也可以通过以下方式执行此操作
def dataSource
def dataList = []
Sql sql = Sql.newInstance(dataSource)
def camp = "Campaign"
dataList = sql.rows("{call sp_upldata(?)}",[camp])
sql.close()
这里sp_upldata
是在数据库中创建的存储过程的名称,存储camp
要从中查找结果的数据。查询得到的数据将保存在dataList
. 上面的示例查询将在普通 sql 查询的情况下进行
select * from table_name where table_name.column_name = 'Campaign';
于 2018-07-09T11:37:54.917 回答