|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.springframework.dao.support.DaoSupport
org.springframework.jdbc.core.support.JdbcDaoSupport
org.springframework.jdbc.core.namedparam.NamedParameterJdbcDaoSupport
com.poscoict.glueframework.dao.jdbc.GlueJdbcDao
public class GlueJdbcDao

데이타베이스 CRUD(Create, Read, Update, Delete) 오퍼레이션을 추상화하여 제공하는 Data Access Object 오브젝트.
기본적으로 config path에 위치한 xxx-query.glue_sql 파일에 등록된 Query 문장을 사용하지만, "ByQueryStatement" 로 끝나는 메소드는 명시적으로 Query문장을 파라메터로 넘겨주어야 한다. 내부적으로
Spring Framework의 JdbcTemplate 클래스를 이용하여 DAO 의 오퍼레이션을 구현하였다.
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
| Field Summary | |
|---|---|
protected LobHandler |
lobHandler
Lob handler for processing lob type |
protected GlueQueryManager |
queryManager
Query Manager |
protected GlueSequence |
sequence
|
| Fields inherited from interface com.poscoict.glueframework.dao.jdbc.GlueGenericJdbcDao |
|---|
DEFAULT_BATCH_UPDATE_SIZE, DELETE, INSERT, SELECT, UPDATE |
| Constructor Summary | |
|---|---|
GlueJdbcDao()
생성자(constructor). |
|
| Method Summary | ||
|---|---|---|
|
batchUpdate(String queryKey,
GlueParameter<P>[] params)
JDBC 2.0 Specification에 정의된 Batch Update를 실행한다. |
|
|
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를 삭제한다. |
|
|
delete(String queryKey,
GlueParameter<P> param)
쿼리 키에 해당하는 SQL 쿼리문장을 실행하여 Database Record를 삭제한다. |
|
int |
deleteByQueryStatement(String queryStmt)
SQL 쿼리문장을 실행하여 Database Record를 삭제한다. |
|
|
deleteByQueryStatement(String queryStmt,
GlueParameter<P> param)
SQL 쿼리문장을 실행하여 Database Record를 삭제한다. |
|
|
find(String queryKey)
쿼리 키에 해당하는 Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 조건에 해당하는 Database Record를 검색한다. |
|
|
find(String queryKey,
GlueParameter<P> param)
쿼리 키에 해당하는 SQL 쿼리문장을 실행하여 조건에 해당하는 Database Record를 검색한다. |
|
|
find(String queryKey,
String whereClause,
GlueParameter<P> param)
쿼리 키에 해당하는 SQL 쿼리문장에 where 절을 적용하여 조건에 해당하는 Database Record를 검색한다. |
|
|
findByQueryStatement(String queryStmt)
Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 조건에 해당하는 Database Record를 검색한다. |
|
|
findByQueryStatement(String queryStmt,
GlueParameter<P> param)
SQL 쿼리문장을 실행하여 조건에 해당하는 Database Record를 검색한다. |
|
|
findForNavigationPage(String queryKey,
GlueParameter<P> param,
int pageSize,
int curPage)
Page Set 기능을 지원하는 메소드이다. |
|
GluePageSet |
findForNavigationPage(String queryKey,
int pageSize,
int curPage)
Page Set 기능을 지원하는 메소드이다. |
|
|
findForNavigationPageByQuery(String queryStmt,
GlueParameter<P> param,
int pageSize,
int curPage)
Page Set 기능을 지원하는 메소드이다. |
|
GluePageSet |
findForNavigationPageByQuery(String queryStmt,
int pageSize,
int curPage)
Page Set 기능을 지원하는 메소드이다. |
|
int |
getBatchUpdateLimit()
|
|
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를 생성한다. |
|
|
insert(String queryKey,
GlueParameter<P> param)
쿼리 키에 해당하는 SQL 쿼리문장을 실행하여 Database Record를 생성한다. |
|
int |
insertByQueryStatement(String queryStmt)
SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 Database Record를 생성한다. |
|
|
insertByQueryStatement(String queryStmt,
GlueParameter<P> param)
SQL 쿼리문장을 실행하여 Database Record를 생성한다. |
|
void |
releaseDBConnection(Connection con)
|
|
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를 수정한다. |
|
|
update(String queryKey,
GlueParameter<P> param)
쿼리 키에 해당하는 SQL 쿼리문장을 실행하여 조건에 해당하는 Database Record를 수정한다. |
|
int |
updateByQueryStatement(String queryStmt)
Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 조건에 해당하는 Database Record를 수정한다. |
|
|
updateByQueryStatement(String queryStmt,
GlueParameter<P> param)
SQL 쿼리문장을 실행하여 조건에 해당하는 Database Record를 수정한다. |
|
| Methods inherited from class org.springframework.jdbc.core.namedparam.NamedParameterJdbcDaoSupport |
|---|
getNamedParameterJdbcTemplate, initTemplateConfig |
| Methods inherited from class org.springframework.jdbc.core.support.JdbcDaoSupport |
|---|
checkDaoConfig, getConnection, getDataSource, getExceptionTranslator, getJdbcTemplate, releaseConnection, setDataSource, setJdbcTemplate |
| Methods inherited from class org.springframework.dao.support.DaoSupport |
|---|
afterPropertiesSet, initDao |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected GlueQueryManager queryManager
protected GlueSequence sequence
protected LobHandler lobHandler
| Constructor Detail |
|---|
public GlueJdbcDao()
| Method Detail |
|---|
protected JdbcTemplate createJdbcTemplate(DataSource dataSource)
createJdbcTemplate in class JdbcDaoSupportpublic GlueQueryManager getQueryManager()
GlueGenericJdbcDao
getQueryManager in interface GlueGenericJdbcDaopublic void setQueryManager(GlueQueryManager queryManager)
queryManager - Query Managerpublic void setColumnManager(GlueColumnManager columnManager)
columnManager - public void setTypeCast(boolean typeCast)
typeCast - public GlueSequence getSequence()
GlueGenericJdbcDao
getSequence 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)
public <T> List<T> find(String queryKey)
GlueGenericDao
find in interface GlueGenericDaoqueryKey - 쿼리 키
public <T,P> List<T> find(String queryKey,
GlueParameter<P> param)
GlueGenericDao
find in interface GlueGenericDaoqueryKey - 쿼리 키param - 파라메터
public <T,P> List<T> find(String queryKey,
String whereClause,
GlueParameter<P> param)
GlueGenericJdbcDao
find 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)
GlueGenericJdbcDao
findForNavigationPage in interface GlueGenericJdbcDaoqueryKey - 쿼리 키pageSize - 한 화면에 Display 될 로우 개수curPage - 현재 페이지 번호
public <P> GluePageSet findForNavigationPage(String queryKey,
GlueParameter<P> param,
int pageSize,
int curPage)
GlueGenericJdbcDao
findForNavigationPage 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)
GlueGenericDao
update in interface GlueGenericDaoqueryKey - 쿼리 키
public <P> int update(String queryKey,
GlueParameter<P> param)
GlueGenericDao
update 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)
GlueGenericDao
insert in interface GlueGenericDaoqueryKey - 쿼리 키
public <P> int insert(String queryKey,
GlueParameter<P> param)
GlueGenericDao
insert 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)
GlueGenericDao
delete in interface GlueGenericDaoqueryKey - 쿼리 키
public <P> int delete(String queryKey,
GlueParameter<P> param)
GlueGenericDao
delete 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 GlueDaoException handleDataAccessException(DataAccessException dae)
dae - DataAccessException
public <P> int[] batchUpdate(String queryKey,
GlueParameter<P>[] params)
GlueGenericJdbcDaofinal 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 메소드를 호출하면 된다. 리턴되는 결과 값은 sql을 실행한 결과 로우 개수이다.
batchUpdate in interface GlueGenericJdbcDaoqueryKey - 쿼리 키params - GlueParameter Array
public <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 개수 배열
Overview Package Class Use Tree Deprecated Index Help PREV CLASS NEXT CLASS FRAMES NO FRAMES SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD
Copyright © 2013–2016 POSCO ICT. All rights reserved.