/* * (C) Copyright 2015 by fr3ts0n <erwin.scheuch-heilig@gmx.at> * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA */ package com.fr3ts0n.pvs; import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.util.Vector; /** * Database backed process variable * * @author erwin */ public class DbProcessVar extends IndexedProcessVar { /** * */ private static final long serialVersionUID = 1080116313924821619L; @SuppressWarnings({"rawtypes", "unchecked"}) private static Vector<String> fields = new Vector(); /** * Holds value of property dbConnection. */ private Connection dbConnection; /** * Holds value of property tableName. */ private String tableName; /** Creates a new instance of DbProcessVar */ public DbProcessVar() { } public DbProcessVar(Connection dbConn) { this(); setDbConnection(dbConn); } public DbProcessVar(Connection dbConn, String tableName) { this(); setDbConnection(dbConn); setTableName(tableName); } /** * return all available field names */ public String[] getFields() { return ((String[]) fields.toArray()); } /** * Getter for property dbConnection. * * @return Value of property dbConnection. */ public Connection getDbConnection() { return this.dbConnection; } /** * Setter for property dbConnection. * * @param dbConnection New value of property dbConnection. */ public void setDbConnection(Connection dbConnection) { this.dbConnection = dbConnection; } /** * Getter for property tableName. * * @return Value of property tableName. */ public String getTableName() { return this.tableName; } /** * Setter for property tableName. * * @param tableName New value of property tableName. */ public void setTableName(String tableName) { this.tableName = tableName; } protected String getSelectSQL() { String result = "SELECT * from " + tableName; return (result); } protected ResultSet getResultSet(String sqlQuery) { ResultSet set = null; ResultSetMetaData rsMd; try { set = dbConnection.createStatement().executeQuery(sqlQuery); rsMd = set.getMetaData(); for (int i = 0; i < rsMd.getColumnCount(); i++) { fields.add(i, rsMd.getColumnName(i)); } } catch (Exception e) { log.error(e.getStackTrace()); } return (set); } }