gpt4 book ai didi

mysql - 将动态值传递给 WSO2 DBLook 'like' 查询

转载 作者:行者123 更新时间:2023-11-29 05:51:57 26 4
gpt4 key购买 nike

场景:我使用 DBLookup 调解器通过传递部分名称来检索全名。为此,我在 sql 中使用了 like 选项。

Full Name : John Smith

Value passed : John

SQL : SELECT * FROM table WHERE FullName like '%John%'

使用的配置:

    <dblookup>
<connection>
<pool>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost:3306/world</url>
<user>root</user>
<password>root</password>
</pool>
</connection>
<statement>
<sql>SELECT TP_ID, TP_FULL_NAME, TP_USER_NAME, TP_USER_PASSWORD, TP_ACTIVE, TP_CHANGED_TIME, TP_TENANT_ID FROM tp_user WHERE TP_FULL_NAME like ('%?%');</sql>
<parameter expression="get-property('name')" type="VARCHAR" />
</statement>
</dblookup>

错误:

    [2018-11-08 13:04:14,943] [] ERROR - DBLookupMediator SQL Exception occurred while executing statement : SELECT TP_ID, TP_FULL_NAME, TP_USER_NAME, TP_USER_PASSWORD, TP_ACTIVE, TP_CHANGED_TIME, TP_TENANT_ID FROM tp_user WHERE TP_FULL_NAME like ('%?%'); against DataSource : jdbc:mysql://localhost:3306/world
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)

最佳答案

如下修改你的sql语句;

SELECT TP_ID, TP_FULL_NAME, TP_USER_NAME, TP_USER_PASSWORD, TP_ACTIVE, TP_CHANGED_TIME, TP_TENANT_ID FROM tp_user WHERE TP_FULL_NAME like CONCAT('%',?,'%');

如需进一步引用,您可以关注此 LINK

关于mysql - 将动态值传递给 WSO2 DBLook 'like' 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53204458/

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