Простой генератор 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