/* * Copyright 2009 VoidSearch.com * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.voidsearch.voidbase.quant.feed; import com.voidsearch.voidbase.quant.timeseries.SequenceGenerator; import java.sql.DriverManager; import java.sql.Connection; import java.sql.Statement; import java.sql.ResultSet; public class SqlExecElement implements SequenceGenerator { private static Connection connection = null; private String query = null; private String field = null; public SqlExecElement(String hostname, String username, String password, String database, String query) { this.query = query; init(hostname,username,password,database); } public SqlExecElement(String hostname, String username, String password, String database, String query, String field) { this.query = query; this.field = field; init(hostname,username,password,database); } public void init(String hostname, String username, String password, String database) { try { String mysqlUri = "jdbc:mysql://"+hostname+"/"+database+"?user="+username+"&password="+password; Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection(mysqlUri); } catch (Exception e) { e.printStackTrace(); } } public double next() { try { Statement statement = connection.createStatement(); ResultSet result = statement.executeQuery(query); result.first(); if (field == null) { return result.getDouble(1); } else { return result.getDouble(field); } } catch (Exception e) { e.printStackTrace(); } return 0; } }