2014년 12월 15일 월요일

Spring, Mybatis 에서 다중 DB 연결하기

Spring, Mybatis 를 가지고 포탈 프로젝트를 하는 중에 Cognos 레파지토리 DB를 봐야할 일이 생겨서 기존에 연결되있는 Oracle DB 에다가 추가적으로 MSSQL 을 연결해보는데 의외로 금방 해결 ㅋ

application-context.xml 만 건드리면 끝!


일단 기존에 추가되어 있던 오라클 연결 부분이다.

Datasource, TransactionManager, sqlSessionFactory, sqlSesstion이 차례대로 지정되어 있다.


다음으로 추가한 부분이다.

MS SQL 추가에 맞게 그대로 값을 넣어주면 된다.

*) 주의할 점은 TransactionManager에 sqlSessionFactory의 datasource를 바로위에서 새로 추가해준 datasource 명을 넣어줘야 하고 sqlSession에서 sqlSessionFactory 명을 추가해준 이름으로 알맞게 바꿔주어야 한다. 
(복붙하다가 실수하면 망)


그리고 DB 연결이 1개 있을 때는 control단과 dao 단에서 autowired 하면 자동으로 그 데이터 소스로 연결이 되었지만 2개 이상일 때는 이름으로 지정해줘야 한다.
@Resource 어노테이션을 사용해서 다음과 같이 지정해주면 된다.




지정 안해주면 톰캣 올릴 때 오류남

SQL Server에서 재귀호출 및 정렬하기 (펌)

하나의 테이블에 부모와 자식 값이 있다. 이것을 조인을 사용하여 부모와 자식 값을 연결 해준다. 그리고 결과값은 아래와 같이 나와야 한다.

--------------------------------------
PIDX          |    LORDER         |  TITLE
---------------------------------------
    null                  1                     T1
      1                    1                     T1-1
      1                    2                     T1-2
      1                    3                     T1-3
    null                  2                     T2
      2                    1                     T2-1
      2                    2                     T2-2
그럼 PIDX와 LORDER을 기준으로 정렬을 하고 가상의 컬럼을 하나 추가해 PIDX와 같은 겂으로 넣어주고 NULL일때만 LORDER 값을 넣어 주면 된다.


CREATE TABLE TEST1 (
[IDX] [int] IDENTITY (1, 1) NOT NULL primary key clustered,
[PIDX] [INT]NULL ,                ------ 부모 IDX
[LORDER] [TINYINT] NOT NULL ,   ----------- 동일 부모의 자식들간의 출력순서
[TITLE] [varchar] (50) NOT NULL
)
go

INSERT INTO TEST1 values(null, 1, 'T1')
INSERT INTO TEST1 values(null, 2, 'T2')
INSERT INTO TEST1 values(1, 1, 'T1-1')
INSERT INTO TEST1 values(1, 2, 'T1-2')
INSERT INTO TEST1 values(1, 3, 'T1-3')
INSERT INTO TEST1 values(2, 1, 'T2-1')
INSERT INTO TEST1 values(2, 2, 'T2-2')
go

방법

select distinct a.pidx , a.lorder, a.title, order_IDX = case a.pidx when null then a.lorder else a.pidx end
from test a
left outer join test b on b.pidx = a.lorder
order by order_idx , lorder asc


출처 : http://ddongdog.tistory.com/35

Cognos URL 호출에서 네임스페이스 , 사용자 ID, 비밀번호 파라미터로 주기 (자동 로그인)

코그너스 세션 로그인 후에 세션을 가지고 있는 상태에서 cognos 페이지를 url 호출하면다시 로그인 하라는 창이 떠서 짜증났는데 파라미터로 바로 네임스페이스와 사용자 ID, 비밀번호를 부여해주는 URL을 찾음!!

&startwel=yes
&h_CAM_action=logonAs
&CAMNamespace=네임스페이스
&CAMUsername=사용자ID
&CAMPassword=비밀번호

코그너스 호출 URL에 위에 처럼 추가해주면 됨!

예)

http://서버 주소
?b_action=xts.run
&m=portal/launch.xts
&startwel=yes
&h_CAM_action=logonAs
&CAMNamespace=★
&CAMUsername=
&CAMPassword=
&ui.tool=
&ui.object=
&ui.action=
&ui=

서버 주소 : 코그너스 서비스 환경설정에서 써준 게이트웨이 URI
★ : 각 파라미터에 맞는 값

보기좋에 엔터질을 했지만 엔터 안하고 쭉 이어서 붙이면 됨



출처 : http://businessintelligence.ittoolbox.com/groups/technical-functional/cognos8-l/how-to-log-into-cognos-using-url-parameters-3968490

보고서를 볼 때 IBM Cognos Viewer에서 URL 명령을 사용하여 사용자 인터페이스 요소 숨기기

URL 명령을 사용하여 세션에 대한 사용자 인터페이스 요소를 숨길 수 있습니다. 

URL 끝에 다음을 입력합니다.

IBM Cognos Viewer 도구 모음을 해제하려면 다음을 입력합니다. 

cv.toolbar=false 

IBM Cognos Viewer 머리글을 해제하려면 다음을 입력합니다. 

cv.header=false 

숨겨진 UI는 사용자 요청의 나머지 기간 동안 숨겨진 채로 유지됩니다.

출처 : http://dw.seoultech.ac.kr:8080/ibmcognos/documentation/ko/ug_cra_t_asg_hide_ui_element_cognos_viewer.html

2014년 12월 7일 일요일

mybatis 에서 ${컬럼} 과 #{컬럼}의 차이

${컬럼명} : 양쪽에 작은 따옴표 생략
#{컬럼명} : 양쪽에 작은 따옴표 붙여줌


${컬럼명} 일때는 작은 따옴표가 생략되기 때문에 붙여줘야 한다.


#{컬럼명} 일때는 작은 따옴표가 자동으로 붙기 때문에 작은 따옴표를 안써도 된다.

슈퍼맨이 돌아왔다 55화 서언 서준이 깨알 움짤 gif














출처 : 나

2014년 12월 4일 목요일

서언이 서준이 슈퍼맨이 돌아왔다 55화 예고 움짤 gif


이서준 웃음ㅠㅠㅠㅠㅠㅠ


서언이 뭔가에 완전 집중ㅋ


로션 바르자마자 우다다다다다다뛰어가는 서준이


서준이 이거이거이거이거 ㅠ_ㅠ졸귀룽


끝나지 않는 서언이 까꿍ㅋㅋ


슈퍼맨이 돌아왔다 55화 예고 둥이움짤 ㅎㅎ
출처 : 나