gpt4 book ai didi

java - 从连接丢失/ session 重新连接中恢复 PreparedStatements?

转载 作者:行者123 更新时间:2023-11-30 08:52:55 26 4
gpt4 key购买 nike

据我对文档和所读内容的理解,准备好的语句绑定(bind)到 session 。所以问题来了,如果我关闭连接并重新创建它,或者如果 session 被终止(这怎么可能?)必须重新创建所有准备好的语句吗?

如果 PreparedStatement 不再由底层 session 实例管理,会出现什么异常?

[更新]

我已经创建了自己的简单语句类来表示准备好的语句,因为我在 session 存在之前的创建时间创建了语句。此外,我使用 map 来按需绘制 map ,我准备好了……。

最佳答案

对于Cassandra Drivers,标准的方式是准备一次语句,然后在执行前多次绑定(bind)变量。

可以引用这个帖子:http://www.datastax.com/dev/blog/4-simple-rules-when-using-the-datastax-drivers-for-cassandra

我正在分享您可以使用的代码片段。 session 验证和准备语句是您在应用程序开始执行时需要做的事情,在开始突变之前。

    if (session == null) {
session = CassandraUtils.getInstance().getSession();
psUsers = session.prepare("INSERT INTO users(xx, yy, zz, tt) VALUES (?, ?, ?, ?)");
psProducts = session.prepare ("INSERT INTO products(aa, bb, cc, dd) VALUES (?, ?, ?, ?)");
}

来自上面的分享帖子:

Use at most one Session per keyspace, or use a single Session and explicitely specify the keyspace in your queries

对于连接丢失部分,驱动程序会为您处理,当然您可以使用不同类型的重连策略:http://www.datastax.com/drivers/java/2.0/com/datastax/driver/core/policies/Policies.html

关于java - 从连接丢失/ session 重新连接中恢复 PreparedStatements?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30024739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com