English | 中文
This project is a SQLite statement builder, allow you write SQL in Java.
It's not a fast way to build SQL statement, but it may make your codes more clear and more intuitive.
The simple demo like this:
// DELETE FROM `fruit` WHERE `name` = "apple"; Column fruit_name = new Column("name"); SQLite.delete("fruit", Clause.equals(fruit_name, "apple")); // SELECT * FROM `fruit` WHERE `name` = "apple"; SQLite.selectAll("fruit", Clause.equals("name", "apple")); By static method in SQLite:
String table = "table"; // table name Map<String, Object> cv = new HashMap<>(); // column-value mapping cv.put("column", "value"); // to add more // INSERT INTO `table` SET `column` = 'value'; String sql = SQLite.insert(table, cv); or using class Insert:
String sql = new Insert(table) .addAll(cv) .add("column2", "value2") // add one more .toString(); SQLite.delete(String table, Clause where); By static method in SQLite:
String table = ...; // table name Map<String, Object> cv = ...; // a map with <column, value> String sql = SQLite.update(table, cv); or using class Update:
String sql = new Update(table) .addAll(cv) .add(column, value) // add one .toString(); Simple way to select all colunm in one table.
SQLite.selectAll(String table, Clause where, int limit); Most of the time, you may use the Select Builder for complex query.
String sql = new Select("fruit") .add("*") // list column in table .add(new Now("today")) // also include function: NOW() AS `today` .add(new Virtual("ok", "alias")) // add virtual column: 'ok' AS `alias` .join(new InnerJoin("price", "p") // join table: INNER JOIN `price` AS `p` .add("column1")) // add column in the join-table .add("column2", "alias0")) // add column with alias .on("_id", "fruitId") // on .add("price", "box") // allow to add column in join-table(not suggest) .where(Clause.like("type", "apple") // WHERE `type` LIKE 'apple' .and(Clause.in("fruitId", 1, 2) // AND (`fruitId` IN{1, 2} .or(Clause.equals("a", "b")))) // OR `a` = 'b') .groupBy(...) .orderBy(new Asc("_id").desc("type")) // ORDER BY `_id` ASC, `type` DESC .limit(2) .toString(); // Sigle clause: // in, between, isNull, isNotNull, like, // equals(=), lessThan(<), lessEquals(<=), moreThan(>), moreEquals(>=) Clause.equals(column, pattern) // Multi-clause MultiClause clause = new MultiClause(clause1) .and(clause2.or(clause3)); // or() & and() may return MultiClause Column(String name); // no table Column(String table, String name); // with table Column(table, name).as(String alias); // with column alias Column(table, name).as(tableAlias, nameAlias); // with table alias new Sum(name); // function new Virtual(name, alias); // virtual column List<ColumnInfo<?>> cols = new ArrayList<>(); // column of table cols.add(new IntColumn("_id").autoIncrement()); String sql = SQLite.createTable("table", cols); // or using CreateTable String sql = new CreateTable("table") // table name .add(new IntColumn("_id") // add column .autoIncrement() // AI .primaryKey()) // PK .add(new TextColumn("txt") .notNull() // NOT NULL .setUnique(true) // UNIQUE .defaultValue("")) // default value .toString(); // There are more methods in the class SQLite: SQLite.selectInto() SQLite.dropTable() SQLite.addColumn() SQLite.renameColumn() SQLite.createIndex()