如何使用sqlbuilder构建SELECT查询?

我从
http://openhms.sourceforge.net/sqlbuilder/开始使用Java和SQLBuilder,我正在尝试动态地构建SQL SELECT查询:

SelectQuery sql = new SelectQuery();
sql.addAllColumns().addCustomFromTable("table1");
sql.addCondition(BinaryCondition.like("column1", "A"));

但是,它会创建如下字符串:

SELECT * FROM table1 WHERE ('column1' LIKE 'A')

由于引号错误(‘column1’),它无法正常工作.我想它在.like()方法中需要一些Column对象.
有没有办法用适当的引号创建查询?

最佳答案 我找到了解决方案.我不得不创建新的类Column,它扩展了CustomSql并将我的列名称作为参数传递:

public class Column extends CustomSql {
   public Column(String str) {
      super(str);
   }
}

然后:

SelectQuery sql = new SelectQuery();
sql.addAllColumns().addCustomFromTable("table1");
sql.addCondition(BinaryCondition.like(new Column("column1"), "A"));

或者不创建自己的类:

SelectQuery sql = new SelectQuery();
sql.addAllColumns().addCustomFromTable("table1");
sql.addCondition(BinaryCondition.like(new CustomSql("column1"), "A"));

它创建以下SQL查询,工作正常:

SELECT * FROM table1 WHERE (column1 LIKE 'A')
点赞