kr.co.hit.live.dao
Class JdbcDAO

java.lang.Object
  extended by kr.co.hit.live.dao.JdbcDAO
Direct Known Subclasses:
JdbcQueryDAO

public class JdbcDAO
extends Object

JDBC용 DAO 이다. DAO 클래스 선언시 상위 클래스로 사용된다.

다음은 JdbcDAO 사용하여 사용자가 만든 DAO의 한 메소드 예이다.

 static final String GET_EMPLOYEE_INFO_SQL =
    "  select emp_nm, emp_no, emp_ssn "
          + "  from tb_zz0_employee         "
          + " where emp_no       = ?        ";

        public ValueObject getEmployeeBasicInfo(ValueObject pVO) throws LiveException
        {
          if ( log.isInfoEnabled())
            log.info("getEmployeeBasicInfo() start...");

    ValueObject resultVO  = null;
    Connection con = null;
    ArrayList params = null;

    try {
      con = getConnection();    // Connection 객체를 획득한다.

      params.add(pVO.get("empno"));  // SQL 문의 조건 파라메터를 지정한다.

      resultVO = executeQuery(con, GET_EMPLOYEE_INFO_SQL, params);

    }
    finally {
      close(con); // Connection을 close()한다.
    }

    if ( log.isInfoEnabled())
      log.info("getEmployeeBasicInfo() end...");

    return resultVO;
  }

 

Since:
3.0
Version:
$Revision: 1.1 $ $Date: 2006/09/26 08:20:15 $
Author:
김형도

Field Summary
static String IS_GET_DB_METADATA_KEY
           
static String IS_SET_VO_COLUMN_HEADER_KEY
           
protected static boolean isGetMetaData
          DataBase의 MetaData 정보를 가져올지 설정한다.
protected static boolean isSetVOColHeader
           
static String MAX_FETCH_LIMIT_KEY
           
protected static int maxFetchLimit
          최대 조회 건수의 제한 값을 설정한다.
static int META_COLUMN
           
static int META_SCHEMA
           
static int META_TABLE
           
static int META_VIEW
           
protected  org.slf4j.Logger sqlLog
           
 
Constructor Summary
JdbcDAO()
           디폴트 Constructor, Datasource 명을 지정하지 않았기 때문에 DataSource에서 정한 Default 명을 사용한다.
JdbcDAO(DataSource ds)
           외부에서 생성한 datasource 객체를 사용하는 경우..
JdbcDAO(JdbcDAO dao)
           주어진 DAO 객체와 동일한 설정의 DAO 객체를 생성한다.
JdbcDAO(String dsn)
           주어진 Datasource 명을 사용하여 DataSourceFactory에서 datasource 객체를 얻어오고자 할 경우.
JdbcDAO(String datasourceName, DataSource datasource)
          데이터 소스 명칭과 해당 데이터 소스를 파라메터로 넘긴다.
 
Method Summary
protected  void close(Connection con)
           finally 구문에서 Connection 객체의 연결을 끊어주기 위하여 호출한다.
protected  void close(Connection con, PreparedStatement ps, ResultSet rs)
           finally 구문에서 Connection 객체의 연결을 끊어주기 위하여 호출한다.
protected  void close(PreparedStatement ps, ResultSet rs)
           ResultSetPreparedStatement 연결을 끊어주기 위하여 호출한다.
protected  int[] executeBatch(Connection con, String sql, List<?>[] params)
           여러건의 update, insert, delete query를 한번의 배치로 수행한다.
protected  int[] executeBatch(Connection con, String sql, List<?>[] params, String sqlKey)
           executeBatch()와 동일하나 전처리/후처리 SQL을 지정하여 실행시킬수 있다.
protected  ValueObject executeQuery(Connection con, String sql, List<Object> param)
           DB 조회 Query를 수행한다.
protected  ValueObject executeQuery(Connection con, String sql, List<Object> param, ResultMap rmap)
           
protected  ValueObject executeQuery(Connection con, String sql, List<Object> param, ResultMap rmap, String sqlKey)
           
protected  ValueObject executeQuery(Connection con, String sql, List<Object> param, String sqlKey)
           
protected  ValueObject executeQuery(Connection con, String sql, List<Object> param, ValueObject pageVO)
           DB 조회 Query를 수행한다.
