Sample code snippet.
SimpleSqlExpression expr = new SimpleSqlExpression();
expr.select("foo", "bar").from("baz").where("foo.id=1");
expr.groupBy("bar.id").having("bar.id>1").orderBy("foo.id");
QueryWriter writer = new AnsiQueryWriter();
String sql = writer.write(expr);
SimpleSqlExpression expr = new SimpleSqlExpression();
expr.select("*").from("foo").leftOuterJoin("bar", "foo.id=bar.id");
QueryWriter ansiWriter = new AnsiQueryWriter();
QueryWriter oracle8Writer = new Oracle8QueryWriter();
String ansiSql = ansiWriter.write(expr);
String oracle8Sql = oracle8Writer.write(expr);
// ::AnsiWriter::
// select * from foo left outer join bar on foo.id=bar.id
// ::Oracle8Writer::
// select * from foo, bar where foo.id(+)=bar.idSimpleSqlExpression expr = new SimpleSqlExpression();
expr.insertInto("foo").values("id=?", "name=?");
QueryWriter writer = new AnsiQueryWriter();
String sql = writer.write(expr);
// insert into foo values (id=?, name=?)
System.out.println(sql);SimpleSqlExpression expr = new SimpleSqlExpression();
expr.deleteFrom("foo").where("foo.id<?");
QueryWriter writer = new AnsiQueryWriter();
String sql = writer.write(expr);
// delete from foo where foo.id<?
System.out.println(sql);SimpleSqlExpression expr = new SimpleSqlExpression();
expr.update("foo").set("id", "1").where("name like '%foo%'");
QueryWriter writer = new AnsiQueryWriter();
String sql = writer.write(expr);
// update foo set id = 1 where name like '%foo%'
System.out.println(sql);SelectStatementExpression expr = new SelectStatementExpression();
expr.select().add("foo").add(OperatorExpression.alias("bar", "BAR"));
expr.from().addAs("baz", "BAZ");
QueryWriter writer = new AnsiQueryWriter();
String sql = writer.write(expr);
// select foo, bar as BAR from baz as BAZ
System.out.println(sql);SelectStatementExpression statement = new SelectStatementExpression();
statement.select().add(AnsiFunctions.avg("foo"));
statement.select().add(AnsiFunctions.sum("bar"));
statement.from().add("baz");
QueryWriter writer = new AnsiQueryWriter();
String sql = writer.write(statement);
// select AVG(foo), SUM(bar) from baz
System.out.println(sql);SelectStatementExpression inner = new SelectStatementExpression();
inner.select().add("foo");
inner.from().add("baz");
SelectStatementExpression outer = new SelectStatementExpression();
outer.select().add("inner.foo");
outer.from().add(OperatorExpression.aliasWithParenthesis(inner, "inner"));
QueryWriter writer = new AnsiQueryWriter();
String sql = writer.write(outer);
// select inner.foo from (select foo from baz) as inner
System.out.println(sql);