http://cafe.naver.com/eitfree.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=224 JSTL에서 forEach와 forTokens을 실제 사용하다 보면 JSTL만으론 해결이 안 될 거 같은 상황이 있는데요. JSTL 책을 읽다 보니 몇몇 상황에서는 JSTL만으로 쓸 수 있도록 한 게 있어 간단히 정리해 올려 봅니다. 목록(Collection) 중에 일부에 대해서만 어떤 처리를 하고 싶을 때가 있습니다. 예를 들면, 앞에 5개까지만 출력한다 라든지 짝수번째만 출력한다든지요. 이럴 경우는 다음 Attribute를 이용하면 됩니다. * begin: 반복에 사용될 것 중 첫번째 항목의 Index. 0부터 시작한다. 정의되지 않으면 0. * end: 반복에..
http://openframework.or.kr/JSPWiki/Wiki.jsp?page=ReuseSQLFragments http://opensource.atlassian.com/confluence/oss/pages/viewpage.action?pageId=707 SqlMaps를 작성할때, 종종 SQL의 일부가 중복되곤한다. 예를 들어, FROM절이나 제약조건등이 그렇다. iBATIS는 이러한 중복되는 SQL문의 일부를 재사용하기 위한 강력한 태그를 제공한다. iBATIS사용시 대개 다음처럼 작성할것이다. SELECT COUNT(*) AS total FROM items WHERE parentid = 6 SELECT id, name FROM items WHERE parentid = 6 여기서는 FROM절 이..
http://cafe.naver.com/sqler.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=830 java Generics 1 - 소개이 글은 http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf 에 대한 손을 좀 본 번역본입니다. 손을 봤다는 게 직역하지 않고, 뺄 거는 빼고 더할 거는 더하고 풀어 쓸 거는 풀어 쓰고 했단 소립니다. 사실 원본이 말이 쓸데없이 많아서 많이 짤라냈습니다. 자바 1.5에서는 자바 언어에 대한 몇가지 확장 기능이 추가되었다. 그 중 하나가 Generics이다. 이 글은 generics를 소개하기 위한 글이다. C++의 템플릿과 같은 다른 언어와 비슷하다. Generics는 타입에 대한 추상성..
출처: http://lazyartist.springnote.com/pages/788330EL(expression language)형식 ${...} EL 표현식은 항상 중괄호로 묶고 제일 앞에 달러($)기호를 붙입니다. 도트(.) 연산자 사용 ${person.name} 표현식에서 도트 연산자 왼쪽은 반드시 맵 또는 빈이여야 함 표현식에서 도트 연산자 오른쪽은 반드시 맵의 키이거나 빈 프로퍼티여야 합 오른쪽에 오는 값은 식별자로서 일반적인 자바 명명 규칙을 따라야 합니다. [] 연산자 사용도트 연산자는 왼쪽에는 맵이나 빈 밖에 올 수 없으며, 오른쪽에 오는 것도 자바 명명 규칙을 따라야 합니다. 그러나 []연산자는 왼쪽에 리스트나 배열도 올 수 있습니다. ${musicList["something"]} []연..
프로토타입은~ 자바스크립트를 좀 쉽고 편하게 쓰기 위한 좋은 공통유틸(?) 정도로 생각하시면 될 것 같아요~ 특히 DOM(Document Object Model:div, input 같은 것들) 객체 접근이랑 AJAX에 매우 유용해요~~ 정식 명칭은 prototypejs 이고, 최신 버전은 1.6 버전이예요. 공식 사이트는 http://prototypejs.org 이구요~ API가 되게 잘 되어 있거든요~ http://prototypejs.org/api 에 가시면 JAVA API처럼 보실 수 있어요. (깔끔하니 보기 좋아요^^) 음~ 여기서는 객체 접근이랑 AJAX에 대한 부분, 간단한 유용한 함수에 대해서 소개해드리려구 하고요. 더 자세한 내용과 디테일한 사용법은 API를 참조하시면 될 것 같아요.^^ ..
출처: http://placebo4me.egloos.com/1062935 JSON은 무엇인가? JSON은 무엇인가? 경량의 데이타 교환 포맷이다. > XML과 비교한다. 간단한 포맷 > 사람들을 위해 읽고 쓰기가 쉽다. > 기계들을 위해 분석과 생성이 쉽다. JSON은 텍스트 포맷이다. > 언어에 독립적으로 프로그래밍된다. > 프로그래머들에게 잘 알려진 C,C++,C#,Java,JavaScript,Perl,Pyton을 포함하는 C와 유사한 언어로 모여서 사용된다. XML을 넘어 왜 JSON인가? on-the-wire(선을 통한) 데이타 포맷인 XML보다 가볍고 빠르다. JSON 오브젝트는 XML 데이타가 타입이 없는데 비해 타입을 가진다. > JSON types : string, number, array..
트리거 (TRIGGER) 란?간단히 말해 INSERT,UPDATE, DELETE 문이 Table 에 대하여 수행 되어질 때 묵시적으로 수행되는 Procedure 이다.트리거는 table 에 저장되는 것이 아니라 별도로 오라클 데이터베이스 자체에 저장 된다.트리거는 view 에 대해서는 동작하지 않고 table 자체에 대해서만 정의 될 수 있다. 트리거란 특정 테이블의 데이터에 변경이 가해졌을때 묵시적으로 자동으로 수행되는 저장 프로시져라 할 수 있다. C++ 언어 또는 Java 의 Class 의 경우 Constructor 와 Destructor 가 있다. 이들은 Class 가 만들어 질때 자동으로 호출되거나 아니면 소멸되기 전에 자동으로 호출되는 묵시적 수행 함수이다. 바로 이와 같은 기능이 트리거이다..
라이센스 문제로 회사에서 쓰던 toad를 삭제하게 됐다. 기본 명령어들이 가물가물~ ^^;; 테이블명 변경 RENAME 변경 전 테이블명 TO 변경 후 테이블명; 컬럼명 변경 ALTER TABLE 테이블명 RENAME COLUMN 변경 전 컬럼명 TO 변경 후 컬럼명; 컬럼 생성 ALTER TABLE 테이블명 ADD (컬럼명 VARCHAR2(10)); 컬럼 삭제 ALTER TABLE 테이블명 MODIFY (컬럼명 VARCHAR2(10)); Primary key로 추가하는 법 1. 변경하고자 하는 컬럼을 NOT NULL로 변경 ALTER TABLE 테이블명 MODIFY (컬럼명 VARCHAR2(10) NOT NULL); 2. Primary key로 지정되어 있는 것을 삭제 ALTER TABLE 테이블명 D..
오라클에서 ms-sql처럼 TOP 1을 뽑고자 할 때에는, ROWNUM을 써야 한다. 근데 ROWNUM은 어떻게든 subquery를 이용할 수 밖에 없어, SELECT 구문에서 다른 테이블의 top 1을 조인하여 가져오고자 할 때엔, 2단계 서브쿼리에서 참조하고자 하는 테이블의 값이 참조되지 않아 답답할 때가 있다. 예를 들어, model 테이블의 모델 정보를 가져오는데 version 테이블에서 해당 모델의 최신 version을 함께 뽑아오고자 한다. model 1:n version ----------- ---------- modelid (PK) versionid(PK) name (UK) modelid(FK) detail ver regdate 위와 같은 테이블이 있고, 해당 모델의 최신 버전은 ORDER..
보통 오라클에서 페이징을 하거나 top n 을 뽑을 때에 ROWNUM을 사용한다. 헌데, SELECT * FROM ( (SELECT ROWNUM AS rnum, FROM ( SELECT * FROM tbl WHERE ~~ ORDER BY regdate DESC) t.* WHERE ROWNUM 80 과 같은 식으로 감싸줘야 한다. 매우 번거롭다. 이걸 ROW_NUMBER() OVER 구문을 통해 아래와 같이 변경할 수 있다. SELECT * FROM ( (SELECT t.*, ROW_NUMBER OVER (ORDER BY regdate DESC) rnum FROM tbl) WHERE rnum BETWEEN 80 AND 100 조금 깔끔해졌다.