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, initTemplateConfig
checkDaoConfig, getConnection, getDataSource, getExceptionTranslator, getJdbcTemplate, releaseConnection, setDataSource, setJdbcTemplate
afterPropertiesSet, initDao
protected GlueQueryManager queryManager
protected GlueSequence sequence
protected LobHandler lobHandler
protected JdbcTemplate createJdbcTemplate(DataSource dataSource)
createJdbcTemplate
in class JdbcDaoSupport
public GlueQueryManager getQueryManager()
GlueGenericJdbcDao
getQueryManager
in interface GlueGenericJdbcDao
public void setQueryManager(GlueQueryManager queryManager)
queryManager
- Query Managerpublic void setColumnManager(GlueColumnManager columnManager)
columnManager
- public GlueColumnManager getColumnManager()
public void setTypeCast(boolean typeCast)
typeCast
- public GlueSequence getSequence()
GlueGenericJdbcDao
getSequence
in interface GlueGenericJdbcDao
public 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)
GlueGenericDao
find
in interface GlueGenericDao
queryKey
- 쿼리 키public <T,P> List<T> find(String queryKey, GlueParameter<P> param)
GlueGenericDao
find
in interface GlueGenericDao
queryKey
- 쿼리 키param
- 파라메터public <T,P> List<T> find(String queryKey, String whereClause, GlueParameter<P> param)
GlueGenericJdbcDao
find
in interface GlueGenericJdbcDao
queryKey
- 쿼리 키whereClause
- where 절param
- 파라메터public <T> List<T> findByQueryStatement(String queryStmt)
GlueGenericJdbcDao
List rowset = dao.findByQueryStatement( "select * from emp" );
findByQueryStatement
in interface GlueGenericJdbcDao
queryStmt
- SQL 쿼리문장public <T,P> List<T> findByQueryStatement(String queryStmt, GlueParameter<P> param)
GlueGenericJdbcDao
List args = new ArrayList(); args.add("9999"); GlueParameter param = new GlueParameter
(args); List rowset = dao.findByQueryStatement("select * from emp where empno=?", param);
findByQueryStatement
in interface GlueGenericJdbcDao
queryStmt
- SQL 쿼리문장param
- 파라메터public GluePageSet findForNavigationPage(String queryKey, int pageSize, int curPage)
GlueGenericJdbcDao
findForNavigationPage
in interface GlueGenericJdbcDao
queryKey
- 쿼리 키pageSize
- 한 화면에 Display 될 로우 개수curPage
- 현재 페이지 번호public <P> GluePageSet findForNavigationPage(String queryKey, GlueParameter<P> param, int pageSize, int curPage)
GlueGenericJdbcDao
findForNavigationPage
in interface GlueGenericJdbcDao
queryKey
- 쿼리 키param
- 바인딩 파라메터pageSize
- 한 화면에 Display 될 로우 개수curPage
- 현재 페이지 번호public GluePageSet findForNavigationPageByQuery(String queryStmt, int pageSize, int curPage)
GlueGenericJdbcDao
GluePageSet rowset = dao.findForNavigationPageByQuery( "select * from emp", 15, 5 );
findForNavigationPageByQuery
in interface GlueGenericJdbcDao
queryStmt
- SQL 쿼리문장pageSize
- 한 화면에 Display 될 로우 개수curPage
- 현재 페이지 번호public <P> GluePageSet findForNavigationPageByQuery(String queryStmt, GlueParameter<P> param, int pageSize, int curPage)
GlueGenericJdbcDao
List 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 GlueGenericJdbcDao
queryStmt
- SQL 쿼리문장param
- 바인딩 파라메터pageSize
- 한 화면에 Display 될 로우 개수curPage
- 현재 페이지 번호public int update(String queryKey)
GlueGenericDao
update
in interface GlueGenericDao
queryKey
- 쿼리 키public <P> int update(String queryKey, GlueParameter<P> param)
GlueGenericDao
update
in interface GlueGenericDao
queryKey
- 쿼리 키param
- 파라메터public int updateByQueryStatement(String queryStmt)
GlueGenericJdbcDao
int dmlCnt = dao.updateByQueryStatement( "update emp set ename='guest' where empno=9999" );
updateByQueryStatement
in interface GlueGenericJdbcDao
queryStmt
- SQL 쿼리문장public <P> int updateByQueryStatement(String queryStmt, GlueParameter<P> param)
GlueGenericJdbcDao
List 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 GlueGenericJdbcDao
queryStmt
- SQL 쿼리문장param
- 파라메터public int insert(String queryKey)
GlueGenericDao
insert
in interface GlueGenericDao
queryKey
- 쿼리 키public <P> int insert(String queryKey, GlueParameter<P> param)
GlueGenericDao
insert
in interface GlueGenericDao
queryKey
- 쿼리 키param
- 파라메터public int insertByQueryStatement(String queryStmt)
GlueGenericJdbcDao
int dmlCnt = dao.insertByQueryStatement( "insert into emp(EMPNO, ENAME) values(9999,'guest')" );
insertByQueryStatement
in interface GlueGenericJdbcDao
queryStmt
- SQL 쿼리문장public <P> int insertByQueryStatement(String queryStmt, GlueParameter<P> param)
GlueGenericJdbcDao
List 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 GlueGenericJdbcDao
queryStmt
- SQL 쿼리문장param
- 파라메터public int delete(String queryKey)
GlueGenericDao
delete
in interface GlueGenericDao
queryKey
- 쿼리 키public <P> int delete(String queryKey, GlueParameter<P> param)
GlueGenericDao
delete
in interface GlueGenericDao
queryKey
- 쿼리 키param
- 파라메터public int deleteByQueryStatement(String queryStmt)
GlueGenericJdbcDao
int dmlCnt = dao.deleteByQueryStatement( "delete from emp" );
deleteByQueryStatement
in interface GlueGenericJdbcDao
queryStmt
- SQL 쿼리문장public <P> int deleteByQueryStatement(String queryStmt, GlueParameter<P> param)
GlueGenericJdbcDao
List args = new ArrayList(); args.add("10"); GlueParameter param = new GlueParameter
(args); int dmlCnt = dao.deleteByQueryStatement("delete from emp where deptno=?", param);
deleteByQueryStatement
in interface GlueGenericJdbcDao
queryStmt
- 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 GlueGenericJdbcDao
queryKey
- 쿼리 키params
- GlueParameter Arraypublic <P> int[] batchUpdateByQueryStatement(String queryStmt, GlueParameter<P>[] params)
GlueGenericJdbcDao
final 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:
batchUpdateByQueryStatement
in 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:GlueGenericJdbcDao
JDBC 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:
batchUpdate
in 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:GlueGenericJdbcDao
JDBC 2.0 Specification에 정의된 Batch Update를 실행한다. JDBC 드라이버가 batch update를 지원하지 않으면 일반 Update가 실행된다. 사용 방법은 아래 참조.쿼리 종류가 서로 다르다면 각각 batchUpdate 메소드를 호출하면 된다. 리턴되는 결과 값은 sql을 실행한 결과 Row 개수이다.int size = 10; // batch update를 위한 GlueParameter 객체 배열 생성 GlueParameter
- Specified by:
batchUpdate
in 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:GlueGenericJdbcDao
JDBC 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:
batchUpdateByQueryStatement
in 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:GlueGenericJdbcDao
JDBC 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:
batchUpdateByQueryStatement
in 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.