gpt4 book ai didi

java - 如何形成 jdbcTemplate 的查询

转载 作者:行者123 更新时间:2023-12-01 09:49:48 24 4
gpt4 key购买 nike

如果 WHERE 子句的参数为空或不为空,我将尝试基于参数形成查询。如果我在 if 和 else 上执行此操作,这似乎是一个巨大的代码。还有其他聪明的方法吗?

示例:

String query = "SELECT CUSTOMER_NAME FROM CUSTOMER_TABLE WHERE ";
if(cust_id !=null && !(cust_id.trim().equalsIgnoreCase("")))
{
query = query + "cust_id='"+cust_id+"'";
}
else
{

}

检查像这样的所有列,代码看起来一团糟,请告诉我是否有其他方法可以做到这一点

添加上述问题:

我还有类似运算符的参数

示例

if(strCustName!=null)
{
String query = "SELECT * FROM CUSTOMER WHERE CUSTOMER_NAME LIKE '"+strCustName+"';
}

最佳答案

您可以使用NamedParameterJDBCTemplate

您的查询可能是

... WHERE (cust_id=:custIdParam OR :custIdParam is null)
AND (another_column=:another_param OR :another_param is null)

更新:

String sqlstr = "select * from the_table where lastname like :lastname or :lastname is null"

NamedParameterJdbcTemplate jt = new NamedParameterJdbcTemplate(datasource);

Map namedParameters = new HashMap();
namedParameters.put("lastname", "%test%");
SqlRowSet result = jt.queryForRowSet( sqlstr ,namedParameters );

来自the link

关于java - 如何形成 jdbcTemplate 的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37671528/

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