
public class GlueJdbcDao extends NamedParameterJdbcDaoSupport implements GlueGenericJdbcDao
 Bean Property
 
 - dataSource : (필수) javax.sql.DataSource 
 
 - queryManager : (필수) com.poscoict.glueframework.dao.manager.GlueQueryManager 
 
 - columnManager : (선택) com.poscoict.glueframework.dao.manager.GlueColumnManager, default는 null
 
 - sequence : (선택) com.poscoict.glueframework.dao.sequence.GlueSequence, 
                      default는 자동생성되나 지원되는 DB가 제한적임. 
 
 - lobHandler (선택) org.springframework.jdbc.support.lob.LobHandler,
                      default는 org.springframework.jdbc.support.lob.DefaultLobHandler
 
 - typeCast : (선택) boolean( true, false ), default는 false임.
 
 - batchUpdateLimit : (선택) int, default는 30000
 
 - fetchSize : (선택) int, default 0
 
 예제
 사용 예# 1
 
     
          
          
       
 | Modifier and Type | Field and Description | 
|---|---|
protected LobHandler | 
lobHandler
Lob handler for processing lob type 
 | 
protected GlueQueryManager | 
queryManager
Query Manager 
 | 
protected GlueSequence | 
sequence  | 
DEFAULT_BATCH_UPDATE_SIZE, DELETE, INSERT, SELECT, UPDATE| Constructor and Description | 
|---|
GlueJdbcDao()
생성자(constructor). 
 | 
| Modifier and Type | Method and Description | 
|---|---|
int[] | 
batchUpdate(String queryKey,
           GlueParameter<List<?>>[] params,
           int[] types)
JDBC 2.0 Specification에 정의된 Batch Update를 실행한다. 
 | 
int[] | 
batchUpdate(String queryKey,
           GlueParameter<Map<?,?>>[] params,
           Map<String,Integer> types)
JDBC 2.0 Specification에 정의된 Batch Update를 실행한다. 
 | 
<P> int[] | 
batchUpdate(String queryKey,
           GlueParameter<P>[] params)
JDBC 2.0 Specification에 정의된 Batch Update를 실행한다. 
 | 
int[] | 
batchUpdateByQueryStatement(String queryStmt,
                           GlueParameter<List<?>>[] params,
                           int[] types)
JDBC 2.0 Specification에 정의된 Batch Update를 실행한다. 
 | 
int[] | 
batchUpdateByQueryStatement(String queryStmt,
                           GlueParameter<Map<?,?>>[] params,
                           Map<String,Integer> types)
JDBC 2.0 Specification에 정의된 Batch Update를 실행한다. 
 | 
<P> int[] | 
batchUpdateByQueryStatement(String queryStmt,
                           GlueParameter<P>[] params)
JDBC 2.0 Specification에 정의된 Batch Update를 실행한다. 
 | 
protected JdbcTemplate | 
createJdbcTemplate(DataSource dataSource)  | 
int | 
delete(String queryKey)
쿼리 키에 해당하는 Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 Database Record를 삭제한다. 
 | 
<P> int | 
delete(String queryKey,
      GlueParameter<P> param)
쿼리 키에 해당하는 SQL 쿼리문장을 실행하여 Database Record를 삭제한다. 
 | 
int | 
deleteByQueryStatement(String queryStmt)
SQL 쿼리문장을 실행하여 Database Record를 삭제한다. 
 | 
<P> int | 
deleteByQueryStatement(String queryStmt,
                      GlueParameter<P> param)
SQL 쿼리문장을 실행하여 Database Record를 삭제한다. 
 | 
<T> List<T> | 
find(String queryKey)
쿼리 키에 해당하는 Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 조건에 해당하는 Database Record를 검색한다. 
 | 
<T,P> List<T> | 
find(String queryKey,
    GlueParameter<P> param)
쿼리 키에 해당하는 SQL 쿼리문장을 실행하여 조건에 해당하는 Database Record를 검색한다. 
 | 
<T,P> List<T> | 
find(String queryKey,
    String whereClause,
    GlueParameter<P> param)
