|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectkr.co.hit.live.dao.JdbcDAO
public class JdbcDAO
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;
}
| 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)
ResultSet과 PreparedStatement 연결을 끊어주기 위하여 호출한다. |
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 |
|---|
public static final int META_SCHEMA
public static final int META_TABLE
public static final int META_VIEW
public static final int META_COLUMN
public static final String MAX_FETCH_LIMIT_KEY
public static final String IS_GET_DB_METADATA_KEY
public static final String IS_SET_VO_COLUMN_HEADER_KEY
protected org.slf4j.Logger sqlLog
protected static int maxFetchLimit
protected static boolean isGetMetaData
protected static boolean isSetVOColHeader
| Constructor Detail |
|---|
public JdbcDAO(String datasourceName,
DataSource datasource)
datasourceName - datasource - public JdbcDAO()
디폴트 Constructor, Datasource 명을 지정하지 않았기 때문에 DataSource에서 정한 Default 명을 사용한다.
public JdbcDAO(String dsn)
주어진 Datasource 명을 사용하여 DataSourceFactory에서 datasource 객체를 얻어오고자 할 경우.
public JdbcDAO(JdbcDAO dao)
주어진 DAO 객체와 동일한 설정의 DAO 객체를 생성한다.
public JdbcDAO(DataSource ds)
외부에서 생성한 datasource 객체를 사용하는 경우..
| Method Detail |
|---|
public String getDataSourceName()
생성할 때 주어진 Datasource 명을 리턴한다.
public void setDatasource(DataSource ds)
ds - 설정할 Datasource 객체
protected Connection getConnection()
throws LiveException
DB와 Connect하기 위한 Connection 객체를 리턴한다.
LiveException - connection 객체를 생성하다가 에러가 발생하는 경우protected DbmsSupporter getSupporter()
protected void close(Connection con)
throws LiveException
finally 구문에서 Connection 객체의 연결을 끊어주기 위하여 호출한다.
con - close할 Connection 객체
LiveException - Connection close시 에러가 발생하는 경우
protected void close(Connection con,
PreparedStatement ps,
ResultSet rs)
throws LiveException
finally 구문에서 Connection 객체의 연결을 끊어주기 위하여 호출한다.
PreparedStatement와 ResultSet을 같이 close하기 위하여 사용된다.
con - close할 Connection 객체ps - close할 PreparedStatement 객체, 해당사항이 없을 경우 null을 입력한다.rs - close할 ResultSet 객체, 해당사항이 없을 경우 null을 입력한다.
LiveException - close시 에러가 발생하는 경우
protected void close(PreparedStatement ps,
ResultSet rs)
throws LiveException
ResultSet과 PreparedStatement 연결을 끊어주기 위하여 호출한다.
ps - close할 PreparedStatement 객체, 해당사항이 없을 경우 null을 입력한다.rs - close할 ResultSet 객체, 해당사항이 없을 경우 null을 입력한다.
LiveException - close시 에러가 발생하는 경우
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);
con - DB에 연결되어 있는 Connection 객체sql - 수행할 Query 문params - Query 문에 순서대로 매핑될 파라메터 리스트의 배열
LiveException
protected int[] executeBatch(Connection con,
String sql,
List<?>[] params,
String sqlKey)
throws LiveException
executeBatch()와 동일하나 전처리/후처리 SQL을 지정하여 실행시킬수 있다. 이때 전처리/후처리 SQL은 sqlKey로 지정하며 이 값은 Global Query Map 파일에 지정되어 있어야한다.
con - DB에 연결되어 있는 Connection 객체sql - 수행할 Query 문params - Query 문에 순서대로 매핑될 파라메터 리스트의 배열sqlKey - 전처리/후처리 SQL을 실행을 위한 sqlKey
LiveException
protected int executeUpdate(Connection con,
String sql,
List<Object> param)
throws LiveException
DB update, insert, delete Query를 수행한다.
PreparedStatement에 사용될 SQL 문장과 순서대로 매핑될 파라메터 리스트를
전달하면 내부적으로 해당 SQL 수행한다.
con - DB에 연결되어 있는 Connection 객체sql - 수행할 Query 문param - Query 문에 순서대로 매핑될 파라메터
LiveException
protected int executeUpdate(Connection con,
String sql,
List<Object> param,
String sqlKey)
throws LiveException
executeUpdate()와 동일하나 전처리/후처리 SQL을 지정하여 실행시킬수 있다. 이때 전처리/후처리 SQL은 sqlKey로 지정하며 이 값은 Global Query Map 파일에 지정되어 있어야한다.
con - DB에 연결되어 있는 Connection 객체sql - 수행할 Query 문param - Query 문에 순서대로 매핑될 파라메터sqlKey - 전처리/후처리 SQL을 실행을 위한 sqlKey
LiveException
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에서만 사용이 가능하다.
con - DB에 연결되어 있는 Connection 객체sql - 수행할 Query 문param - Query 문에 순서대로 매핑될 파라메터numKeyCols - 리턴해 줄 테이블 컬럼의 개수를 지정한다.
LiveException
protected ValueObject executeUpdateReturnKeys(Connection con,
String sql,
List<Object> param,
int numKeyCols,
ResultMap rmap)
throws LiveException
LiveException
protected ValueObject executeUpdateReturnKeys(Connection con,
String sql,
List<Object> param,
int numKeyCols,
String sqlKey)
throws LiveException
LiveException
protected ValueObject executeUpdateReturnKeys(Connection con,
String sql,
List<Object> param,
int numKeyCols,
ResultMap rmap,
String sqlKey)
throws LiveException
con - DB에 연결되어 있는 Connection 객체sql - 수행할 Query 문param - Query 문에 순서대로 매핑될 파라메터numKeyCols - 리턴해 줄 테이블 컬럼의 개수를 지정한다.rmap - 조회된 결과의 컬럼별로 ColumnReader 를 지정하기 위한 ResultMap 객체
LiveException
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에서만 사용이 가능하다.
con - DB에 연결되어 있는 Connection 객체sql - 수행할 Query 문param - Query 문에 순서대로 매핑될 파라메터columnIndexes - 리턴해 줄 컬럼의 테이블 위치 인덱스를 지정한다.
LiveException
protected ValueObject executeUpdateReturnKeys(Connection con,
String sql,
List<Object> param,
int[] columnIndexes,
String sqlKey)
throws LiveException
LiveException
protected ValueObject executeUpdateReturnKeys(Connection con,
String sql,
List<Object> param,
int[] columnIndexes,
ResultMap rmap)
throws LiveException
LiveException
protected ValueObject executeUpdateReturnKeys(Connection con,
String sql,
List<Object> param,
int[] columnIndexes,
ResultMap rmap,
String sqlKey)
throws LiveException
con - DB에 연결되어 있는 Connection 객체sql - 수행할 Query 문param - Query 문에 순서대로 매핑될 파라메터columnIndexes - 리턴해 줄 컬럼의 테이블 위치 인덱스를 지정한다.rmap - 조회된 결과의 컬럼별로 ColumnReader 를 지정하기 위한 ResultMap 객체
LiveException
protected ValueObject executeUpdateReturnKeys(Connection con,
String sql,
List<Object> param,
String[] columnNames)
throws LiveException
LiveException
protected ValueObject executeUpdateReturnKeys(Connection con,
String sql,
List<Object> param,
String[] columnNames,
ResultMap rmap)
throws LiveException
LiveException
protected ValueObject executeUpdateReturnKeys(Connection con,
String sql,
List<Object> param,
String[] columnNames,
String sqlKey)
throws LiveException
LiveException
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에서만 사용이 가능하다.
con - DB에 연결되어 있는 Connection 객체sql - 수행할 Query 문param - Query 문에 순서대로 매핑될 파라메터columnNames - 리턴해 줄 컬럼의 컬럼명을 지정한다.rmap - 조회된 결과의 컬럼별로 ColumnReader 를 지정하기 위한 ResultMap 객체
LiveException
protected ValueObject executeUpdateReturnKeys(Connection con,
String sql,
List<Object> param)
throws LiveException
LiveException
protected ValueObject executeUpdateReturnKeys(Connection con,
String sql,
List<Object> param,
ResultMap rmap)
throws LiveException
LiveException
protected ValueObject executeUpdateReturnKeys(Connection con,
String sql,
List<Object> param,
String sqlKey)
throws LiveException
LiveException
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에서만 사용이 가능하다.
con - DB에 연결되어 있는 Connection 객체sql - 수행할 Query 문param - Query 문에 순서대로 매핑될 파라메터rmap -
LiveException
protected ValueObject executeQuery(Connection con,
String sql,
List<Object> param)
throws LiveException
DB 조회 Query를 수행한다.
PreparedStatement에 사용될 SQL 문장과 순서대로 매핑될 파라메터 리스트를
전달하면 내부적으로 해당 질의를 수행하여 그 결과를 ValueObject로 리턴한다.
ValueObject에 저장될 때 사용되는 키는 내부적으로 얻어진 ResultSet의
getColumnName().toLowerCase()를 호출하여 얻는다.
con - DB에 연결되어 있는 Connection 객체sql - 수행할 Query 문param - Query 문에 순서대로 매핑될 파라메터
LiveException
protected ValueObject executeQuery(Connection con,
String sql,
List<Object> param,
ValueObject pageVO)
throws LiveException
DB 조회 Query를 수행한다.
PreparedStatement에 사용될 SQL 문장과 순서대로 매핑될 파라메터 리스트를
전달하면 내부적으로 해당 질의를 수행하여 그 결과를 ValueObject로 리턴한다.
ValueObject에 저장될 때 사용되는 키는 내부적으로 얻어진 ResultSet의
getColumnName().toLowerCase()를 호출하여 얻는다.
con - DB에 연결되어 있는 Connection 객체sql - 수행할 Query 문param - Query 문에 순서대로 매핑될 파라메터pageVO - 페이지 단위 조회를 위한 추가 정보
LiveException
protected ValueObject executeQuery(Connection con,
String sql,
List<Object> param,
String sqlKey)
throws LiveException
LiveException
protected ValueObject executeQuery(Connection con,
String sql,
List<Object> param,
ResultMap rmap)
throws LiveException
LiveException
protected ValueObject executeQuery(Connection con,
String sql,
List<Object> param,
ValueObject pageVO,
ResultMap rmap)
throws LiveException
LiveException
protected ValueObject executeQuery(Connection con,
String sql,
List<Object> param,
ValueObject pageVO,
String sqlKey)
throws LiveException
LiveException
protected ValueObject executeQuery(Connection con,
String sql,
List<Object> param,
ResultMap rmap,
String sqlKey)
throws LiveException
LiveException
protected ValueObject executeQuery(Connection con,
String sql,
List<Object> param,
ValueObject pageVO,
ResultMap rmap,
String sqlKey)
throws LiveException
con - sql - param - pageVO - rmap - sqlKey - 수행할 SQL 이전과 이후에 다른 SQL을 수행하고자 할 경우 이를 나타내는 sqlKey를 지정한다.
sqlKey 값은 Global Query Map 파일에 정의되어 있어야한다.
LiveException
protected int fetchResultSet(ResultSet rs,
ValueObject intoVO,
ResultMap rmap)
throws SQLException,
LiveException
rs - result set 객체intoVO - 조회 결과를 담을 ValueObject 객체rmap - ResultMap
SQLException
LiveException
protected ColumnReader getColumnReader(String colName,
int type,
String typeName,
ResultMap rmap)
colName - type - typeName - rmap -
protected ValueObject queryMetaData(Connection con,
int metaType,
String name)
throws LiveException
metaType - name -
LiveException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||