|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface DBManager2
Jdbc 추상화 Layer 의 interface 클래스로써 sql을 xml파일로 관리하고, 해당되는 sql파일을
sqlFilename.xml
의 sqlID 에 해당하는 sql을 실행하는 DB 처리를 담당한다.
아래의 코드는 실제 사용예제이다.
DBManager2 dbmanager = new DBManager2Oracle();
//dbmanager.setRowCallbackHandler(RowCallbackHandler.rchDefault);//디폴트는 RchHashMap 임. 기타 다른 RowCallbackHandler 사용시 설정함.
Attribute params = new Attribute();
try{
String className = "oracle.jdbc.OracleDriver";
String url = "jdbc:oracle:thin:@192.168.1.1:1521:ORCL";
String username = "username";
String password = "password";
try {
Class.forName(className);
}catch(ClassNotFoundException e) {
e.printStackTrace();
}
//dbmanager.getConnection("maags"); //jndiDataSource 사용시
dbmanager.getConnection(className, url, username, password);//직접호출시 사용.
dbmanager.setAutoCommit(false);
int affectedRows = dbmanager.executeUpdateByQueryGroup("sqlFilename", "insert", params);
System.out.println(affectedRows+"건 Insert되었습니다.");
affectedRows = dbmanager.executeUpdateByQueryGroup("sqlFilename", "update", params);
System.out.println(affectedRows+"건 Update되었습니다.");
affectedRows = dbmanager.executeUpdateByQueryGroup("sqlFilename", "delete", params);
System.out.println(affectedRows+"건 Delete되었습니다.");
List list = dbmanager.executeQueryForListByQueryGroup("sqlFilename", "sqlID", params);
for ( int i=0; i< list.size(); i++) {
System.out.println(((Map)(list.get(i))).get("b_seq"));
}
PagingList pagingList = dbmanager.executeQueryForPagingListByQueryGroup("sqlFilename","sqlID", params, 1, 10);
List list2 = pagingList.getList();
int totalCount = pagingList.getTotalCount();
dbmanager.commit();
}catch(SQLException e) {
dbmanager.rollback();
e.printStackTrace();//에러처리.
}finally {
dbmanager.close();
}
PagingList
Method Summary | |
---|---|
void |
close(Attribute params)
Connection close시 sql Type이 uid 으로 지정된 sqlid에 대한 결과값을 params 변수에 할당하고, close 처리함. |
int |
executeBatchUpdateByQueryGroup(java.lang.String sqlFilename,
java.lang.String sqlID,
java.util.List attributeList)
Batch성 데이타 처리시 사용하며, sqlID에 해당하는 queryGroup이 group형태가 아닌경우 batch처리가 가능함. |
int |
executeQueryForIntByQueryGroup(java.lang.String sqlFilename,
java.lang.String sqlId,
Attribute params)
Jdbc 추상화 Layer 에서 호출되는 sqlFilename, sqlID 에 해당하는 sql를 실행후 int 를 리턴. |
java.util.List |
executeQueryForListByQueryGroup(gnu.caf.db.querymanager.QueryGroup querygroup,
Attribute params)
QueryGroup객체를 직접적으로 핸들링할 경우만 사용함. |
java.util.List |
executeQueryForListByQueryGroup(java.lang.String sqlFilename,
java.lang.String sqlId,
Attribute params)
Jdbc 추상화 레이어 에서 호출되는 sqlFilename, sqlID 에 해당하는 sql를 실행후 List 를 리턴. |
java.util.List |
executeQueryForListByQueryGroup(java.lang.String sqlFilename,
java.lang.String sqlId,
Attribute params,
int firstResult,
int maxResults)
Jdbc 추상화 레이어 에서 호출되는 sqlFilename, sqlID 에 해당하는 sql를 실행후 List 를 리턴. |
java.util.Map |
executeQueryForMapByQueryGroup(java.lang.String sqlFilename,
java.lang.String sqlId,
Attribute params)
Jdbc 추상화 레이어 에서 호출되는 sqlFilename, sqlID 에 해당하는 sql를 실행후 Map 를 리턴. |
PagingList |
executeQueryForPagingListByQueryGroup(gnu.caf.db.querymanager.QueryGroup querygroup,
Attribute params,
int pageNo,
int pageSize)
QueryGroup객체를 직접적으로 핸들링할 경우만 사용함. |
PagingList |
executeQueryForPagingListByQueryGroup(gnu.caf.db.querymanager.QueryGroup querygroup,
Attribute params,
int pageNo,
int pageSize,
int totalCount)
QueryGroup객체를 직접적으로 핸들링할 경우만 사용함. |
PagingList |
executeQueryForPagingListByQueryGroup(java.lang.String sqlFilename,
java.lang.String sqlId,
Attribute params,
int pageNo,
int pageSize)
Jdbc 추상화 레이어 에서 호출되는 sqlFilename, sqlID 에 해당하는 sql를 pageNo, pageSize 만큼의 PagingList 를 리턴함. |
PagingList |
executeQueryForPagingListByQueryGroup(java.lang.String sqlFilename,
java.lang.String sqlId,
Attribute params,
int pageNo,
int pageSize,
int totalCount)
Jdbc 추상화 레이어 에서 호출되는 sqlFilename, sqlID 에 해당하는 sql를 pageNo, pageSize 만큼의 PagingList 를 리턴함. |
java.util.List |
executeQueryForRandomListByQueryGroup(java.lang.String sqlFilename,
java.lang.String sqlId,
Attribute params)
Jdbc 추상화 레이어 에서 호출되는 sqlFilename, sqlID 에 해당하는 sql를 실행후 List 를 리턴. |
java.util.List |
executeQueryForRandomListByQueryGroup(java.lang.String sqlFilename,
java.lang.String sqlId,
Attribute params,
int randomResults)
Jdbc 추상화 레이어 에서 호출되는 sqlFilename, sqlID 에 해당하는 sql를 실행후 List 를 리턴. |
java.util.List |
executeQueryForRandomListByQueryGroup(java.lang.String sqlFilename,
java.lang.String sqlId,
Attribute params,
int randomResults,
int totalCount)
Jdbc 추상화 레이어 에서 호출되는 sqlFilename, sqlID 에 해당하는 sql를 실행후 List 를 리턴. |
int |
executeQueryForTotalCountByQueryGroup(gnu.caf.db.querymanager.QueryGroup queryGroup,
Attribute params)
QueryGroup객체를 직접적으로 핸들링할 경우만 사용함. |
int |
executeQueryForTotalCountByQueryGroup(java.lang.String sqlFilename,
java.lang.String sqlId,
Attribute params)
sqlID에 해당하는 sql 을 count_sql로 변환 ( select count(*) from ( sql ) ) 후 COUNT에 해당하는 값을 리턴함. |
int |
executeUpdateByQueryGroup(gnu.caf.db.querymanager.QueryGroup querygroup,
Attribute params)
QueryGroup객체를 직접적으로 핸들링할 경우만 사용함. |
int |
executeUpdateByQueryGroup(java.lang.String sqlFilename,
java.lang.String sqlId,
Attribute params)
Jdbc 추상화 레이어 에서 호출되는 sqlFilename, sqlID 에 해당하는 sql를 실행후 int 를 리턴. |
int |
executeUpdateByQueryGroupDelete(java.lang.String sqlFilename,
java.lang.String sqlId,
Attribute params)
Deprecated. |
int |
executeUpdateByQueryGroupInsert(java.lang.String sqlFilename,
java.lang.String sqlId,
Attribute params)
Deprecated. |
int |
executeUpdateByQueryGroupUpdate(java.lang.String sqlFilename,
java.lang.String sqlId,
Attribute params)
Deprecated. |
Attribute |
getGlobalParams()
DBManager 수행시 내부적으로 sql type="uid" 인 경우에는 DBManager 내부 글로벌 변수에 저장하게 되는 데, 이 글로벌 Parameter를 가져옴. |
java.lang.String |
getResourceSqlPath()
클래스패스상의 sql.xml 파일을 로드하는 경우설정. |
int |
saveByQueryGroup(java.lang.String sqlFilename,
java.lang.String viewSqlId,
java.lang.String insertSqlId,
java.lang.String updateSqlId,
Attribute params)
viewSqlID 의 실행결과가 데이타가 있는 경우(rs.next() 가 존재하면) , updateSqlID 에 해당하는 쿼리가 실행, 없으면, insertSqlID가 실행됨. |
void |
setDebug(boolean b)
로그출력옵션으로 기본적으로 log4j를 사용하나, 별도로 setDebug(true)로 설정된 경우 로그를 출력한다. |
void |
setPagingTypeRsNext(boolean t)
페이지징 처리시 rs.next() 방식으로 페이징처리를 할 시 사용함. |
void |
setResourceSqlPath(java.lang.String resourceSqlPath)
클래스패스상의 sql.xml 파일을 로드하는 경우설정함. |
void |
setSqlIdTracable(boolean sqlIdTracable)
실행되는 executeUpdate에 대하여 sqlid를 출력하고자 할 때 사용함. |
Method Detail |
---|
java.lang.String getResourceSqlPath()
void setResourceSqlPath(java.lang.String resourceSqlPath)
int executeQueryForIntByQueryGroup(java.lang.String sqlFilename, java.lang.String sqlId, Attribute params) throws java.sql.SQLException
sqlFilename
- sqlId
- params
- Attribute 디비처리시 사용되는 변수
java.sql.SQLException
java.util.Map executeQueryForMapByQueryGroup(java.lang.String sqlFilename, java.lang.String sqlId, Attribute params) throws java.sql.SQLException
sqlFilename
- sqlId
- params
- Attribute 디비처리시 사용되는 변수
java.sql.SQLException
java.util.List executeQueryForListByQueryGroup(java.lang.String sqlFilename, java.lang.String sqlId, Attribute params) throws java.sql.SQLException
sqlFilename.xml
에 설정된 <sql id="sqlId" firstResult="" maxResults="">
이런식으로 설정된 경우, firstReuslt, maxResults 에 해당하는 값으로 실행됨.
sqlFilename
- sqlId
- params
- Attribute 디비처리시 사용되는 변수
java.sql.SQLException
java.util.List executeQueryForListByQueryGroup(java.lang.String sqlFilename, java.lang.String sqlId, Attribute params, int firstResult, int maxResults) throws java.sql.SQLException
Jdbc 추상화 레이어 에서 호출되는 sqlFilename, sqlID 에 해당하는 sql를 실행후 List 를 리턴.
sqlFilename.xml에서 <select> 태그에 해당하는 sqlID를 호출함.
리스트 처리시 firstResult 에 해당하는 데이타부터 maxResults 갯수만큼 데이타를 리스트객체로 리턴함.
기본적으로 아래의 코드가 실행이 되며,
sqlFilename.xml
에 설정된 <sql id="sqlId" firstResult="" maxResults="">
이런식으로 설정된 경우, firstReuslt, maxResults 에 해당하는 값으로 실행됨.
executeQueryForListByQueryGroup(sqlFilename, sqlId, params, 0, -1 )
위의 코드는 sql실행후 실행한 결과 전체를 가져오는 것임. 내부적으로 firstResult 수만큼 rs.next() 처리를 함. maxResults 가 -1 인 경우 전체를 가져옴.
호출시 <sql> 에 설정된 값이 있더라도 firstResult, maxResuls를 지정한 만큼 실행됨.
sqlFilename
- sqlId
- params
- Attribute 디비처리시 사용되는 변수firstResult
- rs.next() 실행횟수.maxResults
- 데이타를 가져올 갯수.
java.sql.SQLException
PagingList executeQueryForPagingListByQueryGroup(java.lang.String sqlFilename, java.lang.String sqlId, Attribute params, int pageNo, int pageSize) throws java.sql.SQLException
Jdbc 추상화 레이어 에서 호출되는 sqlFilename, sqlID 에 해당하는 sql를 pageNo, pageSize 만큼의 PagingList 를 리턴함. sqlFilename.xml에서 <select> 태그에 해당하는 sqlID를 호출함. 내부적으로 디비기준의 페이징처리기법을 사용함. 오라클의 경우, pageNo 가 1 , pageSize 10 인 경우에 rownum > 0 and rownum <= 10 조건이 추가된 sql를 실행하여 PagingList 를 리턴함.
sqlFilename
- sqlId
- params
- Attribute 디비처리시 사용되는 변수pageNo
- 페이지번호pageSize
- 페이지사이즈
java.sql.SQLException
PagingList executeQueryForPagingListByQueryGroup(java.lang.String sqlFilename, java.lang.String sqlId, Attribute params, int pageNo, int pageSize, int totalCount) throws java.sql.SQLException
Jdbc 추상화 레이어 에서 호출되는 sqlFilename, sqlID 에 해당하는 sql를 pageNo, pageSize 만큼의 PagingList 를 리턴함. sqlFilename.xml에서 <select> 태그에 해당하는 sqlID를 호출함. 내부적으로 디비기준의 페이징처리기법을 사용함. 오라클의 경우, pageNo 가 1 , pageSize 10 인 경우에 rownum > 0 and rownum <= 10 조건이 추가된 sql를 실행하여 PagingList 를 리턴함.
sqlFilename
- sqlId
- params
- Attribute 디비처리시 사용되는 변수pageNo
- 페이지번호pageSize
- 페이지사이totalCount
- 전체데이타수 ( executeQueryForPagingListByQueryGroup(String sqlFilename, String sqlId, Attribute params, int pageNo, int pageSize) 의
경우에 totalCount 계산을 위해 내부적으로 sql을 두번실행되지만, 전체데이타수를 지정하는 경우 totalCount 계산을 위한 sql 실행을 하지 않음)
java.sql.SQLException
PagingList executeQueryForPagingListByQueryGroup(gnu.caf.db.querymanager.QueryGroup querygroup, Attribute params, int pageNo, int pageSize, int totalCount) throws java.sql.SQLException
querygroup
- params
- pageNo
- pageSize
- totalCount
-
java.sql.SQLException
int executeUpdateByQueryGroupInsert(java.lang.String sqlFilename, java.lang.String sqlId, Attribute params) throws java.sql.SQLException
sqlFilename
- sqlId
- params
- Attribute 디비처리시 사용되는 변수
java.sql.SQLException
int executeUpdateByQueryGroupUpdate(java.lang.String sqlFilename, java.lang.String sqlId, Attribute params) throws java.sql.SQLException
sqlFilename
- sqlId
- params
- Attribute 디비처리시 사용되는 변수
java.sql.SQLException
int executeUpdateByQueryGroupDelete(java.lang.String sqlFilename, java.lang.String sqlId, Attribute params) throws java.sql.SQLException
sqlFilename
- sqlId
- params
- Attribute 디비처리시 사용되는 변수
java.sql.SQLException
int executeUpdateByQueryGroup(java.lang.String sqlFilename, java.lang.String sqlId, Attribute params) throws java.sql.SQLException
sqlFilename
- sqlId
- params
- Attribute 디비처리시 사용되는 변수
java.sql.SQLException
int executeUpdateByQueryGroup(gnu.caf.db.querymanager.QueryGroup querygroup, Attribute params) throws java.sql.SQLException
querygroup
- params
-
java.sql.SQLException
int executeBatchUpdateByQueryGroup(java.lang.String sqlFilename, java.lang.String sqlID, java.util.List attributeList) throws java.sql.SQLException
sqlFilename
- sqlID
- attributeList
- - List<Attribute>
java.sql.SQLException
int saveByQueryGroup(java.lang.String sqlFilename, java.lang.String viewSqlId, java.lang.String insertSqlId, java.lang.String updateSqlId, Attribute params) throws java.sql.SQLException
sqlFilename
- viewSqlId
- insertSqlId
- updateSqlId
- params
-
java.sql.SQLException
Attribute getGlobalParams()
java.util.List executeQueryForRandomListByQueryGroup(java.lang.String sqlFilename, java.lang.String sqlId, Attribute params) throws java.sql.SQLException
sqlFilename.xml
에서 <select> 태그에 해당하는 sqlID를 호출함.
<sql id="sqlID" randomResult="10"> 이런식으로 설정되어있는 경우. 해당 randomResults 갯수만큼
List객체를 리턴함.
랜덤으로 실행시 랜덤갯수가 충족되지 못한경우 예를 들어,
executeQueryForListByQueryGroup(sqlFilename, sqlId, params, 0, maxResults )
가 실행이 된다.
sqlFilename
- sqlId
- params
- Attribute 디비처리시 사용되는 변수
java.sql.SQLException
java.util.List executeQueryForRandomListByQueryGroup(java.lang.String sqlFilename, java.lang.String sqlId, Attribute params, int randomResults) throws java.sql.SQLException
sqlFilename.xml
에서 <select> 태그에 해당하는 sqlID를 호출함.
랜덤으로 실행시 랜덤갯수가 충족되지 못한경우 예를 들어,
executeQueryForListByQueryGroup(sqlFilename, sqlId, params, 0, maxResults )
가 실행이 된다.
sqlFilename
- sqlId
- params
- Attribute 디비처리시 사용되는 변수randomResults
- 임의추출데이타수.
java.sql.SQLException
java.util.List executeQueryForRandomListByQueryGroup(java.lang.String sqlFilename, java.lang.String sqlId, Attribute params, int randomResults, int totalCount) throws java.sql.SQLException
sqlFilename.xml
에서 <select> 태그에 해당하는 sqlID를 호출함.
executeQueryForRandomListByQueryGroup(String sqlFilename, String sqlId, Attribute params, int randomResults)
실행시 ,
랜덤수 추출하기 위하여 totalCount-sql 를 실행하게 되는데, totalCount를 지정시 totalCount-sql 를 수행하지 않는다.
sqlFilename
- sqlId
- params
- Attribute 디비처리시 사용되는 변수
java.sql.SQLException
java.util.List executeQueryForListByQueryGroup(gnu.caf.db.querymanager.QueryGroup querygroup, Attribute params) throws java.sql.SQLException
querygroup
- params
-
java.sql.SQLException
PagingList executeQueryForPagingListByQueryGroup(gnu.caf.db.querymanager.QueryGroup querygroup, Attribute params, int pageNo, int pageSize) throws java.sql.SQLException
querygroup
- params
- pageNo
- pageSize
-
java.sql.SQLException
void setPagingTypeRsNext(boolean t)
t
- void close(Attribute params)
params
- void setDebug(boolean b)
b
- int executeQueryForTotalCountByQueryGroup(java.lang.String sqlFilename, java.lang.String sqlId, Attribute params) throws java.sql.SQLException
select count(*) from ( sql )
) 후 COUNT에 해당하는 값을 리턴함.
sqlFilename
- sqlId
- params
-
java.sql.SQLException
int executeQueryForTotalCountByQueryGroup(gnu.caf.db.querymanager.QueryGroup queryGroup, Attribute params) throws java.sql.SQLException
queryGroup
- params
-
java.sql.SQLException
void setSqlIdTracable(boolean sqlIdTracable)
sqlIdTracable
-
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES All Classes | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |