这是我的设置:
我有两个数据库,比如说 DB A 和 DB B 。
我有Connection
到 DB A ,名为conn_a
。我创建了一个PreparedStatement
,例如
PreparedStatement pStmt = conn_a.prepareStatement(sql,
Statement.RETURN_GENERATED_KEYS);
然后我在pStmt
上做了一堆'set'操作;例如setInt
,setString
等
最后,我用pStmt.execute();
现在我想在pStmt
上运行SAME预备语句(conn_b
)(连接到 DB B )。我怎么能这样做?
谢谢!
答案 0 :(得分:1)
我认为你不能 - 你针对连接准备声明,并且通过扩展来准备数据库。目的是在服务器端缓存查询执行计划,以便后续执行预准备语句不必再次重新评估查询计划。对于不同的数据库运行相同的PreparedStatement在该上下文中没有意义。
你可以再次针对另一个连接准备语句,但它将是一个不同的预备语句,尽管它与第一个非常相似。因此,设置一种将连接传递给它的方法并不难,并根据提供的连接准备语句。