Class GlueJdbcDao
java.lang.Object
org.springframework.dao.support.DaoSupport
org.springframework.jdbc.core.support.JdbcDaoSupport
org.springframework.jdbc.core.namedparam.NamedParameterJdbcDaoSupport
com.poscoict.glueframework.dao.jdbc.GlueJdbcDao
- All Implemented Interfaces:
GlueGenericDao
,GlueGenericJdbcDao
,InitializingBean
- Direct Known Subclasses:
GlueLazyJdbcDao
데이타베이스 CRUD(Create, Read, Update, Delete) 오퍼레이션을 추상화하여 제공하는 Data Access Object 오브젝트.
기본적으로 config path에 위치한 xxx-query.glue_sql 파일에 등록된 Query 문장을 사용하지만, "ByQueryStatement" 로 끝나는 메소드는 명시적으로 Query문장을 파라메터로 넘겨주어야 한다. 내부적으로 Spring Framework의 JdbcTemplate 클래스를 이용하여 DAO 의 오퍼레이션을 구현하였다.
기본적으로 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
<bean id="dao" class="com.poscoict.glueframework.dao.jdbc.GlueJdbcDao">
<property name="dataSource" ref="dataSource"/>
<property name="queryManager" ref="queryManager"/>
</bean>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected LobHandler
Lob handler for processing lob typeprotected GlueQueryManager
Query Managerprotected GlueSequence
Fields inherited from interface com.poscoict.glueframework.dao.jdbc.GlueGenericJdbcDao
DEFAULT_BATCH_UPDATE_SIZE, DELETE, INSERT, SELECT, UPDATE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint[]
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
쿼리 키에 해당하는 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> 쿼리 키에 해당하는 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를 검색한다.findForNavigationPage
(String queryKey, int pageSize, int curPage) Page Set 기능을 지원하는 메소드이다.<P> GluePageSet
findForNavigationPage
(String queryKey, GlueParameter<P> param, int pageSize, int curPage) Page Set 기능을 지원하는 메소드이다.findForNavigationPageByQuery
(String queryStmt, int pageSize, int curPage) Page Set 기능을 지원하는 메소드이다.<P> GluePageSet
findForNavigationPageByQuery
(String queryStmt, GlueParameter<P> param, int pageSize, int curPage) Page Set 기능을 지원하는 메소드이다.int
getter method.getter method.Connection을 Return 하는 Method 이다.Query Manager를 얻는다.데이터베이스 Sequence 값을 핸들링하는 GlueSequence를 획득한다.protected GlueDaoException
JDBC Layer에서 발생하는 DataAccessException을 GlueDaoException으로 변환 시켜준다.int
쿼리 키에 해당하는 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
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
쿼리 키에 해당하는 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를 수정한다.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
-
Field Details
-
queryManager
Query Manager -
sequence
-
lobHandler
Lob handler for processing lob type
-
-
Constructor Details
-
GlueJdbcDao
public GlueJdbcDao()생성자(constructor).
-
-
Method Details
-
createJdbcTemplate
- Overrides:
createJdbcTemplate
in classJdbcDaoSupport
-
getQueryManager
Description copied from interface:GlueGenericJdbcDao
Query Manager를 얻는다.- Specified by:
getQueryManager
in interfaceGlueGenericJdbcDao
- Returns:
- Query Manager
-
setQueryManager
setter method for DI. Query Manager를 설정한다.- Parameters:
queryManager
- Query Manager
-
setColumnManager
setter method for DI.- Parameters:
columnManager
-
-
getColumnManager
getter method.- Returns:
- GlueColumnManager
-
setTypeCast
public void setTypeCast(boolean typeCast) setter method for DI.- Parameters:
typeCast
-
-
getSequence
Description copied from interface:GlueGenericJdbcDao
데이터베이스 Sequence 값을 핸들링하는 GlueSequence를 획득한다.
지원되는 DB - Oracle, IBM DB2, PostgreSQL- Specified by:
getSequence
in interfaceGlueGenericJdbcDao
- Returns:
- GlueSequence 오브젝트
-
setSequence
-
setLobHandler
-
getBatchUpdateLimit
public int getBatchUpdateLimit() -
setBatchUpdateLimit
public void setBatchUpdateLimit(int batchUpdateLimit) setter method for DI.- Parameters:
batchUpdateLimit
-
-
setFetchSize
public void setFetchSize(int fetchSize) setter method for DI.- Parameters:
fetchSize
-
-
getDatabaseProductName
getter method.- Returns:
- Database 제품명
-
getDBConnection
Connection을 Return 하는 Method 이다. Connection을 이용하여 Statement, PreparedStatement,CallableStatement 등을 사용하는 경우 반드시 해당 자원은 Close 하여야 한다. (Connection은 Glue F/W에서 자동으로 Close 하기 때문에 Close 하지 말아야 한다) Connection은 releaseDBConnection() 를 통해 반납하도록 한다.- Returns:
- Connection
-
releaseDBConnection
getDBConnection()을 통해 획득한 Connection을 반납하는 메소드.- Parameters:
con
- getDBConnection()을 통해 획득한 Connection
-
find
Description copied from interface:GlueGenericDao
쿼리 키에 해당하는 Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 조건에 해당하는 Database Record를 검색한다.- Specified by:
find
in interfaceGlueGenericDao
- Parameters:
queryKey
- 쿼리 키- Returns:
- 검색된 레코드를 표현하는 RowSet
-
find
Description copied from interface:GlueGenericDao
쿼리 키에 해당하는 SQL 쿼리문장을 실행하여 조건에 해당하는 Database Record를 검색한다.- Specified by:
find
in interfaceGlueGenericDao
- Parameters:
queryKey
- 쿼리 키param
- 파라메터- Returns:
- 검색된 레코드를 표현하는 RowSet
-
find
Description copied from interface:GlueGenericJdbcDao
쿼리 키에 해당하는 SQL 쿼리문장에 where 절을 적용하여 조건에 해당하는 Database Record를 검색한다.- Specified by:
find
in interfaceGlueGenericJdbcDao
- Parameters:
queryKey
- 쿼리 키whereClause
- where 절param
- 파라메터- Returns:
- 검색된 레코드를 표현하는 RowSet
-
findByQueryStatement
Description copied from interface:GlueGenericJdbcDao
Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 조건에 해당하는 Database Record를 검색한다.List rowset = dao.findByQueryStatement( "select * from emp" );
- Specified by:
findByQueryStatement
in interfaceGlueGenericJdbcDao
- Parameters:
queryStmt
- SQL 쿼리문장- Returns:
- 검색된 레코드를 표현하는 RowSet
-
findByQueryStatement
Description copied from interface:GlueGenericJdbcDao
SQL 쿼리문장을 실행하여 조건에 해당하는 Database Record를 검색한다.List args = new ArrayList(); args.add("9999"); GlueParameter<List> param = new GlueParameter<List>(args); List rowset = dao.findByQueryStatement("select * from emp where empno=?", param);
- Specified by:
findByQueryStatement
in interfaceGlueGenericJdbcDao
- Parameters:
queryStmt
- SQL 쿼리문장param
- 파라메터- Returns:
- 검색된 레코드를 표현하는 List
-
update
Description copied from interface:GlueGenericDao
쿼리 키에 해당하는 Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 조건에 해당하는 Database Record를 수정한다.- Specified by:
update
in interfaceGlueGenericDao
- Parameters:
queryKey
- 쿼리 키- Returns:
- 수정된 레코드 개수
-
update
Description copied from interface:GlueGenericDao
쿼리 키에 해당하는 SQL 쿼리문장을 실행하여 조건에 해당하는 Database Record를 수정한다.- Specified by:
update
in interfaceGlueGenericDao
- Parameters:
queryKey
- 쿼리 키param
- 파라메터- Returns:
- 수정된 레코드 개수
-
updateByQueryStatement
Description copied from interface:GlueGenericJdbcDao
Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 조건에 해당하는 Database Record를 수정한다.int dmlCnt = dao.updateByQueryStatement( "update emp set ename='guest' where empno=9999" );
- Specified by:
updateByQueryStatement
in interfaceGlueGenericJdbcDao
- Parameters:
queryStmt
- SQL 쿼리문장- Returns:
- 수정된 레코드 개수
-
updateByQueryStatement
Description copied from interface:GlueGenericJdbcDao
SQL 쿼리문장을 실행하여 조건에 해당하는 Database Record를 수정한다.List args = new ArrayList(); args.add("guest"); args.add("9999"); GlueParameter<List> param = new GlueParameter<List>(args); int dmlCnt = dao.updateByQueryStatement("update emp set ename=? where empno=?", param);
- Specified by:
updateByQueryStatement
in interfaceGlueGenericJdbcDao
- Parameters:
queryStmt
- SQL 쿼리문장param
- 파라메터- Returns:
- 수정된 레코드 개수
-
insert
Description copied from interface:GlueGenericDao
쿼리 키에 해당하는 Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 Database Record를 생성한다.- Specified by:
insert
in interfaceGlueGenericDao
- Parameters:
queryKey
- 쿼리 키- Returns:
- 생성된 레코드 개수
-
insert
Description copied from interface:GlueGenericDao
쿼리 키에 해당하는 SQL 쿼리문장을 실행하여 Database Record를 생성한다.- Specified by:
insert
in interfaceGlueGenericDao
- Parameters:
queryKey
- 쿼리 키param
- 파라메터- Returns:
- 생성된 레코드 개수
-
insertByQueryStatement
Description copied from interface:GlueGenericJdbcDao
SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 Database Record를 생성한다.int dmlCnt = dao.insertByQueryStatement( "insert into emp(EMPNO, ENAME) values(9999,'guest')" );
- Specified by:
insertByQueryStatement
in interfaceGlueGenericJdbcDao
- Parameters:
queryStmt
- SQL 쿼리문장- Returns:
- 생성된 레코드 개수
-
insertByQueryStatement
Description copied from interface:GlueGenericJdbcDao
SQL 쿼리문장을 실행하여 Database Record를 생성한다.List args = new ArrayList(); args.add("9999"); args.add("guest"); GlueParameter<List> param = new GlueParameter<List>(args); int dmlCnt = dao.insertByQueryStatement("insert into emp(EMPNO, ENAME) values(?,?)", param);
- Specified by:
insertByQueryStatement
in interfaceGlueGenericJdbcDao
- Parameters:
queryStmt
- SQL 쿼리문장param
- 파라메터- Returns:
- 생성된 레코드 개수
-
delete
Description copied from interface:GlueGenericDao
쿼리 키에 해당하는 Static SQL 쿼리(바인딩 변수가 없는 쿼리)를 실행하여 Database Record를 삭제한다.- Specified by:
delete
in interfaceGlueGenericDao
- Parameters:
queryKey
- 쿼리 키- Returns:
- 삭제된 레코드 개수
-
delete
Description copied from interface:GlueGenericDao
쿼리 키에 해당하는 SQL 쿼리문장을 실행하여 Database Record를 삭제한다.- Specified by:
delete
in interfaceGlueGenericDao
- Parameters:
queryKey
- 쿼리 키param
- 파라메터- Returns:
- 삭제된 레코드 개수
-
deleteByQueryStatement
Description copied from interface:GlueGenericJdbcDao
SQL 쿼리문장을 실행하여 Database Record를 삭제한다.int dmlCnt = dao.deleteByQueryStatement( "delete from emp" );
- Specified by:
deleteByQueryStatement
in interfaceGlueGenericJdbcDao
- Parameters:
queryStmt
- SQL 쿼리문장- Returns:
- 삭제된 레코드 개수
-
deleteByQueryStatement
Description copied from interface:GlueGenericJdbcDao
SQL 쿼리문장을 실행하여 Database Record를 삭제한다.List args = new ArrayList(); args.add("10"); GlueParameter<List> param = new GlueParameter<List>(args); int dmlCnt = dao.deleteByQueryStatement("delete from emp where deptno=?", param);
- Specified by:
deleteByQueryStatement
in interfaceGlueGenericJdbcDao
- Parameters:
queryStmt
- SQL 쿼리문장param
- 파라메터- Returns:
- 삭제된 레코드 개수
-
findByQueryDefinitionInternal
protected <T,P> List<T> findByQueryDefinitionInternal(GlueQueryDefinition def, GlueParameter<P> param) - Parameters:
def
-param
-- Returns:
- List of T
-
handleDataAccessException
JDBC Layer에서 발생하는 DataAccessException을 GlueDaoException으로 변환 시켜준다.
- BadSqlGrammarException, DataIntegrityViolationException, UncategorizedSQLException- Parameters:
dae
- DataAccessException- Returns:
- GlueDaoException JDBC Layer에서 Exception 발생 시
-
batchUpdate
Description copied from interface:GlueGenericJdbcDao
JDBC 2.0 Specification에 정의된 Batch Update를 실행한다. JDBC 드라이버가 batch update를 지원하지 않으면 일반 Update가 실행된다. 사용 방법은 아래 참조.
쿼리 종류가 서로 다르다면 각각 batchUpdate 메소드를 호출하면 된다. 리턴되는 결과 값은 sql을 실행한 결과 로우 개수이다.final int count = 10; // batch update를 위한 GlueParameter 객체 배열 생성 GlueParameter<List>[] params = new GlueParameter<List>[count]; for (int i=0; i<params.length; i++) { List args = new ArrayList(); args.add(dao.getSequence().getNextStringValue("SQ_NAME")); args.add("value"); params[i] = new GlueParameter<List>(args); } int[] results = dao.batchUpdate("query-key", params);
- Specified by:
batchUpdate
in interfaceGlueGenericJdbcDao
- Parameters:
queryKey
- 쿼리 키params
- GlueParameter Array- Returns:
- 각각의 Statement가 수행된 후 업데이트 된 Row 개수 배열
-
batchUpdateByQueryStatement
Description copied from interface:GlueGenericJdbcDao
JDBC 2.0 Specification에 정의된 Batch Update를 실행한다. JDBC 드라이버가 batch update를 지원하지 않으면 일반 Update가 실행된다. 사용 방법은 아래 참조.
쿼리 종류가 서로 다르다면 각각 batchUpdate 메소드를 호출하면 된다. 리턴되는 결과 값은 sql을 실행한 결과 Row 개수이다.final int count = 10; // batch update를 위한 GlueParameter 객체 배열 생성 GlueParameter<List>[] params = new GlueParameter<List>[count]; for (int i=0; i<params.length; i++) { List args = new ArrayList(); args.add(dao.getSequence().getNextStringValue("SQ_NAME")); args.add("value"); params[i] = new GlueParameter<List>(args); } int[] results = dao.batchUpdateByQueryStatement("update <table> set <column1>=? where <column2>=?", params);
- Specified by:
batchUpdateByQueryStatement
in interfaceGlueGenericJdbcDao
- Parameters:
queryStmt
- SQL 쿼리문장params
- GlueParameter Array- Returns:
- 각각의 Statement가 수행된 후 업데이트 된 Row 개수 배열
-
batchUpdate
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<List<?>>[] params = new GlueParameter[size]; for (int i=0; i<size; i++) { List args = new ArrayList(); args.add(dao.getSequence().getNextStringValue("SQ_NAME")); args.add(obj1); // java.util.Date args.add(obj2); // java.io.File args.add(obj3); // byte[] args.add(obj4); // java.io.InputStream args.add(obj5); // String, obj5.length() > 32765 인경우임. params[i] = new GlueParameter<List<?>>(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<Map<?,?>>[] params = new GlueParameter[size]; for (int i=0; i<size; i++) { Map args = new HashMap(); args.put("name0", (dao.getSequence().getNextStringValue("SQ_NAME")); args.put("name1", obj1); // java.util.Date args.put("name2", obj2); // java.io.File args.put("name3", obj3); // byte[] args.put("name4", obj4); // java.io.InputStream args.put("name5", obj5); // String, obj5.length() > 32765 인경우임. params[i] = new GlueParameter<Map<?,?>>(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.batchUpdate("query-key", params, types);
- 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가 실행된다. 사용 방법은 아래 참조.
쿼리 종류가 서로 다르다면 각각 batchUpdate 메소드를 호출하면 된다. 리턴되는 결과 값은 sql을 실행한 결과 Row 개수이다.int size = 10; // batch update를 위한 GlueParameter 객체 배열 생성 GlueParameter<List<?>>[] params = new GlueParameter[size]; for (int i=0; i<size; i++) { List args = new ArrayList(); args.add(dao.getSequence().getNextStringValue("SQ_NAME")); args.add(obj1); // java.util.Date args.add(obj2); // java.io.File args.add(obj3); // byte[] args.add(obj4); // java.io.InputStream args.add(obj5); // String, obj5.length() > 32765 인경우임. params[i] = new GlueParameter<List<?>>(args); } int types[] = {Types.VARCHAR, Types.TIMESTAMP, Types.BLOB, Types.BLOB, Types.BLOB, Types.CLOB} int[] results = dao.batchUpdateByQueryStatement("insert into <table> values (?, ?, ?, ?, ?, ?)", params, types);
- 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가 실행된다. 사용 방법은 아래 참조.
쿼리 종류가 서로 다르다면 각각 batchUpdate 메소드를 호출하면 된다. 리턴되는 결과 값은 sql을 실행한 결과 Row 개수이다.int size = 10; // batch update를 위한 GlueParameter 객체 배열 생성 GlueParameter<Map<?,?>>[] params = new GlueParameter[size]; for (int i=0; i<size; i++) { Map args = new HashMap(); args.add("name0", dao.getSequence().getNextStringValue("SQ_NAME")); args.add("name1", obj1); // java.util.Date args.add("name2", obj2); // java.io.File args.add("name3", obj3); // byte[] args.add("name4", obj4); // java.io.InputStream args.add("name5", obj5); // String, obj5.length() > 32765 인경우임. params[i] = new GlueParameter<Map<?,?>>(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 <table> values (:name0, :name1, :name2, :name3, :name4, :name5)", params, types);
- 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 개수 배열
-