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

时间:2011-05-26 22:14:17

标签: sql groovy batch-file prepared-statement

这是我的代码:

// 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);  
}

我目前正在寻找一种在withBatch中使用miminc preparedstatement( funcThatMimicsPrepStat )的方法,该方法仅适用于Statement。任何建议超过欢迎。

1 个答案:

答案 0 :(得分:1)

Groovy 1.8.0尚不支持它,但它看起来像下一个次要版本之一将支持它。 trunk source code有几个非常有用的示例。以下是使用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])
    ...
}

我猜你可以抢夺那段代码或等待Groovy 1.8.x版本。