Package com.sogou.qadev.service.cynthia.dao

Source Code of com.sogou.qadev.service.cynthia.dao.TimerAccessSessionMySQL

package com.sogou.qadev.service.cynthia.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.LinkedHashSet;
import java.util.Set;

import com.sogou.qadev.service.cynthia.bean.Timer;
import com.sogou.qadev.service.cynthia.bean.UUID;
import com.sogou.qadev.service.cynthia.bean.impl.TimerImpl;
import com.sogou.qadev.service.cynthia.factory.DataAccessFactory;
import com.sogou.qadev.service.cynthia.service.DataAccessSession.ErrorCode;
import com.sogou.qadev.service.cynthia.service.DbPoolConnection;

/**
* @description:timer db processor
* @author:liming
* @mail:liming@sogou-inc.com
* @date:2014-5-6 下午5:57:44
* @version:v1.0
*/
public class TimerAccessSessionMySQL
{

  public TimerAccessSessionMySQL()
  {
  }

  /**
   * @description:add timer to db
   * @date:2014-5-6 下午5:57:54
   * @version:v1.0
   * @param timer
   * @return
   */
  public ErrorCode addTimer(Timer timer)
  {
    Connection conn = null;
    PreparedStatement pstm = null;

    try
    {
      conn = DbPoolConnection.getInstance().getConnection();
      pstm = conn.prepareStatement("INSERT INTO timer"
          + " SET id = ?"
          + ", name = ?"
          + ", create_user = ?"
          + ", create_time = ?"
          + ", action_id = ?"
          + ", action_param = ?"
          + ", year = ?"
          + ", month = ?"
          + ", week = ?"
          + ", day = ?"
          + ", hour = ?"
          + ", minute = ?"
          + ", second = ?"
          + ", filter_id = ?"
          + ", statisticer_id = ?"
          + ", is_start = ?"
          + ", retry_account = ?"
          + ", retry_delay = ?"
          + ", is_send_null = ?");

      pstm.setLong(1, Long.parseLong(timer.getId().getValue()));
      pstm.setString(2, timer.getName());
      pstm.setString(3, timer.getCreateUser());
      pstm.setTimestamp(4, timer.getCreateTime());
      pstm.setLong(5, Long.parseLong(timer.getActionId().getValue()));

      if(timer.getActionParam() != null)
        pstm.setString(6, timer.getActionParam());
      else
        pstm.setNull(6, java.sql.Types.NULL);

      if(timer.getYear() != null)
        pstm.setString(7, timer.getYear());
      else
        pstm.setNull(7, java.sql.Types.NULL);

      if(timer.getMonth() != null)
        pstm.setString(8, timer.getMonth());
      else
        pstm.setNull(8, java.sql.Types.NULL);

      if(timer.getWeek() != null)
        pstm.setString(9, timer.getWeek());
      else
        pstm.setNull(9, java.sql.Types.NULL);

      if(timer.getDay() != null)
        pstm.setString(10, timer.getDay());
      else
        pstm.setNull(10, java.sql.Types.NULL);

      if(timer.getHour() != null)
        pstm.setString(11, timer.getHour());
      else
        pstm.setNull(11, java.sql.Types.NULL);

      if(timer.getMinute() != null)
        pstm.setString(12, timer.getMinute());
      else
        pstm.setNull(12, java.sql.Types.NULL);

      if(timer.getSecond() != null)
        pstm.setString(13, timer.getSecond());
      else
        pstm.setNull(13, java.sql.Types.NULL);

      if(timer.getFilterId() != null)
        pstm.setLong(14, Long.parseLong(timer.getFilterId().getValue()));
      else
        pstm.setNull(14, java.sql.Types.NULL);

      if(timer.getStatisticerId() != null)
        pstm.setLong(15, Long.parseLong(timer.getStatisticerId().getValue()));
      else
        pstm.setNull(15, java.sql.Types.NULL);

      pstm.setBoolean(16, timer.isStart());
      pstm.setLong(17, timer.getRetryAccount());
      pstm.setLong(18, timer.getRetryDelay());
      pstm.setBoolean(19, timer.isSendNull());

      if(pstm.executeUpdate()>0)
        return ErrorCode.success;
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
    finally
    {
      DbPoolConnection.getInstance().closeAll(pstm, conn);
    }

    return ErrorCode.dbFail;
  }

  /**
   * @description:remove timer from db
   * @date:2014-5-6 下午5:58:04
   * @version:v1.0
   * @param timerId
   * @return
   */
  public ErrorCode removeTimer(UUID timerId)
  {
    ErrorCode errorCode = ErrorCode.unknownFail;

    Connection conn = null;
    PreparedStatement pstm = null;

    try
    {
      conn = DbPoolConnection.getInstance().getConnection();
      pstm = conn.prepareStatement("DELETE FROM timer"
          + " WHERE id = ?");
      pstm.setLong(1, Long.parseLong(timerId.getValue()));

      if(pstm.executeUpdate()>0)
        errorCode = ErrorCode.success;
    }
    catch(Exception e)
    {
      e.printStackTrace();
      errorCode = ErrorCode.dbFail;
    }
    finally
    {
      DbPoolConnection.getInstance().closeAll(pstm, conn);
    }

    return errorCode;
  }
 
  /**
   * @description:remove all timers create by user
   * @date:2014-5-6 下午5:58:18
   * @version:v1.0
   * @param createUser
   * @return
   */
  public ErrorCode removeTimerByCreateUser(String createUser)
  {
    ErrorCode errorCode = ErrorCode.unknownFail;

    Connection conn = null;
    PreparedStatement pstm = null;

    try
    {
      conn = DbPoolConnection.getInstance().getConnection();
      pstm = conn.prepareStatement("DELETE FROM timer"
          + " WHERE create_user = ?");
      pstm.setString(1, createUser);

      pstm.executeUpdate();
      errorCode = ErrorCode.success;
    }
    catch(Exception e)
    {
      e.printStackTrace();
      errorCode = ErrorCode.dbFail;
    }
    finally
    {
      DbPoolConnection.getInstance().closeAll(pstm, conn);
    }

    return errorCode;
  }

  /**
   * @description:modify timer
   * @date:2014-5-6 下午5:58:31
   * @version:v1.0
   * @param timer
   * @return
   */
  public ErrorCode modifyTimer(Timer timer)
  {
    ErrorCode errorCode = ErrorCode.unknownFail;

    Connection conn = null;
    PreparedStatement pstm = null;

    try
    {
      conn = DbPoolConnection.getInstance().getConnection();
      pstm = conn.prepareStatement("update timer"
          + " SET name = ?"
          + ", action_id = ?"
          + ", action_param = ?"
          + ", year = ?"
          + ", month = ?"
          + ", week = ?"
          + ", day = ?"
          + ", hour = ?"
          + ", minute = ?"
          + ", second = ?"
          + ", filter_id = ?"
          + ", statisticer_id = ?"
          + ", is_start = ?"
          + ", retry_account = ?"
          + ", retry_delay = ?"
          + ", is_send_null = ?"
          + " WHERE id = ?");

      pstm.setString(1, timer.getName());
      pstm.setLong(2, Long.parseLong(timer.getActionId().getValue()));

      if(timer.getActionParam() != null)
        pstm.setString(3, timer.getActionParam());
      else
        pstm.setNull(3, java.sql.Types.NULL);

      if(timer.getYear() != null)
        pstm.setString(4, timer.getYear());
      else
        pstm.setNull(4, java.sql.Types.NULL);

      if(timer.getMonth() != null)
        pstm.setString(5, timer.getMonth());
      else
        pstm.setNull(5, java.sql.Types.NULL);

      if(timer.getWeek() != null)
        pstm.setString(6, timer.getWeek());
      else
        pstm.setNull(6, java.sql.Types.NULL);

      if(timer.getDay() != null)
        pstm.setString(7, timer.getDay());
      else
        pstm.setNull(7, java.sql.Types.NULL);

      if(timer.getHour() != null)
        pstm.setString(8, timer.getHour());
      else
        pstm.setNull(8, java.sql.Types.NULL);

      if(timer.getMinute() != null)
        pstm.setString(9, timer.getMinute());
      else
        pstm.setNull(9, java.sql.Types.NULL);

      if(timer.getSecond() != null)
        pstm.setString(10, timer.getSecond());
      else
        pstm.setNull(10, java.sql.Types.NULL);

      if(timer.getFilterId() != null)
        pstm.setLong(11, Long.parseLong(timer.getFilterId().getValue()));
      else
        pstm.setNull(11, java.sql.Types.NULL);

      if(timer.getStatisticerId() != null)
        pstm.setLong(12, Long.parseLong(timer.getStatisticerId().getValue()));
      else
        pstm.setNull(12, java.sql.Types.NULL);

      pstm.setBoolean(13, timer.isStart());
      pstm.setLong(14, timer.getRetryAccount());
      pstm.setLong(15, timer.getRetryDelay());
      pstm.setBoolean(16, timer.isSendNull());
      pstm.setLong(17, Long.parseLong(timer.getId().getValue()));

      if(pstm.executeUpdate()>0)
        errorCode = ErrorCode.success;
    }
    catch(Exception e)
    {
      e.printStackTrace();
      errorCode = ErrorCode.dbFail;
    }
    finally
    {
      DbPoolConnection.getInstance().closeAll(pstm, conn);
    }

    return errorCode;
  }

  /**
   * @description:create timer
   * @date:2014-5-6 下午5:58:41
   * @version:v1.0
   * @param createUser
   * @return
   */
  public Timer createTimer(String createUser)
  {
    UUID id = DataAccessFactory.getInstance().newUUID("TIME");
    Timestamp createTime = new Timestamp(System.currentTimeMillis());
    return new TimerImpl(id, createUser, createTime);
  }

  /**
   * @description:query all timers create by user
   * @date:2014-5-6 下午5:58:50
   * @version:v1.0
   * @param createUser
   * @return
   */
  public Timer[] queryTimers(String createUser)
  {
    Set<Timer> timerSet = new LinkedHashSet<Timer>();

    Connection conn = null;
    PreparedStatement pstm = null;
    ResultSet rst = null;
    try
    {
      conn = DbPoolConnection.getInstance().getReadConnection();
      pstm = conn.prepareStatement("SELECT * FROM timer"
          + " WHERE create_user = ?");
      pstm.setString(1, createUser);

      rst = pstm.executeQuery();
      while(rst.next())
      {
        UUID id = DataAccessFactory.getInstance().createUUID(rst.getObject("id").toString());
        Timestamp createTime = rst.getTimestamp("create_time");

        Timer timer = new TimerImpl(id, createUser, createTime);

        timer.setName(rst.getString("name"));
        timer.setActionId(DataAccessFactory.getInstance().createUUID(rst.getObject("action_id").toString()));
        timer.setActionParam(rst.getString("action_param"));
        timer.setYear(rst.getString("year"));
        timer.setMonth(rst.getString("month"));
        timer.setWeek(rst.getString("week"));
        timer.setDay(rst.getString("day"));
        timer.setHour(rst.getString("hour"));
        timer.setMinute(rst.getString("minute"));
        timer.setSecond(rst.getString("second"));
        timer.setStart(rst.getBoolean("is_start"));

        Object filterIdObj = rst.getObject("filter_id");
        if(filterIdObj != null)
          timer.setFilterId(DataAccessFactory.getInstance().createUUID(filterIdObj.toString()));

        Object statisticerIdObj = rst.getObject("statisticer_id");
        if(statisticerIdObj != null)
          timer.setStatisticerId(DataAccessFactory.getInstance().createUUID(statisticerIdObj.toString()));

        timer.setRetryAccount(rst.getLong("retry_account"));
        timer.setRetryDelay(rst.getLong("retry_delay"));
        timer.setSendNull(rst.getBoolean("is_send_null"));

        timerSet.add(timer);
      }
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
    finally
    {
      DbPoolConnection.getInstance().closeResultSet(rst);
      DbPoolConnection.getInstance().closeStatment(pstm);
      DbPoolConnection.getInstance().closeConn(conn);
    }

    return timerSet.toArray(new Timer[0]);
  }

  /**
   * @description:query all users
   * @date:2014-5-6 下午5:59:02
   * @version:v1.0
   * @return
   */
  public Timer[] queryTimers()
  {
    Set<Timer> timerSet = new LinkedHashSet<Timer>();

    Connection conn = null;
    PreparedStatement pstm = null;
    ResultSet rst = null;
    try
    {
      conn = DbPoolConnection.getInstance().getReadConnection();
      pstm = conn.prepareStatement("SELECT * FROM timer");

      rst = pstm.executeQuery();
      while(rst.next())
      {
        UUID id = DataAccessFactory.getInstance().createUUID(rst.getObject("id").toString());
        String createUser = rst.getString("create_user");
        Timestamp createTime = rst.getTimestamp("create_time");

        Timer timer = new TimerImpl(id, createUser, createTime);

        timer.setName(rst.getString("name"));
        timer.setActionId(DataAccessFactory.getInstance().createUUID(rst.getObject("action_id").toString()));
        timer.setActionParam(rst.getString("action_param"));
        timer.setYear(rst.getString("year"));
        timer.setMonth(rst.getString("month"));
        timer.setWeek(rst.getString("week"));
        timer.setDay(rst.getString("day"));
        timer.setHour(rst.getString("hour"));
        timer.setMinute(rst.getString("minute"));
        timer.setSecond(rst.getString("second"));
        timer.setStart(rst.getBoolean("is_start"));

        Object filterIdObj = rst.getObject("filter_id");
        if(filterIdObj != null)
          timer.setFilterId(DataAccessFactory.getInstance().createUUID(filterIdObj.toString()));

        Object statisticerIdObj = rst.getObject("statisticer_id");
        if(statisticerIdObj != null)
          timer.setStatisticerId(DataAccessFactory.getInstance().createUUID(statisticerIdObj.toString()));

        timer.setRetryAccount(rst.getLong("retry_account"));
        timer.setRetryDelay(rst.getLong("retry_delay"));
        timer.setSendNull(rst.getBoolean("is_send_null"));

        timerSet.add(timer);
      }
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
    finally
    {
      DbPoolConnection.getInstance().closeResultSet(rst);
      DbPoolConnection.getInstance().closeStatment(pstm);
      DbPoolConnection.getInstance().closeConn(conn);
    }

    return timerSet.toArray(new Timer[0]);
  }
 
  /**
   * @description:query timers by filterid
   * @date:2014-5-6 下午5:59:12
   * @version:v1.0
   * @param filterId
   * @return
   */
  public Timer[] queryTimersByFilterId(UUID filterId)
  {
    Set<Timer> timerSet = new LinkedHashSet<Timer>();

    Connection conn = null;
    PreparedStatement pstm = null;
    ResultSet rst = null;
    try
    {
      conn = DbPoolConnection.getInstance().getReadConnection();
      pstm = conn.prepareStatement("SELECT * FROM timer"
          + " WHERE filter_id = ?");
      pstm.setLong(1, Long.parseLong(filterId.getValue()));

      rst = pstm.executeQuery();
      while(rst.next())
      {
        UUID id = DataAccessFactory.getInstance().createUUID(rst.getObject("id").toString());
        Timestamp createTime = rst.getTimestamp("create_time");
        String createUser = rst.getString("create_user");

        Timer timer = new TimerImpl(id, createUser, createTime);

        timer.setName(rst.getString("name"));
        timer.setActionId(DataAccessFactory.getInstance().createUUID(rst.getObject("action_id").toString()));
        timer.setActionParam(rst.getString("action_param"));
        timer.setYear(rst.getString("year"));
        timer.setMonth(rst.getString("month"));
        timer.setWeek(rst.getString("week"));
        timer.setDay(rst.getString("day"));
        timer.setHour(rst.getString("hour"));
        timer.setMinute(rst.getString("minute"));
        timer.setSecond(rst.getString("second"));
        timer.setStart(rst.getBoolean("is_start"));

        Object filterIdObj = rst.getObject("filter_id");
        if(filterIdObj != null)
          timer.setFilterId(DataAccessFactory.getInstance().createUUID(filterIdObj.toString()));

        Object statisticerIdObj = rst.getObject("statisticer_id");
        if(statisticerIdObj != null)
          timer.setStatisticerId(DataAccessFactory.getInstance().createUUID(statisticerIdObj.toString()));

        timer.setRetryAccount(rst.getLong("retry_account"));
        timer.setRetryDelay(rst.getLong("retry_delay"));
        timer.setSendNull(rst.getBoolean("is_send_null"));

        timerSet.add(timer);
      }
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
    finally
    {
      DbPoolConnection.getInstance().closeResultSet(rst);
      DbPoolConnection.getInstance().closeStatment(pstm);
      DbPoolConnection.getInstance().closeConn(conn);
    }

    return timerSet.toArray(new Timer[0]);
  }

  /**
   * @description:query timer by timer id
   * @date:2014-5-6 下午5:59:25
   * @version:v1.0
   * @param timerId
   * @return
   */
  public Timer queryTimer(UUID timerId)
  {
    Timer timer = null;

    Connection conn = null;
    PreparedStatement pstm = null;
    ResultSet rst = null;
    try
    {
      conn = DbPoolConnection.getInstance().getReadConnection();
      pstm = conn.prepareStatement("SELECT * FROM timer"
          + " WHERE id = ?");
      pstm.setLong(1, Long.parseLong(timerId.getValue()));

      rst = pstm.executeQuery();
      if(rst.next())
      {
        String createUser = rst.getString("create_user");
        Timestamp createTime = rst.getTimestamp("create_time");

        timer = new TimerImpl(timerId, createUser, createTime);
        timer.setName(rst.getString("name"));
        timer.setActionId(DataAccessFactory.getInstance().createUUID(rst.getObject("action_id").toString()));
        timer.setActionParam(rst.getString("action_param"));
        timer.setYear(rst.getString("year"));
        timer.setMonth(rst.getString("month"));
        timer.setWeek(rst.getString("week"));
        timer.setDay(rst.getString("day"));
        timer.setHour(rst.getString("hour"));
        timer.setMinute(rst.getString("minute"));
        timer.setSecond(rst.getString("second"));

        Object filterIdObj = rst.getObject("filter_id");
        if(filterIdObj != null)
          timer.setFilterId(DataAccessFactory.getInstance().createUUID(filterIdObj.toString()));

        Object statisticerIdObj = rst.getObject("statisticer_id");
        if(statisticerIdObj != null)
          timer.setStatisticerId(DataAccessFactory.getInstance().createUUID(statisticerIdObj.toString()));

        timer.setStart(rst.getBoolean("is_start"));
        timer.setRetryAccount(rst.getLong("retry_account"));
        timer.setRetryDelay(rst.getLong("retry_delay"));
        timer.setSendNull(rst.getBoolean("is_send_null"));
      }
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
    finally
    {
      DbPoolConnection.getInstance().closeResultSet(rst);
      DbPoolConnection.getInstance().closeStatment(pstm);
      DbPoolConnection.getInstance().closeConn(conn);
    }

    return timer;
  }

  /**
   * @description:query all timers by timer action id
   * @date:2014-5-6 下午5:59:35
   * @version:v1.0
   * @param timerActionId
   * @return
   */
  public Timer[] queryTimersByActionId(UUID timerActionId) {
   
    Set<Timer> timerSet = new LinkedHashSet<Timer>();
    if (timerActionId == null) {
      return timerSet.toArray(new Timer[0]);
    }
   
    Connection conn = null;
    PreparedStatement pstm = null;
    ResultSet rst = null;
    try
    {
      conn = DbPoolConnection.getInstance().getReadConnection();
      pstm = conn.prepareStatement("SELECT * FROM timer"
          + " WHERE action_id = ?");
     
      pstm.setLong(1, Long.parseLong(timerActionId.getValue()));

      rst = pstm.executeQuery();
      while(rst.next())
      {
        UUID id = DataAccessFactory.getInstance().createUUID(rst.getObject("id").toString());
        String createUser = rst.getString("create_user");
        Timestamp createTime = rst.getTimestamp("create_time");

        Timer timer = new TimerImpl(id, createUser, createTime);

        timer.setName(rst.getString("name"));
        timer.setActionId(DataAccessFactory.getInstance().createUUID(rst.getObject("action_id").toString()));
        timer.setActionParam(rst.getString("action_param"));
        timer.setYear(rst.getString("year"));
        timer.setMonth(rst.getString("month"));
        timer.setWeek(rst.getString("week"));
        timer.setDay(rst.getString("day"));
        timer.setHour(rst.getString("hour"));
        timer.setMinute(rst.getString("minute"));
        timer.setSecond(rst.getString("second"));
        timer.setStart(rst.getBoolean("is_start"));

        Object filterIdObj = rst.getObject("filter_id");
        if(filterIdObj != null)
          timer.setFilterId(DataAccessFactory.getInstance().createUUID(filterIdObj.toString()));

        Object statisticerIdObj = rst.getObject("statisticer_id");
        if(statisticerIdObj != null)
          timer.setStatisticerId(DataAccessFactory.getInstance().createUUID(statisticerIdObj.toString()));

        timer.setRetryAccount(rst.getLong("retry_account"));
        timer.setRetryDelay(rst.getLong("retry_delay"));
        timer.setSendNull(rst.getBoolean("is_send_null"));

        timerSet.add(timer);
      }
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
    finally
    {
      DbPoolConnection.getInstance().closeResultSet(rst);
      DbPoolConnection.getInstance().closeStatment(pstm);
      DbPoolConnection.getInstance().closeConn(conn);
    }

    return timerSet.toArray(new Timer[0]);
  }
}
TOP

Related Classes of com.sogou.qadev.service.cynthia.dao.TimerAccessSessionMySQL

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.