1 25 26 package de.progra.charting.model; 27 28 import java.sql.*; 29 import java.util.ArrayList ; 30 31 32 37 public class JDBCPlotter { 38 39 40 protected Connection conn; 41 42 49 public JDBCPlotter(String jdbcDriver, String jdbcURL, String username, String password) 50 throws JDBCPlotterException { 51 try { 52 Class.forName( jdbcDriver); 53 conn = DriverManager.getConnection(jdbcURL, username, password); 54 } catch(Exception e) { 55 throw new JDBCPlotterException("Exception while creating a database connection.", e); 56 } 57 } 58 59 66 public DefaultChartDataModel createChartDataModelInstance(String sqlQuery, String [] sqlRows) 67 throws JDBCPlotterException { 68 return createChartDataModelInstance(sqlQuery, sqlRows, sqlRows); 69 } 70 71 78 public DefaultChartDataModel createChartDataModelInstance(String sqlQuery, String [] sqlRows, String [] dataSets) 79 throws JDBCPlotterException { 80 try { 81 Statement stmt = conn.createStatement(); 82 ResultSet sqlResult = stmt.executeQuery(sqlQuery); 83 84 ArrayList model[] = new ArrayList [sqlRows.length]; 85 ArrayList columnList = new ArrayList (); 86 87 for(int i = 0; i < model.length; i++) { 88 model[i]=new ArrayList (); 89 } 90 91 double x = 0.0; 92 while(sqlResult.next()) { 93 94 columnList.add(new Double (x)); 95 x += 1.0; 96 97 for(int i = 0; i < sqlRows.length; i++) { 98 model[i].add(new Double (sqlResult.getDouble(sqlRows[i]))); 99 100 } 101 } 102 103 Number [][] modelArray = new Number [model.length][]; 104 105 for(int i = 0; i < model.length; i++) 106 modelArray[i] = (Number [])model[i].toArray(new Number [0]); 107 108 double[] columns = new double[columnList.size()]; 109 110 for(int i = 0; i < columns.length; i++) 111 columns[i] = ((Double )columnList.get(i)).doubleValue(); 112 113 return new DefaultChartDataModel(modelArray, columns, dataSets); 114 115 } catch( Exception e ) { 116 throw new JDBCPlotterException("Exception while performing task.", e); 117 } 118 } 119 120 128 public DefaultChartDataModel createChartDataModelInstance(String sqlQuery, String columnRow, String [] sqlRows) 129 throws JDBCPlotterException { 130 return createChartDataModelInstance(sqlQuery, columnRow, sqlRows, sqlRows); 131 } 132 133 141 public DefaultChartDataModel createChartDataModelInstance(String sqlQuery, String columnRow, String [] sqlRows, String [] dataSets) 142 throws JDBCPlotterException { 143 try { 144 Statement stmt = conn.createStatement(); 145 ResultSet sqlResult = stmt.executeQuery(sqlQuery); 146 147 ArrayList model[] = new ArrayList [sqlRows.length]; 148 ArrayList columnList = new ArrayList (); 149 150 for(int i = 0; i < model.length; i++) { 151 model[i]=new ArrayList (); 152 } 153 154 while(sqlResult.next()) { 155 156 columnList.add(new Double (sqlResult.getDouble(columnRow))); 157 158 for(int i = 0; i < sqlRows.length; i++) { 159 model[i].add(new Double (sqlResult.getDouble(sqlRows[i]))); 160 161 } 162 } 163 164 Number [][] modelArray = new Number [model.length][]; 165 166 for(int i = 0; i < model.length; i++) 167 modelArray[i] = (Number [])model[i].toArray(new Number [0]); 168 169 double[] columns = new double[columnList.size()]; 170 171 for(int i = 0; i < columns.length; i++) 172 columns[i] = ((Double )columnList.get(i)).doubleValue(); 173 174 return new DefaultChartDataModel(modelArray, columns, dataSets); 175 } catch( Exception e ) { 176 throw new JDBCPlotterException("Exception while performing task.", e); 177 } 178 } 179 180 188 public ObjectChartDataModel createObjectChartDataModelInstance(String sqlQuery, String columnRow, String [] sqlRows) 189 throws JDBCPlotterException { 190 return createObjectChartDataModelInstance(sqlQuery, columnRow, sqlRows, sqlRows); 191 } 192 193 201 public ObjectChartDataModel createObjectChartDataModelInstance(String sqlQuery, String columnRow, String [] sqlRows, String [] dataSets) 202 throws JDBCPlotterException { 203 try { 204 Statement stmt = conn.createStatement(); 205 ResultSet sqlResult = stmt.executeQuery(sqlQuery); 206 207 ArrayList model[] = new ArrayList [sqlRows.length]; 208 ArrayList columnList = new ArrayList (); 209 210 for(int i = 0; i < model.length; i++) { 211 model[i]=new ArrayList (); 212 } 213 214 while(sqlResult.next()) { 215 216 columnList.add(sqlResult.getString(columnRow)); 217 218 for(int i = 0; i < sqlRows.length; i++) { 219 model[i].add(new Double (sqlResult.getDouble(sqlRows[i]))); 220 221 } 222 } 223 224 Number [][] modelArray = new Number [model.length][]; 225 226 for(int i = 0; i < model.length; i++) 227 modelArray[i] = (Number [])model[i].toArray(new Number [0]); 228 229 String [] columns = (String [])columnList.toArray(new String [0]); 230 231 return new ObjectChartDataModel(modelArray, columns, dataSets); 232 } catch( Exception e ) { 233 throw new JDBCPlotterException("Exception while performing task.", e); 234 } 235 } 236 } 237 | Popular Tags |