전체 글
-
iBATIS SQLMaps 활용법Java/JSP/Servlet 2008. 9. 4. 10:43
[지디넷코리아]iBATIS SQLMaps(이하 아이바티스)는 이미 국내외 많은 개발자들이 사용하고 있는 퍼시스턴스 계층의 프레임워크이다. 실제로 국내에서 가장 크다는 포털 사이트인 네이버와 다음도 아이바티스를 사용하고 있으며, 다른 업체들도 아이바티스를 그대로 사용하거나 약간 변형시킨 형태로 사용하고 있는 것으로 알고 있다. 특집 3부에서는 아이바티스의 특징과 활용법에 대해 알아본다. 과거 ORM의 대표인 하이버네이트와 데이터 매퍼인 아이바티스 간에 어느 프레임워크가 더 좋은가에 대한 논쟁도 있었을 만큼 많은 자바 개발자들은 데이터베이스에 관련된 ORM 프레임워크에 대한 관심이 크다. 이런 논쟁 가운데 아이바티스는 ORM이 아니기 때문에 논쟁의 대상이 될 수 없다는 의견도 있었다. 사용 목적이라는 관점에..
-
iBatis - 동적쿼리Java/JSP/Servlet 2008. 9. 4. 10:37
실무에서 SQL문을 작성하다 보면 동적인 쿼리문 작성을 작성해야 할 때가 많이 있다. 이때 지겹게 if~else if 문을 통해 아주 지저분한 소스 코드를 생성할 때가 왕왕 있게 마련이다. 이때 ibatis에서는 아주 깔금하게 구현할 수 있는 방법을 제공해 준다. select * from account (acc_first_name = #firstName# acc_last_name = #lastName# ) acc_email like #emailAddress# acc_id = #id# order by acc_last_name 상황에 의존적인 위 동적 statement로 부터 각각 다른 16가지의 SQL문이 생성될 수 있다. if-else구조와 문자열 연결을 코딩하는 경우 수백라인이 필요할 수도 있다. 동적..
-
iBatis 개요 및 환경설정Java/JSP/Servlet 2008. 9. 4. 10:10
1. iBatis란? iBatis는 데이터베이스에 있는 자원들을 보다 편리하게 가져오기 위한 기술이다. 하지만 DB에 있는 테이블과 자바 객체간의 직접적인 동기화를 이루는 ORM(Object Relational Mapper)는 아니며, 자바빈즈를 PreparedStatement의 바인드 변수인 파라미터(?)와 ResultSet으로 맵핑시켜주는 기능으로 지금에 와서는 SQL Maps 또한 ORM이라고도 한다. 즉, iBatis는 sql문이 자동 생성되는 것이 아니며, 특정 XML문서에 임베디드된 sql문을 개발자가 직접 정의 하여 자바 코드와 sql문을 XML문서로 분리를 시켜 놓는다. 그리고 자바 객체를 sql문의 XML문서에서 맴핑을 걸어 놓아 보다 쉽게 Value Object를 얻기위해 사용되는 SQ..
-
iBATIS 란?Java/JSP/Servlet 2008. 9. 4. 09:54
iBATIS의 개념 iBATIS는 간단한 XML서술자를 사용해서 간단하게 자바빈즈를 SQL statement에 맵핑시킨다. 간단함(Simplicity)이란 다른 프레임워크와 객체관계맵핑툴에 비해 iBATIS의 가장 큰 장점이다. iBATIS Data Mapper를 사용하기 위해서 당신은 자바빈즈와 XML 그리고 SQL에 친숙할 필요가 있다. 여기엔 배워야 할것도 거의 없고 테이블을 조인하거나 복잡한 쿼리문을 수행하기 위해 필요한 복잡한 스키마도 없다. Data Mapper를 사용하면 당신은 실제 SQL문의 모든 기능을 가질수 있다. JDBC 로만 프로그래밍 할 때의 번거로움을 줄여주기 위해 재사용 모듈로 개발된 것인데 그 주요한 어려움을 ibatis 개발자 가이드에서 다음과 같이 정리하고 있다. iBAT..
-
스프링 프레임워크 개요Java/JSP/Servlet 2008. 9. 4. 09:35
스프링 프레임워크 개요 스프링은 그 이름 자체로도 많은 의미를 내포하고 있다. 봄! 이 얼마나 설레는 단어인가? 봄이라는 이름만으로도 무거운 J2EE의 사용으로 지친 개발자들에게 이제 겨울이 끝나고 새로운 계절이 돌아오고 있음을 함축적으로 표현해내고 있다. 스프링은 로드 존슨이 쓴 「Expert one-on-one J2EE Design and Development」란 책에서 소개된 소스코드를 기반으로 2003년 2월 오픈소스로 시작된 프로젝트이다. 스프링이 추구하는 바는 크게 두 가지이다. [1] 복잡하고 무거운 J2EE 기술의 사용을 쉽고 가볍게 만들어주고, 자연스럽게 검증된 최상의 실천 사례들을 구현하도록 함으로써 좋은 프로그램이 작성될 수 있도록 유도한다. [2] 기존의 잘 알려진 기술들을 프레임워..
-
알약, V3 추월하나IT 일반 2008. 9. 3. 15:54
(서울=연합뉴스) 조성흠 기자 = 이스트소프트의 무료백신 알약이 이달 중 기존 대표 백신인 V3를 추월할 기세다. 3일 인터넷 시장조사업체 코리안클릭에 따르면 알약은 8월 기준 1천275만명의 이용자를 확보, 1천355만명을 기록한 안철수연구소의 백신 V3와의 격차를 80만명까지 줄였다. 7월에는 알약이 1천186만명, V3가 1천380만명으로 격차가 194만명이었으나 1개월 만에 격차폭이 110만명 이상 좁혀졌다. 이는 알약 이용자가 1개월 만에 89만명이 증가하고, V3는 같은 기간 25만명이 줄어든 결과다. 업계에서는 이들 백신의 엇갈린 추세를 감안할 때 이달 안에 역전이 가능할 것으로 점쳤다. 알약은 지난해 10월 첫 선을 보인 뒤 10개월 연속 이용자가 증가하는 등 상승세가 멈추지 않고 있다. ..
-
ROWNUM을 이용한 페이지네이션데이터 과학/Database 2008. 9. 3. 15:16
ROWNUM을 이용한 페이지네이션 - 결과 셋의 로우 N 에서 로우 M까지를 가져오기 위해 ROWNUM을 사용 - 일반적인 형식 SELECT * FROM ( SELECT a.*, ROWNUM rnum FROM ( your_query_goes_here, with order by ) a WHERE ROWNUM = :MIN_ROW_TO_FETCH; → :MAX_ROW_TO_FETCH는 결과 셋에서 가져올 마지막 로우로 설정, 결과 셋에서 50 번째 ~ 60 번째 로우만을 가져오려 한다면 이 값은 60이 된다. → :MIN_ROW_TO_FETCH는 결과 셋에서 가져올 첫 번째 로우로 설정, 결과 셋에서 50 번째 ~ 60 번째 로우만을 가져오려 한다면 이 값은 50이 된다. - 사용 예 SELECT num, n..
-
ROWNUM의 동작 원리와 활용 방법데이터 과학/Database 2008. 9. 3. 15:01
ROWNUM의 동작 원리 - ROWNUM은 쿼리 내에서 사용 가능한 (실제 컬럼이 아닌) 가상 컬럼(pseudo column) - ROWNUM에는 숫자 1, 2, 3, 4, ... N의 값이 할당, 여기서 N 은 ROWNUM과 함께 사용하는 로우의 수를 의미 - ROWNUM 값은 쿼리의 조건절이 처리되고 난 이후, sort, aggregation(GROUP BY)이 수행되기 이전에 할당 - ROWNUM 값은 할당된 이후에만 증가(increment)될수 있다. - 처리 순서 1. FROM/WHERE 절이 먼저 처리 2. ROWNUM이 할당되고 FROM/WHERE 절에서 전달되는 각각의 출력 로우에 대해 증가(increment) 3. SELECT가 적용 4. GROUP BY 조건이 적용 5. HAVING이 ..