Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Vertex SQL queryWithParams如何使用LIKE?和怀尔德_Java_Sql_Hsqldb_Vert.x - Fatal编程技术网

Java Vertex SQL queryWithParams如何使用LIKE?和怀尔德

Java Vertex SQL queryWithParams如何使用LIKE?和怀尔德,java,sql,hsqldb,vert.x,Java,Sql,Hsqldb,Vert.x,我正在开发一个简单的VertX应用程序。我有一个hsqlDB,我正在尝试执行一个查询,希望从包含搜索参数的表中获取所有ID String sql = "SELECT ID FROM MYTABLE WHERE NAME LIKE ?"; 因此,当名称与? 当我尝试使用通配符时: String sql = "SELECT ID FROM MYTABLE WHERE NAME LIKE %?%"; 或 它不起作用。 我的代码: private void getIDsBySearchString(

我正在开发一个简单的VertX应用程序。我有一个hsqlDB,我正在尝试执行一个查询,希望从包含搜索参数的表中获取所有ID

String sql = "SELECT ID FROM MYTABLE WHERE NAME LIKE ?";
因此,当名称与?
当我尝试使用通配符时:

String sql = "SELECT ID FROM MYTABLE WHERE NAME LIKE %?%";

它不起作用。
我的代码:

private void getIDsBySearchString(字符串搜索、SQLConnection连接、处理程序resultHandler){
String sql=“从MYTABLE中选择ID,其中NAME LIKE?”;
conn.queryWithParams(sql,新JsonArray().add(搜索),asyncResult->{
if(asyncResult.failed()){
resultHandler.handle(Future.failedFuture(“未找到名称”);
}否则{
int numRows=asyncResult.result().getNumRows();
如果(numRows>=1){
向量IDVector=新向量();
对于(int i=0;i

我需要如何编辑我的查询字符串以便?将被搜索字符串替换,并且我将能够使用通配符?

参数不能位于带引号的字符串中。它可以是涉及其他字符串的concat表达式的一部分

String sql = "SELECT ID FROM MYTABLE WHERE NAME LIKE '%' || ? || '%'";

参数不能位于带引号的字符串内。它可以是涉及其他字符串的concat表达式的一部分

String sql = "SELECT ID FROM MYTABLE WHERE NAME LIKE '%' || ? || '%'";

应该更改的部分是您的
search
参数,而不是
sql
部分:

String sql = "SELECT ID FROM MYTABLE WHERE NAME LIKE ?";

conn.queryWithParams(sql, new JsonArray().add("%"+search+"%"), asyncResult -> { ... }

应该更改的部分是您的
search
参数,而不是
sql
部分:

String sql = "SELECT ID FROM MYTABLE WHERE NAME LIKE ?";

conn.queryWithParams(sql, new JsonArray().add("%"+search+"%"), asyncResult -> { ... }