如何模拟PreparedStatement以生成有效的SQL查询(SQL#withBatch)



这是我的代码:

// my SQL query used with PreparedStatement before
def query = "INSERT INTO TAB_A (x,y) VALUES (?,?)
Sql myDb = Sql.newInstance(...)

myDb.withBatch(10000, {stmt ->
  // I get parameters as an array
  def params = getParams();
  String rowQuery = funcThatMimicsPrepStat(query, params)
  stmt.addBatch(rowQuery);  
}

我目前正在寻找一种在Batch中模拟准备好的Statement(funcThatMimicsPrepStat)的方法,它只适用于Statement。欢迎任何建议。

Groovy 1.8.0还不支持它,但看起来下一个次要版本将支持它。trunk源代码有几个非常有用的例子。下面是一个使用PreparedStatement:的示例

def updateCounts = sql.withBatch(20, 'insert into TABLENAME(a, b, c) values (?, ?, ?)') { ps ->
    ps.addBatch(10, 12, 5) // varargs style
    ps.addBatch([7, 3, 98]) // list
    ps.addBatch([22, 67, 11])
    ...
}

我想您要么抓紧这段代码,要么等待Groovy1.8.x的发布。

最新更新