/** * */ package ru.test.app.web; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import ru.funsys.avalanche.Application; import ru.funsys.avalanche.Messages; import ru.funsys.avalanche.annotation.CfgAttribute; import ru.funsys.avalanche.sql.Adapter; import ru.funsys.util.Utils; /** * Класс выполнения SQL запросов */ public class WebApp extends Application { @CfgAttribute(description = "Адаптер БД") Adapter database; @Override public void init() { } @Override public void done() { } public String execute(String sql) { String result = null; if (sql != null) { String temp = sql.trim().toLowerCase(); try { if (temp.startsWith("select") || temp.startsWith("with")) { ResultSet resultSet = database.select(sql); result = getTable(resultSet); } else { int count = database.execute(sql); result = "
" + Messages.getMessage("WEB0001I", new Object[] {count}) + ""; } } catch (Exception e) { result = error("WEB0002E") + "
" + Utils.printStackTrace(e) + ""; } } return result; } /** * Форматирование результата выполнения SQL запроса в HTML таблицу * * @param resultSet результат выполнения запроса * * @return HTML таблица */ public String getTable(ResultSet resultSet) throws Exception { StringBuilder builder = new StringBuilder(); ResultSetMetaData metadata = resultSet.getMetaData(); if (metadata != null) { builder.append("
").append(metadata.getColumnName(index)).append(" | "); } builder.append("
---|
").append(resultSet.getObject(index)).append(" | "); } builder.append("