Sample Usage

Sample code snippet.

Samples

Simple Select

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);

Simple Select With Join

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.id

Simple Insert

SimpleSqlExpression 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);

Simple Delete

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);

Simple Update

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);

Simple Function (Alias)

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);

Simple Function (Avg, Sum)

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);

Simple Nested Query

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);