package com.eactive.eai.adapter.wca.cfg;

import com.eactive.eai.adapter.wca.jdbc.BaseJDBC;
import com.eactive.eai.adapter.wca.jdbc.JDBCException;
import com.eactive.eai.common.util.Logger;

import java.sql.SQLException;

/** 
* 1. 기능 : LU 호스트 테이블을 접근하기 위한 JDBC 클래스
* 2. 처리 개요 :
* 3. 주의사항 
*
* @author  :  
* @version : v 1.0.0
* @see     : LUHostQuery.java
* @since   : 
*/
public class LUHostJDBCEx extends BaseJDBC implements LUHostQueryEx
{     
    Logger trc_logger = Logger.getLogger(Logger.LOGGER_ADAPTER);
    
   /** 
    * 1. 기능 :  LU 호스트 정보 추가
    * 2. 처리 개요 : 
    * 3. 주의사항 
    *
    * @param        data    LUHostData Object
    * @return       추가된 레코드 수 
    * @exception    JDBCException   DB 작업시 발행하는 예외 발생 정보 (SQLException 에러코드와 메세지 포함)
    **/
    public int insertLUHost(LUHostDataEx data) throws JDBCException {
        try {
            getDsConnection();
            setStatement(INSERT_LU_HOST);
            
            this.preparedStatement.setString(1,data.getSNAAdptrSevrName());
            this.preparedStatement.setString(2,data.getSNAAdptrSevrIPName());
            this.preparedStatement.setString(3,data.getSNAAdptrSevrCtnt());
            
            return executeUpdate();
        } 
        catch(SQLException e) {
            throw new JDBCException("LUHostJDBC","insertLUHost",e);
        } 
        finally {
            this.close();   
        }
    }
    
    /** 
    * 1. 기능 :  LU 호스트 정보 삭제
    * 2. 처리 개요 : 
    * 3. 주의사항 
    *
    * @param        data    LUHostData Object
    * @return       삭제된 레코드 수 
    * @exception    JDBCException   DB 작업시 발행하는 예외 발생 정보 (SQLException 에러코드와 메세지 포함)
    **/
    public int deleteLUHost(LUHostDataEx data) throws JDBCException {
        try {
            getDsConnection();            
            setStatement(DELETE_LU_HOST);                     
            this.preparedStatement.setString(1,data.getSNAAdptrSevrName());
           
            return executeUpdate();
        } 
        catch(SQLException e) {
            throw new JDBCException("LUHostJDBC","deleteLUHost",e);
        } 
        finally {
            this.close();   
        }
    }
    
   /** 
    * 1. 기능 :  LU 호스트 정보 수정
    * 2. 처리 개요 : 
    * 3. 주의사항 
    *
    * @param        data    LUHostData Object
    * @return       수정된 레코드 수 
    * @exception    JDBCException   DB 작업시 발행하는 예외 발생 정보 (SQLException 에러코드와 메세지 포함)
    **/
    public int updateLUHost(LUHostDataEx data) throws JDBCException {
        try {           
            getDsConnection();            
            setStatement(UPDATE_LU_HOST);            
            this.preparedStatement.setString(1,data.getSNAAdptrSevrIPName());
            this.preparedStatement.setString(2,data.getSNAAdptrSevrCtnt());
            this.preparedStatement.setString(3,data.getSNAAdptrSevrName());            

            return executeUpdate();
        } 
        catch(SQLException e) {
            throw new JDBCException("LUHostJDBC","updateLUHost",e);
        } 
        finally {
            this.close();   
        }
    }
    
}
