본문 바로가기

Programming

ClassMap을 이용한 복합(Complex) Properties ClassMap을 이용한 복합(Complex) Properties이것은 선호하는 데이터와 클래스를 로드하는 방법을 알고있는 맵핑된 statement와 함께 관련된 resultMap프라퍼티에 의해 복합타입의 프라퍼티(사용자에 의해 생성된 클래스)를 자동적으로 생성하는 것은 가능하다. 데이터베이스내 데이터는 언제나 복합프라퍼티는 관계의 “many side”로부터이고 프라퍼티 자신은 관계의 “one side”로 부터이다라는 것을 고정하는 클래스에서 1:1관계 또는 1:M관계를 통해 표현된다. select * from PRODUCT where PRD_ID = #value# select * from CATEGORY where CAT_ID = #value# 위 예제에서 Product의 인스턴스는 Category타입.. 더보기
iBatis - selectKey (자동생성키) 자동 생성 키많은 관계형 데이터베이스 시스템은 기본키(primay key)필드의 자동생성을 지원한다. SQL Map은 요소의 를 통해 자동생성키를 지원선생성키(pre-generated - 오라클의 sequence) 와 후생성키(post-generated - MS-SQL의 @@identity)를 지원 선생성키의 예 (Oracle)SELECT STOCKIDSEQUENCE.NEXTVAL AS ID FROM DUALinsert into PRODUCT (PRD_ID,PRD_DESCRIPTION)values (#id#,#description#) 간혹 Sequence를 이용하지 않고 아래와 같이 Max+1로 사용하기도 하는데 이는 사용하기에 적합하지 않다.(SELECT NVL(MAX(PRD_ID), 0) + 1 FR.. 더보기
Spring - 뷰 리졸버(View resolver) 뷰 리졸빙(View resolving)사용자에게 결과를 랜더링하여 보여주기 위하여 사용 뷰 리졸버 구현체 뷰 리졸버 설명 BeannameViewResolver 논리적 뷰 이름과 동일한 ID를 갖는 으로 등록된 View의 구현체를 찾는다. ContentNegotiatingViewResolver 요청되는 콘텐츠 형식에 기반을 두어 선택한 하나 이상의 다른 뷰 리졸버에 위임한다. FreeMarkerViewResolver FreeMarker 기반의 템플릿을 찾는다. 경로는 논리적 뷰 이름에 접두어와 접미어를 붙여 구성 InternalResourceViewResolver 웹 어플리케이션의 WAR 파일 내에 포함된 뷰 템플릿을 찾는다. 뷰 템플릿의 경로는 논리적 뷰 이름에 접두어와 접미어를 붙여 구성 JasperR.. 더보기
Spring - Transaction2 (선언적 트랜잭션 처리) 선언적 트랜잭션Transaction Template와 달리 트랜잭션 처리를 코드에서 직접적으로 수행하지 않음설정 파일이나 어노테이션을 이용하여 트랜잭션의 법위, 롤백 규칙 등을 정의 선언적 트랜잭션 정의 방식1. 태그를 이용하여 트랜잭션 처리2. @Transaction 어노테이션을 이용한 트랜잭션 설정3. TransactionProxyFactoryBean 태그를 이용한 트랜잭션 처리 (2.0 이전 빈마다 프록시를 만들어서 사용하였으나 현재는 많이 사용되지 않는다.) 트랜잭션 특성선언적 트랜잭션은 트랜잭션 특성으로 정의된다.트랜잭션 특성이란? 특정 메소드에 어떻게 적용되어야 하는지에 대한 정책을 기술한 것전파방식, 격리수준, 읽기전용힌트, 타임아웃, 롤백규칙으로 정의된다. 태그를 이용한 트랜잭션 처리 태그.. 더보기
Spring - Transaction1 (스프링의 트랜잭션 지원) 트랜잭션 (Transaction)트랜잭션은 현대의 웹 보안에 있어서 매우 중요한 역활을 차지하며 DB와 JAVA언어가 데이터를 주고 받는 과정에 원자성을 부여하는 수단을 일컫는다. 간단하게 설명하자면 !!어떤 작업 프로세스를 하나로 묶어 실행 중 하나의 작업이라도 실패하면 모두 실패 처리를 해주고, 전체 작업이 성공하면 성공 처리를 해주는 것이다. 스프링 프레임워크의 트랜잭션 - Java Transaction API(JTA), JDBC, Hivernate, Java Persistence API(JPA), Java Data Objects(JDO)같은 여러 가지 트랜잭션 API간에 일관성있는 프로그래밍 모델 - 선언적인 트랜잭션 관리 지원 - 프로그래밍적인 트랜잭션 관리에 대해 JTA같은 복잡한 트랜잭션 A.. 더보기
div 숨기기 / 보이기 (jQeury 버전) JQuery : $("#id").hide(); , $("#id").show();- hide 숨김, show 보임, hide, show 안에 인자를 slow, normal, fast 중 하나로 보임숨김의 속도를 조절 할 수 있다.- 아니면 수치로 1000분의 1초로 할 수 있음. show(950) 일반적인 div보이기/숨기기 - http://isstory83.tistory.com/68 더보기
jQuery checkbox 컨트롤 checkbox checked 여부 : - id로 체크하는 경우$('input:checkbox[id="checkbox_id"]').is(":checked") == true - name으로 체크하는 경우$('input:checkbox[name="checkbox_name"]').is(":checked") == true - $('input[id="checkbox_id"]') + 옵션 형태로 작성 가능 $('input[name="checkbox_name"]').is(":checked") checkbox 갯수 확인 : - 전체 갯수 $('input:checkbox[id="checkbox_name"]').length - 선택된 갯수$('input:checkbox[id="checkbox_name"]:checked').. 더보기
iBatis - Iterate Iterate - collection을 반복하거나 리스트내 각각을 위해 몸체부분을 반복 Iterate Attributesprepend – the statement에 붙을 오버라이딩 가능한 SQL부분 (옵션)property – 반복되기 위한 java.util.List타입의 프라퍼티 (필수?)open – 반복의 전체를 열기 위한 문자열, 괄호를 위해 유용하다. (옵션)close – 반복의 전체를 닫기 위한 문자열, 괄호를 위해 유용하다. (옵션)conjunction – 각각의 반복 사이에 적용되기 위한 문자열, AND 그리고 OR을 위해 유용하다. (옵션) java.util.List 타입의 프라퍼티 반복사용법 예제:username=#userNameList[]# 위와 같이 사용되었을 경우 아래와 같은 쿼리로 .. 더보기
Character Functions (문자형 함수) 문자형 함수란? - CHAR, VARCHAR2 타입을 인수로 받아 VARCHAR2 타입의 값을 반환하는 함수 CONCAT(char1, char2)- 두 문자를 결합하는 역할( || 연산자와 같은 역할을 한다.)SELECT CONCAT('www', 'test') || 'com' name FROM DUAL; => CONCAT함수를 이용하여 앞의 두 문자를 결합하고, || 연산자를 이용하여 뒤의 문자도 결합하여 주었다. 동일한 결과를 반환한다. INITCAP(char), LOWER(char), UPPER(char)INITCAP - 주어진 문자열의 첫 번째 문자를 대문자로 변환하여 준다.LOWER - 주어진 문자열을 소문자로 변환하여 준다.UPPER - 주어진 문자열을 대문자로 변환하여 준다. SELECT IN.. 더보기
DECODE 함수 (ORACLE) DECODE 함수- 오라클에서만 지원하는 함수로서 SELECT 문장 내에서 비교 연산을 수행- 특정 컬럼의 값을 기준으로 마치 IF문을 사용하는 것과 같은 효과를 내는 함수- 구문DECODE({column | expression}, search1, result1 [,search2, result2] ... [,default]) - 예제SELECT DECODE(qnaType, '10', '타입1', '20', '타입2', '기타') as TypeFROM qnaTable => qnaTable에서 qnaType값이 10인 것은 '타입1', 20인 것은 '타입2', 나머지 값은 모두 '기타'로 출력됨을 확인 할 수 있다. SUM함수와 함께 사용- DECODE함수는 SUM함수와 함께 사용하여 합계를 출력하는데 사용.. 더보기