protected  ValueObject executeQuery(Connection con, String sql, List<Object> param, ValueObject pageVO, ResultMap rmap)
           
protected  ValueObject executeQuery(Connection con, String sql, List<Object> param, ValueObject pageVO, ResultMap rmap, String sqlKey)
          executeQuery()를 수행하며 이때 ColumnReader 정보를 담은 ResultMap 객체를 전달한다.
protected  ValueObject executeQuery(Connection con, String sql, List<Object> param, ValueObject pageVO, String sqlKey)
           
protected  int executeUpdate(Connection con, String sql, List<Object> param)
           DB update, insert, delete Query를 수행한다.
protected  int executeUpdate(Connection con, String sql, List<Object> param, String sqlKey)
           executeUpdate()와 동일하나 전처리/후처리 SQL을 지정하여 실행시킬수 있다.
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param)
           
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, int numKeyCols)
           DB Insert Query를 수행하며, 입력된 결과를 리턴한다.
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, int[] columnIndexes)
           DB Insert Query를 수행하며, 입력된 결과를 리턴한다.
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, int[] columnIndexes, ResultMap rmap)
           
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, int[] columnIndexes, ResultMap rmap, String sqlKey)
          executeUpdateReturnKeys()를 수행하는데 추가적으로 ResultMap 객체를 전달한다.
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, int[] columnIndexes, String sqlKey)
           
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, int numKeyCols, ResultMap rmap)
           
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, int numKeyCols, ResultMap rmap, String sqlKey)
          executeUpdateReturnKeys() 하는데 ResultMap 객체를 추가적으로 전달한다.
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, int numKeyCols, String sqlKey)
           
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, ResultMap rmap)
           
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, ResultMap rmap, String sqlKey)
           DB Insert Query를 수행하며, 입력된 결과를 리턴한다.
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, String sqlKey)
           
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, String[] columnNames)
           
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, String[] columnNames, ResultMap rmap)
           
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, String[] columnNames, ResultMap rmap, String sqlKey)
           DB Insert Query를 수행하며, 입력된 결과를 리턴한다.
protected  ValueObject executeUpdateReturnKeys(Connection con, String sql, List<Object> param, String[] columnNames, String sqlKey)
           
protected  int fetchResultSet(ResultSet rs, ValueObject intoVO, ResultMap rmap)
          ResultSet으로부터 조회된 결과를 ValueObject에 담아준다.
protected  ColumnReader getColumnReader(String colName, int type, String typeName, ResultMap rmap)
          ColumnReader 객체를 얻어오는 메소드이다.
protected  Connection getConnection()
           DB와 Connect하기 위한 Connection 객체를 리턴한다.
 String getDataSourceName()
           생성할 때 주어진 Datasource 명을 리턴한다.
protected  DbmsSupporter getSupporter()
           
protected  ValueObject queryMetaData(Connection con, int metaType, String name)
          데이터베이스의 테이블,컬럼 등의 메타 데이터 정보를 조회한다.
 void setDatasource(DataSource ds)
          외부에서 생성한 Datasource를 지정한다.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

META_SCHEMA

public static final int META_SCHEMA
See Also:
Constant Field Values

META_TABLE

public static final int META_TABLE
See Also:
Constant Field Values

META_VIEW

public static final int META_VIEW
See Also:
Constant Field Values

META_COLUMN

public static final int META_COLUMN
See Also:
Constant Field Values

MAX_FETCH_LIMIT_KEY

public static final String MAX_FETCH_LIMIT_KEY
See Also:
Constant Field Values

IS_GET_DB_METADATA_KEY

public static final String IS_GET_DB_METADATA_KEY
See Also:
Constant Field Values

IS_SET_VO_COLUMN_HEADER_KEY

public static final String IS_SET_VO_COLUMN_HEADER_KEY
See Also:
Constant Field Values

sqlLog

protected org.slf4j.Logger sqlLog

maxFetchLimit

protected static int maxFetchLimit
최대 조회 건수의 제한 값을 설정한다.


isGetMetaData

protected static boolean isGetMetaData
DataBase의 MetaData 정보를 가져올지 설정한다.(default:false)


isSetVOColHeader

protected static boolean isSetVOColHeader
Constructor Detail

JdbcDAO

public JdbcDAO(String datasourceName,
               DataSource datasource)
데이터 소스 명칭과 해당 데이터 소스를 파라메터로 넘긴다.

