gpt4 book ai didi

java - 在 JDBI dropwizard 中使用自定义 where 条件

转载 作者:行者123 更新时间:2023-11-30 06:15:30 29 4
gpt4 key购买 nike

我正在尝试使用 dropwizard 探索 JDBI,我的客户代码如下。

public interface UserDao {
@SqlQuery("SELECT FROM `t_user` :cond")
@Mapper(UserMapper.class)
List<User> fetch(@Bind("cond") String cond);
}

并尝试使用以下代码调用

Application.getJdbi().onDemand(UserDao.class).fetch("where logon_id="+p.getEmail()+"'");

和下面的问题

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM `t_user` 'where logon_id=sanjaypatel2525@gmail.com\''' at line 1

我遇到了引号问题,因为这是作为字符串传递的。通过这种方式,我试图为所有查询实现通用的 where 子句代码。我的问题是1.如何解决这个问题。2. 这是编写这样的代码的正确方法吗,或者我们可以使用准备好的语句。如果是,那么如何。

提前致谢:)

最佳答案

使用 Define 而不是 Bind 进行动态查询。

public interface UserDao {
@SqlQuery("SELECT * FROM t_user :cond")
@Mapper(UserMapper.class)
List<User> fetch(@Define("cond") String cond);
}

关于java - 在 JDBI dropwizard 中使用自定义 where 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28629920/

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