쿼리 키에 해당하는 SQL 쿼리문장에 where 절을 적용하여 조건에 해당하는 Database Record를 검색한다. 
 | 
protected <T,P> List<T> | 
findByQueryDefinitionInternal(GlueQueryDefinition def,
                             GlueParameter<P> param)  | 
<T> List<T> | 
findByQueryStatement(String queryStmt)
Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 조건에 해당하는 Database Record를 검색한다. 
 | 
<T,P> List<T> | 
findByQueryStatement(String queryStmt,
                    GlueParameter<P> param)
SQL 쿼리문장을 실행하여 조건에 해당하는 Database Record를 검색한다. 
 | 
<P> GluePageSet | 
findForNavigationPage(String queryKey,
                     GlueParameter<P> param,
                     int pageSize,
                     int curPage)
Page Set 기능을 지원하는 메소드이다. 
 | 
GluePageSet | 
findForNavigationPage(String queryKey,
                     int pageSize,
                     int curPage)
Page Set 기능을 지원하는 메소드이다. 
 | 
<P> GluePageSet | 
findForNavigationPageByQuery(String queryStmt,
                            GlueParameter<P> param,
                            int pageSize,
                            int curPage)
Page Set 기능을 지원하는 메소드이다. 
 | 
GluePageSet | 
findForNavigationPageByQuery(String queryStmt,
                            int pageSize,
                            int curPage)
Page Set 기능을 지원하는 메소드이다. 
 | 
int | 
getBatchUpdateLimit()  | 
GlueColumnManager | 
getColumnManager()
getter method. 
 | 
String | 
getDatabaseProductName()
getter method. 
 | 
Connection | 
getDBConnection()
Connection을 Return 하는 Method 이다. 
 | 
GlueQueryManager | 
getQueryManager()
Query Manager를 얻는다. 
 | 
GlueSequence | 
getSequence()
데이터베이스 Sequence 값을 핸들링하는 GlueSequence를 획득한다. 
 | 
protected GlueDaoException | 
handleDataAccessException(DataAccessException dae)
JDBC Layer에서 발생하는 DataAccessException을 GlueDaoException으로 변환 시켜준다. 
 | 
int | 
insert(String queryKey)
쿼리 키에 해당하는 Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 Database Record를 생성한다. 
 | 
<P> int | 
insert(String queryKey,
      GlueParameter<P> param)
쿼리 키에 해당하는 SQL 쿼리문장을 실행하여 Database Record를 생성한다. 
 | 
int | 
insertByQueryStatement(String queryStmt)
SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 Database Record를 생성한다. 
 | 
<P> int | 
insertByQueryStatement(String queryStmt,
                      GlueParameter<P> param)
SQL 쿼리문장을 실행하여 Database Record를 생성한다. 
 | 
void | 
releaseDBConnection(Connection con)
getDBConnection()을 통해 획득한 Connection을 반납하는 메소드. 
 | 
void | 
setBatchUpdateLimit(int batchUpdateLimit)
setter method for DI. 
 | 
void | 
setColumnManager(GlueColumnManager columnManager)
setter method for DI. 
 | 
void | 
setFetchSize(int fetchSize)
setter method for DI. 
 | 
void | 
setLobHandler(LobHandler lobHandler)  | 
void | 
setQueryManager(GlueQueryManager queryManager)
setter method for DI. 
 | 
void | 
setSequence(GlueSequence sequence)  | 
void | 
setTypeCast(boolean typeCast)
setter method for DI. 
 | 
int | 
update(String queryKey)
쿼리 키에 해당하는 Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 조건에 해당하는 Database Record를 수정한다. 
 | 
<P> int | 
update(String queryKey,
      GlueParameter<P> param)
쿼리 키에 해당하는 SQL 쿼리문장을 실행하여 조건에 해당하는 Database Record를 수정한다. 
 | 
int | 
updateByQueryStatement(String queryStmt)
Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 조건에 해당하는 Database Record를 수정한다. 
 | 
