Простой генератор SQL в стиле Kohana Framework. Итак погнали...
1. Создадим файл и назавём его SQLGenerator.java
2. Вот код:
public class SQLGenerator {
private String strSQL; // Строка в которой будет храниться SQL
private boolean bHasSelect; // Есть ли SELECT
private boolean bHasFrom; // Есть ли FROM
private boolean bHasWhere; // Есть ли WHERE
// Конструктор
public SQLGenerator() {
// Инициализируем переменные
this.strSQL = "";
this.bHasSelect = false;
this.bHasFrom = false;
this.bHasWhere = false;
}
// Добавляет в строку SQL
private void setSQL(String strSQL) {
this.strSQL += strSQL;
}
// Генерация SELECT
public SQLGenerator select(String strCond) {
if(bHasSelect == false) {
bHasSelect = true;
this.setSQL("SELECT " + strCond);
return this;
}
return null;
}
// Генерация FROM
public SQLGenerator from(String strTable) {
if(bHasSelect == true) {
bHasFrom = true;
this.setSQL(" FROM " + strTable);
return this;
}
return null;
}
// Генерация WHERE
public SQLGenerator where(String strCond) {
if(bHasSelect == true && bHasFrom == true && bHasWhere == false) {
bHasWhere = true;
this.setSQL(" WHERE " + strCond);
return this;
}
return null;
}
// Возвращает сгенерированный SQL
public String getSQL() {
return strSQL;
}
// Возвращает сгенерированный SQL
public String toString() {
return strSQL;
}
}3. Создадим файл SQLGeneratorDemo.java
4. Вот код:
public class SQLGeneratorDemo {
public static void main(String[] args) {
System.out.println(new SQLGenerator().select("*").from("Users").where("UserID > 1").getSQL());
}
}5.Теперь откомпилируем, введите команду javac SQLGenerator.java SQLGeneratorDemo.java
6. Теперь запустим программу, введите команду java SQLGeneratorDemo
Результат:
SELECT * FROM Users WHERE UserID > 1