Dmi*_*ach 5 java sql sqlbuilder
我正在使用来自http://openhms.sourceforge.net/sqlbuilder/ 的Java 和 SQLBuilder, 并尝试动态构建 SQL SELECT 查询:
SelectQuery sql = new SelectQuery();
sql.addAllColumns().addCustomFromTable("table1");
sql.addCondition(BinaryCondition.like("column1", "A"));
Run Code Online (Sandbox Code Playgroud)
但是,它会创建这样的字符串:
SELECT * FROM table1 WHERE ('column1' LIKE 'A')
Run Code Online (Sandbox Code Playgroud)
由于错误的引号 ( 'column1') 无法正常工作。我想它在.like()方法中需要一些 Column 对象。有没有办法用正确的引号创建查询?
我找到了解决方案。我必须创建一个新类Column来扩展 CustomSql并传递我的列名作为参数:
public class Column extends CustomSql {
public Column(String str) {
super(str);
}
}
Run Code Online (Sandbox Code Playgroud)
进而:
SelectQuery sql = new SelectQuery();
sql.addAllColumns().addCustomFromTable("table1");
sql.addCondition(BinaryCondition.like(new Column("column1"), "A"));
Run Code Online (Sandbox Code Playgroud)
或者不创建自己的类:
SelectQuery sql = new SelectQuery();
sql.addAllColumns().addCustomFromTable("table1");
sql.addCondition(BinaryCondition.like(new CustomSql("column1"), "A"));
Run Code Online (Sandbox Code Playgroud)
它创建了以下 SQL 查询,运行良好:
SELECT * FROM table1 WHERE (column1 LIKE 'A')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4014 次 |
| 最近记录: |