<P> int | 
updateByQueryStatement(String queryStmt,
                      GlueParameter<P> param)
SQL 쿼리문장을 실행하여 조건에 해당하는 Database Record를 수정한다. 
 | 
getNamedParameterJdbcTemplate, initTemplateConfigcheckDaoConfig, getConnection, getDataSource, getExceptionTranslator, getJdbcTemplate, releaseConnection, setDataSource, setJdbcTemplateafterPropertiesSet, initDaoprotected GlueQueryManager queryManager
protected GlueSequence sequence
protected LobHandler lobHandler
protected JdbcTemplate createJdbcTemplate(DataSource dataSource)
createJdbcTemplate in class JdbcDaoSupportpublic GlueQueryManager getQueryManager()
GlueGenericJdbcDaogetQueryManager in interface GlueGenericJdbcDaopublic void setQueryManager(GlueQueryManager queryManager)
queryManager - Query Managerpublic void setColumnManager(GlueColumnManager columnManager)
columnManager - public GlueColumnManager getColumnManager()
public void setTypeCast(boolean typeCast)
typeCast - public GlueSequence getSequence()
GlueGenericJdbcDaogetSequence in interface GlueGenericJdbcDaopublic void setSequence(GlueSequence sequence)
public void setLobHandler(LobHandler lobHandler)
public int getBatchUpdateLimit()
public void setBatchUpdateLimit(int batchUpdateLimit)
batchUpdateLimit - public void setFetchSize(int fetchSize)
fetchSize - public String getDatabaseProductName()
public Connection getDBConnection()
public void releaseDBConnection(Connection con)
con - getDBConnection()을 통해 획득한 Connectionpublic <T> List<T> find(String queryKey)
GlueGenericDaofind in interface GlueGenericDaoqueryKey - 쿼리 키public <T,P> List<T> find(String queryKey, GlueParameter<P> param)
GlueGenericDaofind in interface GlueGenericDaoqueryKey - 쿼리 키param - 파라메터public <T,P> List<T> find(String queryKey, String whereClause, GlueParameter<P> param)
GlueGenericJdbcDaofind in interface GlueGenericJdbcDaoqueryKey - 쿼리 키whereClause - where 절param - 파라메터public <T> List<T> findByQueryStatement(String queryStmt)
GlueGenericJdbcDaoList rowset = dao.findByQueryStatement( "select * from emp" );
findByQueryStatement in interface GlueGenericJdbcDaoqueryStmt - SQL 쿼리문장public <T,P> List<T> findByQueryStatement(String queryStmt, GlueParameter<P> param)
GlueGenericJdbcDaoList args = new ArrayList(); args.add("9999"); GlueParameter param = new GlueParameter
(args); List rowset = dao.findByQueryStatement("select * from emp where empno=?", param);
findByQueryStatement in interface GlueGenericJdbcDaoqueryStmt - SQL 쿼리문장param - 파라메터public GluePageSet findForNavigationPage(String queryKey, int pageSize, int curPage)
GlueGenericJdbcDaofindForNavigationPage in interface GlueGenericJdbcDaoqueryKey - 쿼리 키pageSize - 한 화면에 Display 될 로우 개수curPage - 현재 페이지 번호public <P> GluePageSet findForNavigationPage(String queryKey, GlueParameter<P> param, int pageSize, int curPage)
GlueGenericJdbcDaofindForNavigationPage in interface GlueGenericJdbcDaoqueryKey - 쿼리 키param - 바인딩 파라메터pageSize - 한 화면에 Display 될 로우 개수curPage - 현재 페이지 번호public GluePageSet findForNavigationPageByQuery(String queryStmt, int pageSize, int curPage)
GlueGenericJdbcDaoGluePageSet rowset = dao.findForNavigationPageByQuery( "select * from emp", 15, 5 );
findForNavigationPageByQuery in interface GlueGenericJdbcDaoqueryStmt - SQL 쿼리문장pageSize - 한 화면에 Display 될 로우 개수curPage - 현재 페이지 번호public <P> GluePageSet findForNavigationPageByQuery(String queryStmt, GlueParameter<P> param, int pageSize, int curPage)
GlueGenericJdbcDaoList args = new ArrayList(); args.add("10"); GlueParameter param = new GlueParameter
(args); GluePageSet rowset = dao.findForNavigationPageByQuery("select * from emp where deptno=?", param, 15, 5);
findForNavigationPageByQuery in interface GlueGenericJdbcDaoqueryStmt - SQL 쿼리문장param - 바인딩 파라메터pageSize - 한 화면에 Display 될 로우 개수curPage - 현재 페이지 번호public int update(String queryKey)
GlueGenericDaoupdate in interface GlueGenericDaoqueryKey - 쿼리 키public <P> int update(String queryKey, GlueParameter<P> param)
GlueGenericDaoupdate in interface GlueGenericDaoqueryKey - 쿼리 키param - 파라메터public int updateByQueryStatement(String queryStmt)
GlueGenericJdbcDaoint dmlCnt = dao.updateByQueryStatement( "update emp set ename='guest' where empno=9999" );
updateByQueryStatement in interface GlueGenericJdbcDaoqueryStmt - SQL 쿼리문장public <P> int updateByQueryStatement(String queryStmt, GlueParameter<P> param)
GlueGenericJdbcDaoList args = new ArrayList(); args.add("guest"); args.add("9999"); GlueParameter param = new GlueParameter
(args); int dmlCnt = dao.updateByQueryStatement("update emp set ename=? where empno=?", param);
updateByQueryStatement in interface GlueGenericJdbcDaoqueryStmt - SQL 쿼리문장param - 파라메터public int insert(String queryKey)
GlueGenericDaoinsert in interface GlueGenericDaoqueryKey - 쿼리 키public <P> int insert(String queryKey, GlueParameter<P> param)
GlueGenericDaoinsert in interface GlueGenericDaoqueryKey - 쿼리 키param - 파라메터public int insertByQueryStatement(String queryStmt)
GlueGenericJdbcDaoint dmlCnt = dao.insertByQueryStatement( "insert into emp(EMPNO, ENAME) values(9999,'guest')" );
insertByQueryStatement in interface GlueGenericJdbcDaoqueryStmt - SQL 쿼리문장public <P> int insertByQueryStatement(String queryStmt, GlueParameter<P> param)
GlueGenericJdbcDaoList args = new ArrayList(); args.add("9999"); args.add("guest"); GlueParameter param = new GlueParameter
(args); int dmlCnt = dao.insertByQueryStatement("insert into emp(EMPNO, ENAME) values(?,?)", param);
insertByQueryStatement in interface GlueGenericJdbcDaoqueryStmt - SQL 쿼리문장param - 파라메터public int delete(String queryKey)
GlueGenericDaodelete in interface GlueGenericDaoqueryKey - 쿼리 키public <P> int delete(String queryKey, GlueParameter<P> param)
GlueGenericDaodelete in interface GlueGenericDaoqueryKey - 쿼리 키param - 파라메터public int deleteByQueryStatement(String queryStmt)
GlueGenericJdbcDaoint dmlCnt = dao.deleteByQueryStatement( "delete from emp" );
deleteByQueryStatement in interface GlueGenericJdbcDaoqueryStmt - SQL 쿼리문장public <P> int deleteByQueryStatement(String queryStmt, GlueParameter<P> param)
GlueGenericJdbcDaoList args = new ArrayList(); args.add("10"); GlueParameter param = new GlueParameter
(args); int dmlCnt = dao.deleteByQueryStatement("delete from emp where deptno=?", param);
deleteByQueryStatement in interface GlueGenericJdbcDaoqueryStmt - SQL 쿼리문장param - 파라메터protected <T,P> List<T> findByQueryDefinitionInternal(GlueQueryDefinition def, GlueParameter<P> param)
def - param - protected GlueDaoException handleDataAccessException(DataAccessException dae)
dae - DataAccessExceptionpublic <P> int[] batchUpdate(String queryKey, GlueParameter<P>[] params)
GlueGenericJdbcDao쿼리 종류가 서로 다르다면 각각 batchUpdate 메소드를 호출하면 된다. 리턴되는 결과 값은 sql을 실행한 결과 로우 개수이다.final int count = 10; // batch update를 위한 GlueParameter 객체 배열 생성 GlueParameter [] params = new GlueParameter
[count]; for (int i=0; i
(args); } int[] results = dao.batchUpdate("query-key", params); 
batchUpdate in interface GlueGenericJdbcDaoqueryKey - 쿼리 키params - GlueParameter Arraypublic <P> int[] batchUpdateByQueryStatement(String queryStmt, GlueParameter<P>[] params)
GlueGenericJdbcDaofinal int count = 10; // batch update를 위한 GlueParameter 객체 배열 생성 GlueParameter [] params = new GlueParameter
[count]; for (int i=0; i
(args); } int[] results = dao.batchUpdateByQueryStatement("update set
=? where =?", params); 쿼리 종류가 서로 다르다면 각각 batchUpdate 메소드를 호출하면 된다. 리턴되는 결과 값은 sql을 실행한 결과 Row 개수이다. 
- Specified by:
 batchUpdateByQueryStatementin interfaceGlueGenericJdbcDao- Parameters:
 queryStmt- SQL 쿼리문장params- GlueParameter Array- Returns:
 - 각각의 Statement가 수행된 후 업데이트 된 Row 개수 배열
 
batchUpdate
public int[] batchUpdate(String queryKey, GlueParameter<List<?>>[] params, int[] types)Description copied from interface:GlueGenericJdbcDaoJDBC 2.0 Specification에 정의된 Batch Update를 실행한다. JDBC 드라이버가 batch update를 지원하지 않으면 일반 Update가 실행된다. 사용 방법은 아래 참조.쿼리 종류가 서로 다르다면 각각 batchUpdate 메소드를 호출하면 된다. 리턴되는 결과 값은 sql을 실행한 결과 Row 개수이다.int size = 10; // batch update를 위한 GlueParameter 객체 배열 생성 GlueParameter >[] params = new GlueParameter[size]; for (int i=0; i
32765 인경우임. params[i] = new GlueParameter >(args); } int types[] = {Types.VARCHAR, Types.TIMESTAMP, Types.BLOB, Types.BLOB, Types.BLOB, Types.CLOB} int[] results = dao.batchUpdate("query-key", params, types);
- Specified by:
 batchUpdatein interfaceGlueGenericJdbcDao- Parameters:
 queryKey- 쿼리 키params- GlueParameter<List> Arraytypes- java.sql.Types 의 배열, data이 java.util.Date 형이면 Types.TIMESTAMP 으로하고, data가 java.io.File, byte[], java.io.InputStream 형이면 Types.BLOB으로 하고, data가 32765보다 큰 String이면 Types.CLOB으로 하고, 그외는 Types.VARCHAR로 한다.- Returns:
 - 각각의 Statement가 수행된 후 업데이트 된 Row 개수 배열
 
