com.rhino.data.db.TickerDao.java Source code

Java tutorial

Introduction

Here is the source code for com.rhino.data.db.TickerDao.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.rhino.data.db;

import com.rhino.data.Ticker;
import com.rhino.data.history.util.Util;
import java.sql.Connection;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

/**
 *
 * @author agulshan
 */
public class TickerDao {

    public Ticker getTicker(String equity, Date date) throws SQLException {
        List<Ticker> tickers = this.getTickers(equity, date, date);
        if (tickers.size() > 0) {
            return tickers.get(0);
        } else {
            return null;
        }
    }

    public List<Ticker> getTickers(String equity) throws SQLException {
        try {
            return this.getTickers(equity, Util.getDate("1900-1-1"), Calendar.getInstance().getTime());
        } catch (ParseException ex) {
            throw new RuntimeException(ex);
        }
    }

    public List<Ticker> getTickers(String equity, Date fromDate, Date toDate) throws SQLException {
        QueryRunner run = new QueryRunner(DataSourceFactory.getDataSource());
        String sql = "select * from EOD  where equity = ? and date between ? and ? order by date";
        String from = Util.getDate(fromDate);
        String to = Util.getDate(toDate);
        Object[] params = new Object[] { equity, from, to };
        ResultSetHandler rsh = new BeanListHandler(Ticker.class);
        return (List<Ticker>) run.query(sql, rsh, params);
    }

    public int insertTicker(String equity, Ticker ticker, String grade, String exchange) throws SQLException {
        String sql = "insert into ticker (equity,openPrice,closePrice,highPrice,lowPrice,adjustedClose,volume,date,grade,exchange) values(?,?,?,?,?,?,?,?,?,?)";
        String date = Util.getDate(ticker.getDate());
        Object[] params = new Object[] { equity, ticker.getOpenPrice(), ticker.getClosePrice(),
                ticker.getHighPrice(), ticker.getLowPrice(), ticker.getAdjustedClose(), ticker.getVolume(), date,
                grade, exchange };
        QueryRunner run = new QueryRunner(DataSourceFactory.getDataSource());
        int updates = run.update(sql, params);
        run.update("delete from ticker where volume=0");
        return updates;
    }

    public int deleteTicker(String equity) throws SQLException {
        String sql = "delete from ticker where equity=?";
        QueryRunner run = new QueryRunner(DataSourceFactory.getDataSource());
        return run.update(sql, equity);
    }
}