Parameters:
datasourceName -
datasource -

JdbcDAO

public JdbcDAO()

디폴트 Constructor, Datasource 명을 지정하지 않았기 때문에 DataSource에서 정한 Default 명을 사용한다.


JdbcDAO

public JdbcDAO(String dsn)

주어진 Datasource 명을 사용하여 DataSourceFactory에서 datasource 객체를 얻어오고자 할 경우.


JdbcDAO

public JdbcDAO(JdbcDAO dao)

주어진 DAO 객체와 동일한 설정의 DAO 객체를 생성한다.


JdbcDAO

public JdbcDAO(DataSource ds)

외부에서 생성한 datasource 객체를 사용하는 경우..

Method Detail

getDataSourceName

public String getDataSourceName()

생성할 때 주어진 Datasource 명을 리턴한다.


setDatasource

public void setDatasource(DataSource ds)
외부에서 생성한 Datasource를 지정한다. 이때 이전에 이미 Datasource가 설정되어 있다면 다시 지정되지 않는다.

Parameters:
ds - 설정할 Datasource 객체

getConnection

protected Connection getConnection()
                            throws LiveException

DB와 Connect하기 위한 Connection 객체를 리턴한다.

Throws:
LiveException - connection 객체를 생성하다가 에러가 발생하는 경우

getSupporter

protected DbmsSupporter getSupporter()

close

protected void close(Connection con)
              throws LiveException

finally 구문에서 Connection 객체의 연결을 끊어주기 위하여 호출한다.

Parameters:
con - close할 Connection 객체
Throws:
LiveException - Connection close시 에러가 발생하는 경우

close

protected void close(Connection con,
                     PreparedStatement ps,
                     ResultSet rs)
              throws LiveException

finally 구문에서 Connection 객체의 연결을 끊어주기 위하여 호출한다. PreparedStatementResultSet을 같이 close하기 위하여 사용된다.

Parameters:
con - close할 Connection 객체
ps - close할 PreparedStatement 객체, 해당사항이 없을 경우 null을 입력한다.
rs - close할 ResultSet 객체, 해당사항이 없을 경우 null을 입력한다.
Throws:
LiveException - close시 에러가 발생하는 경우

close

protected void close(PreparedStatement ps,
                     ResultSet rs)
              throws LiveException

ResultSetPreparedStatement 연결을 끊어주기 위하여 호출한다.

Parameters:
ps - close할 PreparedStatement 객체, 해당사항이 없을 경우 null을 입력한다.
rs - close할 ResultSet 객체, 해당사항이 없을 경우 null을 입력한다.
Throws:
LiveException - close시 에러가 발생하는 경우

executeBatch

protected int[] executeBatch(Connection con,
                             String sql,
                             List<?>[] params)
                      throws LiveException

여러건의 update, insert, delete query를 한번의 배치로 수행한다. 배치처리될 SQL 문장과 순서대로 매핑될 파라메터 리스트의 배열을 전달하면 한번에 배치처리를 한다.

사용예
    ArrayList[] paramsArray = new ArrayList[pVO.size()];
    for(int i = 0; i < pVO.size(); i++) {
        paramsArray[i] = new ArrayList();
        paramsArray[i].add(pVO.get(i,"emp_no"));
    }

    rows = executeBatch(con, DELETE_EMPLOYEES_SQL, paramsArray);
 

Parameters:
con - DB에 연결되어 있는 Connection 객체
sql - 수행할 Query 문
params - Query 문에 순서대로 매핑될 파라메터 리스트의 배열
Returns:
INSERT, UPDATE, DELETE 실행결과의 row count 또는 0(DDL SQL 문의 경우)
Throws:
LiveException

executeBatch

protected int[] executeBatch(Connection con,
                             String sql,
                             List<?>[] params,
                             String sqlKey)
                      throws LiveException

executeBatch()와 동일하나 전처리/후처리 SQL을 지정하여 실행시킬수 있다. 이때 전처리/후처리 SQL은 sqlKey로 지정하며 이 값은 Global Query Map 파일에 지정되어 있어야한다.

Parameters:
con - DB에 연결되어 있는 Connection 객체
sql - 수행할 Query 문
params - Query 문에 순서대로 매핑될 파라메터 리스트의 배열
sqlKey - 전처리/후처리 SQL을 실행을 위한 sqlKey
Returns:
INSERT, UPDATE, DELETE 실행결과의 row count 또는 0(DDL SQL 문의 경우)
Throws:
LiveException

