use*_*241 7 prepared-statement cassandra datastax-enterprise datastax-java-driver
com.datastax.driver.core.PreparedStatement实例应该是应用程序中的单例吗?
如果是这样,如果连接丢失会发生什么?PreparedStatement是否无效并且必须采取手动操作来"重新制定"?
PreparedStatement用法的一个简单例子(除了准备+在同一方法中执行)将是辉煌的!
PreparedStatement对象是线程安全的.您可以改变它们(例如,设置默认一致性级别),如果多个线程同时执行此操作,可能会导致不一致,但这是另一回事.
准备好的语句基本上是围绕ID和元数据的包装器,并且服务器将保留准备好的语句,只要它已经启动(但是节点崩溃或重新启动将意味着它丢失并且必须重新编写).从理论上讲,准备好的语句可以在其他地方序列化和反序列化,但仍然有效,我不推荐它.
准备好的语句是节点的本地语句,正如我所提到的,不会在重新启动后继续存在,所以如果你要保留它们,你需要确保在连接失败或节点重新启动时清除它们.我会尝试以与连接范围相同的方式对它们进行范围调整,在连接和重新连接时重新创建它们.也许不是很好的建议,但这在很大程度上取决于您的应用程序的结构.
| 归档时间: |
|
| 查看次数: |
2283 次 |
| 最近记录: |