gpt4 book ai didi

java - 准备好的语句在 LIKE 子句中缺少绑定(bind)变量

转载 作者:行者123 更新时间:2023-12-02 12:29:20 26 4
gpt4 key购买 nike

我有一个准备好的声明,定义为:

selectLikeShortnameStmt = cassandraDatasource.getSession().prepare(" select  id,
parent_id, ultimate_parent_id, internal_ref, short_name,
long_name, controlling_team from counterparty where short_name like'%?%'");

但是当我尝试在 DAO 中使用它时,例如:

PreparedStatement pStmt = statementFactory.getSelectLikeShortnameStmt();
BoundStatement bStmt = pStmt.bind( short_name );

我收到一条错误消息,指出Prepared 语句没有绑定(bind)变量。为了实现 like 子句,我使用 SASI 索引功能,即:

CREATE CUSTOM INDEX short_name_like_index ON counterparty (short_name)
USING 'org.apache.cassandra.index.sasi.SASIIndex'
WITH OPTIONS = { 'mode': 'CONTAINS' };

最佳答案

这不起作用,因为 '%?%' 中使用的 ? 是字符串的一部分,它不是它自己的绑定(bind)变量,而是您需要这样做以下内容:

selectLikeShortnameStmt = cassandraDatasource.getSession().prepare("select id, parent_id, ultimate_parent_id, internal_ref, short_name, long_name, controlling_team from counterparty where short_name like ?");
PreparedStatement pStmt = statementFactory.getSelectLikeShortnameStmt();
BoundStatement bStmt = pStmt.bind("%" + short_name + "%");

关于java - 准备好的语句在 LIKE 子句中缺少绑定(bind)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45354502/

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