It helps to build parameterized SQL query statement.
MysqlBuilder mysql = new MysqlBuilder();
SelectStmt stmt = mysql.select() .columns("name", "age", "mail") .from("customer") .where(cond -> cond.isTrue("is_active") .orWrap().gt("last_action")) .order("name") .limit(10);
Select name, age, mail From customer Where (is_active Is TRUE) Or (last_action > ?) Order By name Limit 10
SelectStmt stmt = mysql.select() .columns("city", "town", "Count(*)") .from("address") .where(cond -> cond.eq("country").and().in("state", 5)) .group("city", "town") .having(cond -> cond.gt("Count(*)")) .order("Count(*) Desc");
Select city, town, Count(*) From address Where country = ? And state In (?,?,?,?,?) Group By city, town Having Count(*) > ? Order By Count(*) Desc
UpdateStmt stmt = mysql.update() .table("customer") .set("age", "mail") .where(cond -> cond.eq("name").and().eq("id"));
Update customer Set age = ?, mail = ? Where name = ? And id = ?
UpdateStmt stmt = mysql.update() .table(ref -> ref.tbl("address", "addr") .innerJoinUsing("customer", "cust", using -> using.columns("addr_id"))) .set("addr.town") .where(cond -> cond.eq("cust.id"));
Update address addr Inner Join customer cust Using (addr_id) Set addr.town = ? Where cust.id = ?
DeleteStmt stmt1 = mysql.delete() .from("customer") .where(cond -> cond.eq("name").and().eq("id"));
Delete From customer Where name = ? And id = ?
DeleteStmt stmt2 = mysql.delete() .ref("cust", "addr") .from(ref -> ref.tbl("customer", "cust") .innerJoin("cust_address", "addr")) .where(cond -> cond.eq("cust.addr_id", "addr.id") .and().eq("cust.id"));
Delete cust, addr From customer cust Inner Join cust_address addr Where cust.addr_id = addr.id And cust.id = ?
InsertStmt stmt1 = mysql.insert() .into("schema", "customer") .columns("id", "name", "age", "email", "gender") .rows(3);
Insert Into schema.customer (id, name, age, email, gender) Values (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?)
InsertStmt stmt1 = mysql.insert() .into("customer") .columns(5) .rows(3);
Insert Into customer Values (?, ?, ?, ?, ?), (?, ?, ?, ?, ?), (?, ?, ?, ?, ?)
Selectstmt stmt = mysql.with() .as("indian", select -> select .columns("*") .from("states") .where(cond -> cond.eq("country"))) .as("frequent", select -> select .columns("*") .from("activity") .where(cond -> cond.gt("frequency"))) .select() .columns("c.name", "i.state", "f.last_activity") .from(ref -> ref .tbl("customer", "c") .innerJoinUsing("indian", "i", using -> using.columns("state_id")) .innerJoinUsing("frequent", "f", using -> using.columns("act_id")));
With indian As (Select * From states Where country = ?), frequent As (Select * From activity Where frequency > ?) Select c.name, i.state, f.last_activity From customer c Inner Join indian i Using (state_id) Inner Join frequent f Using (act_id)