batchUpdate
public int[] batchUpdate(String queryKey, GlueParameter<Map<?,?>>[] params, Map<String,Integer> types)Description copied from interface:GlueGenericJdbcDaoJDBC 2.0 Specification에 정의된 Batch Update를 실행한다. JDBC 드라이버가 batch update를 지원하지 않으면 일반 Update가 실행된다. 사용 방법은 아래 참조.쿼리 종류가 서로 다르다면 각각 batchUpdate 메소드를 호출하면 된다. 리턴되는 결과 값은 sql을 실행한 결과 Row 개수이다.int size = 10; // batch update를 위한 GlueParameter 객체 배열 생성 GlueParameter 
- Specified by:
 batchUpdatein interfaceGlueGenericJdbcDao- Parameters:
 queryKey- 쿼리 키params- GlueParameter<Map> Arraytypes- java.sql.Types 의 Map, data이 java.util.Date 형이면 Types.TIMESTAMP 으로하고, data가 java.io.File, byte[], java.io.InputStream 형이면 Types.BLOB으로 하고, data가 32765보다 큰 String이면 Types.CLOB으로 하고, 그외는 Types.VARCHAR로 한다.- Returns:
 - 각각의 Statement가 수행된 후 업데이트 된 Row 개수 배열
 
batchUpdateByQueryStatement
public int[] batchUpdateByQueryStatement(String queryStmt, GlueParameter<List<?>>[] params, int[] types)Description copied from interface:GlueGenericJdbcDaoJDBC 2.0 Specification에 정의된 Batch Update를 실행한다. JDBC 드라이버가 batch update를 지원하지 않으면 일반 Update가 실행된다. 사용 방법은 아래 참조.int size = 10; // batch update를 위한 GlueParameter 객체 배열 생성 GlueParameter >[] params = new GlueParameter[size]; for (int i=0; i
32765 인경우임. params[i] = new GlueParameter >(args); } int types[] = {Types.VARCHAR, Types.TIMESTAMP, Types.BLOB, Types.BLOB, Types.BLOB, Types.CLOB} int[] results = dao.batchUpdateByQueryStatement("insert into
values (?, ?, ?, ?, ?, ?)", params, types);
쿼리 종류가 서로 다르다면 각각 batchUpdate 메소드를 호출하면 된다. 리턴되는 결과 값은 sql을 실행한 결과 Row 개수이다.
- Specified by:
 batchUpdateByQueryStatementin interfaceGlueGenericJdbcDao- Parameters:
 queryStmt- SQL 쿼리문장params- GlueParameter<List> Arraytypes- java.sql.Types 의 배열, data이 java.util.Date 형이면 Types.TIMESTAMP 으로하고, data가 java.io.File, byte[], java.io.InputStream 형이면 Types.BLOB으로 하고, data가 32765보다 큰 String이면 Types.CLOB으로 하고, 그외는 Types.VARCHAR로 한다.- Returns:
 - 각각의 Statement가 수행된 후 업데이트 된 Row 개수 배열
 
batchUpdateByQueryStatement
public int[] batchUpdateByQueryStatement(String queryStmt, GlueParameter<Map<?,?>>[] params, Map<String,Integer> types)Description copied from interface:GlueGenericJdbcDaoJDBC 2.0 Specification에 정의된 Batch Update를 실행한다. JDBC 드라이버가 batch update를 지원하지 않으면 일반 Update가 실행된다. 사용 방법은 아래 참조.int size = 10; // batch update를 위한 GlueParameter 객체 배열 생성 GlueParameter >[] params = new GlueParameter[size]; for (int i=0; i 32765 인경우임. params[i] = new GlueParameter >(args); } Map types = new HashMap(); types.put("name0", Types.VARCHAR); types.put("name1", Types.TIMESTAMP); types.put("name2", Types.BLOB); types.put("name3", Types.BLOB); types.put("name4", Types.BLOB); types.put("name5", Types.CLOB); int[] results = dao.batchUpdateByQueryStatement("insert into values (:name0, :name1, :name2, :name3, :name4, :name5)", params, types); 쿼리 종류가 서로 다르다면 각각 batchUpdate 메소드를 호출하면 된다. 리턴되는 결과 값은 sql을 실행한 결과 Row 개수이다.
- Specified by:
 batchUpdateByQueryStatementin interfaceGlueGenericJdbcDao- Parameters:
 queryStmt- SQL 쿼리문장params- GlueParameter<Map> Arraytypes- java.sql.Types 의 Map, data이 java.util.Date 형이면 Types.TIMESTAMP 으로하고, data가 java.io.File, byte[], java.io.InputStream 형이면 Types.BLOB으로 하고, data가 32765보다 큰 String이면 Types.CLOB으로 하고, 그외는 Types.VARCHAR로 한다.- Returns:
 - 각각의 Statement가 수행된 후 업데이트 된 Row 개수 배열
 Copyright © 2013–2021 POSCO ICT. All rights reserved.