executeUpdate

protected int executeUpdate(Connection con,
                            String sql,
                            List<Object> param)
                     throws LiveException

DB update, insert, delete Query를 수행한다. PreparedStatement에 사용될 SQL 문장과 순서대로 매핑될 파라메터 리스트를 전달하면 내부적으로 해당 SQL 수행한다.

Parameters:
con - DB에 연결되어 있는 Connection 객체
sql - 수행할 Query 문
param - Query 문에 순서대로 매핑될 파라메터
Returns:
INSERT, UPDATE, DELETE 실행결과의 row count 또는 0(DDL SQL 문의 경우)
Throws:
LiveException

executeUpdate

protected int executeUpdate(Connection con,
                            String sql,
                            List<Object> param,
                            String sqlKey)
                     throws LiveException

executeUpdate()와 동일하나 전처리/후처리 SQL을 지정하여 실행시킬수 있다. 이때 전처리/후처리 SQL은 sqlKey로 지정하며 이 값은 Global Query Map 파일에 지정되어 있어야한다.

Parameters:
con - DB에 연결되어 있는 Connection 객체
sql - 수행할 Query 문
param - Query 문에 순서대로 매핑될 파라메터
sqlKey - 전처리/후처리 SQL을 실행을 위한 sqlKey
Returns:
INSERT, UPDATE, DELETE 실행결과의 row count 또는 0(DDL SQL 문의 경우)
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              int numKeyCols)
                                       throws LiveException

DB Insert Query를 수행하며, 입력된 결과를 리턴한다. PreparedStatement에 사용될 SQL 문장과 순서대로 매핑될 파라메터 리스트를 전달하면 내부적으로 해당 SQL 수행한 후, 테이블에 입력되는 컬럼들 중 테이블의 컬럼위치를 기준으로 처음부터 numKeyCols 만큼 지정된 개수의 컬럼들의 입력된 값을 ValueObject로 담아서 리턴해준다. JDBC 3.0을 지원하는 Driver에서만 사용이 가능하다.

Parameters:
con - DB에 연결되어 있는 Connection 객체
sql - 수행할 Query 문
param - Query 문에 순서대로 매핑될 파라메터
numKeyCols - 리턴해 줄 테이블 컬럼의 개수를 지정한다.
Returns:
실행된 SQL이 Insert 문인 경우에 만 입력된 컬럼 값을 담은 ValueObject를 리턴, 그 외에는 비어있는 ValueObject를 리턴
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              int numKeyCols,
                                              ResultMap rmap)
                                       throws LiveException
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              int numKeyCols,
                                              String sqlKey)
                                       throws LiveException
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              int numKeyCols,
                                              ResultMap rmap,
                                              String sqlKey)
                                       throws LiveException
executeUpdateReturnKeys() 하는데 ResultMap 객체를 추가적으로 전달한다.

Parameters:
con - DB에 연결되어 있는 Connection 객체
sql - 수행할 Query 문
param - Query 문에 순서대로 매핑될 파라메터
numKeyCols - 리턴해 줄 테이블 컬럼의 개수를 지정한다.
rmap - 조회된 결과의 컬럼별로 ColumnReader 를 지정하기 위한 ResultMap 객체
Returns:
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              int[] columnIndexes)
                                       throws LiveException

DB Insert Query를 수행하며, 입력된 결과를 리턴한다. PreparedStatement에 사용될 SQL 문장과 순서대로 매핑될 파라메터 리스트를 전달하면 내부적으로 해당 SQL 수행한 후, columnIndexes[] 로 지정된 위치의 컬럼들의 입력 값을 ValueObject로 담아서 리턴해준다. JDBC 3.0을 지원하는 Driver에서만 사용이 가능하다.

Parameters:
con - DB에 연결되어 있는 Connection 객체
sql - 수행할 Query 문
param - Query 문에 순서대로 매핑될 파라메터
columnIndexes - 리턴해 줄 컬럼의 테이블 위치 인덱스를 지정한다.
Returns:
실행된 SQL이 Insert 문인 경우에 만 입력된 컬럼 값을 담은 ValueObject를 리턴, 그 외에는 비어있는 ValueObject를 리턴
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              int[] columnIndexes,
                                              String sqlKey)
                                       throws LiveException
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              int[] columnIndexes,
                                              ResultMap rmap)
                                       throws LiveException
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              int[] columnIndexes,
                                              ResultMap rmap,
                                              String sqlKey)
                                       throws LiveException
