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. これは、このようにコーディングする適切な方法ですか、それともプリペアド ステートメントを使用できますか。はいの場合、どのように。
よろしくお願いします:)