将Prepared Statement与另一个连接对象重用

时间:2013-12-03 22:06:59

标签: java prepared-statement jtds

这是我的设置:

我有两个数据库,比如说 DB A DB B

我有Connection DB A ,名为conn_a。我创建了一个PreparedStatement,例如

PreparedStatement pStmt = conn_a.prepareStatement(sql,
    Statement.RETURN_GENERATED_KEYS);

然后我在pStmt上做了一堆'set'操作;例如setIntsetString

最后,我用pStmt.execute();

执行语句

现在我想在pStmt上运行SAME预备语句(conn_b)(连接到 DB B )。我怎么能这样做?

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为你不能 - 你针对连接准备声明,并且通过扩展来准备数据库。目的是在服务器端缓存查询执行计划,以便后续执行预准备语句不必再次重新评估查询计划。对于不同的数据库运行相同的PreparedStatement在该上下文中没有意义。

可以再次针对另一个连接准备语句,但它将是一个不同的预备语句,尽管它与第一个非常相似。因此,设置一种将连接传递给它的方法并不难,并根据提供的连接准备语句。