executeUpdateReturnKeys()를 수행하는데 추가적으로 ResultMap 객체를 전달한다.

Parameters:
con - DB에 연결되어 있는 Connection 객체
sql - 수행할 Query 문
param - Query 문에 순서대로 매핑될 파라메터
columnIndexes - 리턴해 줄 컬럼의 테이블 위치 인덱스를 지정한다.
rmap - 조회된 결과의 컬럼별로 ColumnReader 를 지정하기 위한 ResultMap 객체
Returns:
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              String[] columnNames)
                                       throws LiveException
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              String[] columnNames,
                                              ResultMap rmap)
                                       throws LiveException
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              String[] columnNames,
                                              String sqlKey)
                                       throws LiveException
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              String[] columnNames,
                                              ResultMap rmap,
                                              String sqlKey)
                                       throws LiveException

DB Insert Query를 수행하며, 입력된 결과를 리턴한다. PreparedStatement에 사용될 SQL 문장과 순서대로 매핑될 파라메터 리스트를 전달하면 내부적으로 해당 SQL 수행한 후, columnNames[] 로 지정된 컬럼명에 해당되는 컬럼의 입력 값을 ValueObject로 담아서 리턴해준다. JDBC 3.0을 지원하는 Driver에서만 사용이 가능하다.

Parameters:
con - DB에 연결되어 있는 Connection 객체
sql - 수행할 Query 문
param - Query 문에 순서대로 매핑될 파라메터
columnNames - 리턴해 줄 컬럼의 컬럼명을 지정한다.
rmap - 조회된 결과의 컬럼별로 ColumnReader 를 지정하기 위한 ResultMap 객체
Returns:
실행된 SQL이 Insert 문인 경우에 만 입력된 컬럼 값을 담은 ValueObject를 리턴, 그 외에는 비어있는 ValueObject를 리턴
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param)
                                       throws LiveException
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              ResultMap rmap)
                                       throws LiveException
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              String sqlKey)
                                       throws LiveException
Throws:
LiveException

executeUpdateReturnKeys

protected ValueObject executeUpdateReturnKeys(Connection con,
                                              String sql,
                                              List<Object> param,
                                              ResultMap rmap,
                                              String sqlKey)
                                       throws LiveException

DB Insert Query를 수행하며, 입력된 결과를 리턴한다. PreparedStatement에 사용될 SQL 문장과 순서대로 매핑될 파라메터 리스트를 전달하면 내부적으로 해당 SQL 수행한 후, 자동으로 생성되는 컬럼들의 입력 값을 ValueObject로 담아서 리턴해준다. JDBC 3.0을 지원하는 Driver에서만 사용이 가능하다.

Parameters:
con - DB에 연결되어 있는 Connection 객체
sql - 수행할 Query 문
param - Query 문에 순서대로 매핑될 파라메터
rmap -
Returns:
실행된 SQL이 Insert 문인 경우에 만 입력된 컬럼 값을 담은 ValueObject를 리턴, 그 외에는 비어있는 ValueObject를 리턴
Throws:
LiveException

executeQuery

protected ValueObject executeQuery(Connection con,
                                   String sql,
                                   List<Object> param)
                            throws LiveException

DB 조회 Query를 수행한다. PreparedStatement에 사용될 SQL 문장과 순서대로 매핑될 파라메터 리스트를 전달하면 내부적으로 해당 질의를 수행하여 그 결과를 ValueObject로 리턴한다. ValueObject에 저장될 때 사용되는 키는 내부적으로 얻어진 ResultSetgetColumnName().toLowerCase()를 호출하여 얻는다.

Parameters:
con - DB에 연결되어 있는 Connection 객체
sql - 수행할 Query 문
param - Query 문에 순서대로 매핑될 파라메터
Returns:
ValueObject 질의결과를 담은 ValueObject
Throws:
LiveException

executeQuery

protected ValueObject executeQuery(Connection con,
                                   String sql,
                                   List<Object> param,
                                   ValueObject pageVO)
                            throws LiveException

