gpt4 book ai didi

java - NamedParameterJdbcDaoSupport 带有搜索表单 OR 条件实现

转载 作者:行者123 更新时间:2023-12-01 05:12:06 25 4
gpt4 key购买 nike

我正在使用 getNamedParameterJdbcTemplate() 来查询数据库。

是否有更好的方法可以在查询上映射表单字段,如果表单字段中输入的值应包含在 where 条件中,否则不包含条件?

当前使用类似:

getNamedParameterJdbcTemplate().query(QUERY_TEST,namedParams,valueObjectMapper);

最佳答案

我不知道这对您是否可行,但您可以使用 HibernateTemplate 代替 NamedParameterJdbcTemplate。然后你可以使用 Example Queries

所以基本上您将根据表单字段中输入的值创建您正在搜索的对象的实例。 (默认情况下,Hibernate 仅考虑那些已设置值的字段作为 where 子句)

那么你的代码大致如下所示:

getHibernateTemplate().execute(new HibernateCallback<YourClass>() {

@Override
public List<YourClass> doInHibernate(Session session) throws HibernateException, SQLException {

Criteria yourClassCriteria = session.createCriteria(YourClass.class);
Example exampleCriteria = Example.create(yourClassInstance);
yourClassCriteria.add(exampleCriteria);

return yourClassCriteria.list();
}
});

显然,您需要将 YourClass 替换为您实际搜索的类型,而 yourClassInstance 是根据表单中的值创建的实例。

希望有帮助。

关于java - NamedParameterJdbcDaoSupport 带有搜索表单 OR 条件实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11878316/

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