DB 조회 Query를 수행한다. PreparedStatement에 사용될 SQL 문장과 순서대로 매핑될 파라메터 리스트를 전달하면 내부적으로 해당 질의를 수행하여 그 결과를 ValueObject로 리턴한다. ValueObject에 저장될 때 사용되는 키는 내부적으로 얻어진 ResultSetgetColumnName().toLowerCase()를 호출하여 얻는다.

Parameters:
con - DB에 연결되어 있는 Connection 객체
sql - 수행할 Query 문
param - Query 문에 순서대로 매핑될 파라메터
pageVO - 페이지 단위 조회를 위한 추가 정보
  • max_cnt 한 번에 담아올 최대 조회 건수(실제로는 1건 더 읽어온다.)
  • offset offset 만큼 조회결과를 건너뛰어 그 다음부터 읽어온다.
  • tot_cnt 전체 조회 건수가 담겨저 리턴된다.
  • rmn_cnt VO에 담겨지지 않은 남은 조회 건수가 담겨저 리턴된다.
  • sort_field DB2의 경우 정렬 기준이 되는 컬럼명을 지정한다.
Returns:
ValueObject 질의결과를 담은 ValueObject
Throws:
LiveException

executeQuery

protected ValueObject executeQuery(Connection con,
                                   String sql,
                                   List<Object> param,
                                   String sqlKey)
                            throws LiveException
Throws:
LiveException

executeQuery

protected ValueObject executeQuery(Connection con,
                                   String sql,
                                   List<Object> param,
                                   ResultMap rmap)
                            throws LiveException
Throws:
LiveException

executeQuery

protected ValueObject executeQuery(Connection con,
                                   String sql,
                                   List<Object> param,
                                   ValueObject pageVO,
                                   ResultMap rmap)
                            throws LiveException
Throws:
LiveException

executeQuery

protected ValueObject executeQuery(Connection con,
                                   String sql,
                                   List<Object> param,
                                   ValueObject pageVO,
                                   String sqlKey)
                            throws LiveException
Throws:
LiveException

executeQuery

protected ValueObject executeQuery(Connection con,
                                   String sql,
                                   List<Object> param,
                                   ResultMap rmap,
                                   String sqlKey)
                            throws LiveException
Throws:
LiveException

executeQuery

protected ValueObject executeQuery(Connection con,
                                   String sql,
                                   List<Object> param,
                                   ValueObject pageVO,
                                   ResultMap rmap,
                                   String sqlKey)
                            throws LiveException
executeQuery()를 수행하며 이때 ColumnReader 정보를 담은 ResultMap 객체를 전달한다.

Parameters:
con -
sql -
param -
pageVO -
rmap -
sqlKey - 수행할 SQL 이전과 이후에 다른 SQL을 수행하고자 할 경우 이를 나타내는 sqlKey를 지정한다. sqlKey 값은 Global Query Map 파일에 정의되어 있어야한다.
Returns:
Throws:
LiveException

fetchResultSet

protected int fetchResultSet(ResultSet rs,
                             ValueObject intoVO,
                             ResultMap rmap)
                      throws SQLException,
                             LiveException
ResultSet으로부터 조회된 결과를 ValueObject에 담아준다.

Parameters:
rs - result set 객체
intoVO - 조회 결과를 담을 ValueObject 객체
rmap - ResultMap
Returns:
fetch된 row 수
Throws:
SQLException
LiveException

getColumnReader

protected ColumnReader getColumnReader(String colName,
                                       int type,
                                       String typeName,
                                       ResultMap rmap)
ColumnReader 객체를 얻어오는 메소드이다. 주어진 rmap에서 colName에 해당되는 ColumnReader가 있으면 그것을 리턴하고, 없으면 type에 해당되는 ColumnReader를 rmap에서 찾아 리턴한다. 그것도 없으면 DbmsSupporter에서 주어진 type에 해당되는 ColumnReader를 찾아서 리턴한다.

Parameters:
colName -
type -
typeName -
rmap -
Returns:

queryMetaData

protected ValueObject queryMetaData(Connection con,
                                    int metaType,
                                    String name)
                             throws LiveException
데이터베이스의 테이블,컬럼 등의 메타 데이터 정보를 조회한다.

Parameters:
metaType -
name -
Returns:
Throws:
LiveException


Copyright © 2014. All Rights Reserved.