독도 광고 모금 캠페인


'Works'에 해당되는 글 15건

  1. 2008.11.12 [Oracle] where 1=1 의 의미와 활용
  2. 2008.11.05 Project Terms
  3. 2008.11.03 strstr(p1,p2)
  4. 2008.08.08 Invalid byte 1 of 1-byte UTF-8 sequence
  5. 2008.08.07 [Spring2] 자바지기 Spring 프레임워크 강의 - Spring Framework - Confluence 1
2008. 11. 12. 11:02

[Oracle] where 1=1 의 의미와 활용


2008/04/07 17:10

출처 : 데브피아 (http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=38&MAEULNo=16&no=62792&ref=62791)
-> 최문산 (zenstyle11) 님의 질문에 대한 이영민 (andy5) 님의 답변입니다.



[ 1=1 은 항상 참인 조건입니다. ]

저는 이 조건을 Delphi, Java Swing, C# WinForm 등의 App를 개발할때 Query 문장을 특정 조건에 맞게 조합하고자 할때 사용했습니다.

예를 들어서, 고객등급 조건을 사용자가 선택한 경우에는 고객 등급 조건을 where절에 추가하고,
가입일자 조건을 선택하면 가입일자 조건을 추가하려고 할때,
이미 조건이 추가 되어 있는지를 검사해서 'and' 를 앞에 붙일지 말지를 결정해야 합니다.

이런 조건들이 상당수 있을 경우 if 문이 상당히 지저분하고 가독성이 떨어집니다.
그래서 아예 where 1=1 처럼 항상 참인 조건으로 초기화합니다.
그러면, 그 다음에 오는 조건들은 그냥 and를 앞에 붙여주기만 하면 되니까요~

T-SQL에서 동적쿼리를 사용하는 경우도 마찬가지입니다.
where 절 구성하기에 좀 더 편리한 방법이라고 생각합니다.

별로 필요 없어 보이지만, 나름대로 이유가 있습니다

 ps.
where 1=1 은 where 2=2 와 동일합니다. ^^
일종의 관습처럼 굳어진 버릇인것 같아요~


-----------------------------------------------

즉, 여러 조건에 대한 AND문을 WHERE절에 사용할 때 이미 AND문이 사용되었는지 아닌지를 판별하여 AND를 먼저 쓰고 조건을 쓸지 아닐지 결정해야 하는 경우에,

where 1=1 을 먼저 쓰고 시작한다면 그런걸 결정하지 않고 그냥 'and 조건' 을 사용하면 되겠죠. 1=1 은 무조건 참이니까요.

만일 그게 없다면
if (조건이 이미 존재 할 경우) 'and 붙임'
else 'and 안붙임'

뭐 위와같은 조건문이 붙어 내용이 길어지고 위에 설명하셨듯이 가독성이 떨어지겠죠.

전 오늘 where 1=1 의 기능 하나 알았습니다~ 오예~



퍼온곳.. http://luckys.tistory.com/197


----------------------------------
그렇게 오랫동안 일을 했는데 왜 난 이제 본걸까????
프로그램단에서 처리를 거의다 해왔기 때문에 이 생각 자체를 못했다.
참 간단한 내용인데 개발자 입장에서는 코딩을 줄이고
프로그램에서도 IF 문 한개 더 주니 참 좋네.. ^^

'Works > Tip' 카테고리의 다른 글

간단한 replaceAll 스크립트  (0) 2008.11.28
strstr(p1,p2)  (0) 2008.11.03
Invalid byte 1 of 1-byte UTF-8 sequence  (0) 2008.08.08
2008. 11. 5. 09:35

Project Terms


CMS : 기지국 장비

RCS :  광중계기 감시장치

'Works > My Project' 카테고리의 다른 글

OZ Report  (0) 2008.11.18
OZ Report Designer  (0) 2008.11.18
[Spring2] 자바지기 Spring 프레임워크 강의 - Spring Framework - Confluence  (1) 2008.08.07
2008. 11. 3. 15:19

strstr(p1,p2)

문자열 검색..
원하는 문자가 있는지 검색한다.
strstr(p1,p2)


예)
if(strstr"0123456","0") > -1){
//"0" 이 존재
}

'Works > Tip' 카테고리의 다른 글

간단한 replaceAll 스크립트  (0) 2008.11.28
[Oracle] where 1=1 의 의미와 활용  (0) 2008.11.12
Invalid byte 1 of 1-byte UTF-8 sequence  (0) 2008.08.08
2008. 8. 8. 14:08

Invalid byte 1 of 1-byte UTF-8 sequence

웹서버 구동시 Invalid byte 1 of 1-byte UTF-8 sequence라는 오류와 함께

톰캣 등이 실행이 안된다면...


server.xml이나 web.xml에서...


한글을 빼라!

-_- 한글로 주석처리 했더니 에러나네...

'Works > Tip' 카테고리의 다른 글

간단한 replaceAll 스크립트  (0) 2008.11.28
[Oracle] where 1=1 의 의미와 활용  (0) 2008.11.12
strstr(p1,p2)  (0) 2008.11.03
2008. 8. 7. 10:08

[Spring2] 자바지기 Spring 프레임워크 강의 - Spring Framework - Confluence

Spring 2.0
Spring Dependency Injection

기본 Spring 프레임워크 API 사용예제

Advanced Spring 프레임워크 API 사용예제

Spring 프레임워크 개발 전략

  • Spring의 Bean Definition 설정 파일 관리 전략 : Spring의 설정 파일은 작은 애플리케이션의 경우 단 하나만으로 모든 Bean을 관리할 수 있다. 그러나 중/대규모의 애플리케이션일 경우 하나만으로 관리하기에는 유지보수가 힘들어 질 수 박에 없다. 이 같은 한계를 극복할 수 있는 방법에 대하여 살펴본다.
  • Spring 프레임워크에서의 테스트 전략 : Spring 프레임워크를 이용할 경우 큰 장점중의 하나가 테스트의 용이성이다. Spring 프레임워크 기반하에서의 테스트 전략에 대하여 살펴본다.
Spring Aspect Oriented Programming

기본적인 Spring AOP 기능

Advanced Spring AOP 기능

  • Introduction 시작하기 : AOP의 개념중 Introduction이라는 개념이 있다. Introduction은 이미 구현되어 있는 구현체에 완전히 새로운 기능을 추가하는 것이 가능하다. Introduction 기능을 이용하여 이 같은 작업이 어떻게 가능한지에 대하여 살펴본다.
  • AOP를 Bean Definition에서 선언적으로 사용하기 : ProxyFactory를 이용하여 AOP 기능을 프로그램에서 사용하는 것이 가능하다. 그러나 Spring 프레임워크에서는 모든 Bean Definition을 선언적으로 사용하듯이 AOP 적용 또한 선언적으로 하고 싶다. Spring 프레임워크에서는 이 방법을 어떻게 해결하고 있는지 살펴본다.
  • Automatic Proxying 사용 예제 : Bean Definition을 설정할 때마다 특정 AOP를 추가하는 것은 여간 번거로운 작업이 아니다. Automatic Proxying을 통하여 하나의 Aspect가 특정 패턴을 가지는 모든 Bean에 적용되는 방법에 대한 예제를 살펴본다.
  • Spring 프레임워크와 AspectJ의 통합 : Spring AOP가 AOP의 모든 기능을 제공하는 것이 아니다. Spring AOP가 지원하지 못하는 기능들을 AspectJ가 지원할 수 있는 경우가 대부분이다. 따라서 Spring 프레임워크와 AspectJ를 통합할 수 있다면 상당히 유용할 것이다.

Spring 프레임워크 개발 전략

  • AOP를 사용하기 위한 프로젝트 개발 전략 : AOP 개념을 프로젝트에 적용하기 위해서는 기존의 프로젝트 개발 방법과 달라지는 부분이 있다. AOP를 적용할 경우 프로젝트 초반에 수립해야 될 부분과 그렇지 않아도 되는 부분등에 대하여 다룬다.
  • 다양한 AOP 툴중에서 적절한 툴을 선택하기 위한 전략 : 현재 자바 진영에서 사용할 수 있는 프레임워크는 Spring AOP, JBoss AOP, AspectJ 등이 일반적으로 사용되고 있다. 이 프레임워크 어떠한 프레임워크를 사용할 것인지를 선택하는 것이 또한 중요하다. 이와 같은 프레임워크의 선정 방법에 대하여 다룬다.
Spring JDBC
Spring Transaction

Transaction : Transaction에 대한 기본적인 개념과 Spring에서 지원하는 Transaction에 대하여 살펴본다.

Transaction은 어느 곳에서 처리되어야 할까? : Transaction은 어느 레이어에서 처리해야 할까? 지금까지의 개발 방식과 Spring을 이용할 경우 어떻게 해결할 수 있는지에 대하여 살펴본다.

Spring MVC

Basic

  • 모델 1과 모델2의 차이점 : 모델1과 모델2의 차이점에 대하여 비교분석한다.
  • Spring MVC에서 클라이언트 요청의 처리 과정 : Spring MVC는 클라이언트에서의 요청을 바로 JSP가 처리하는 것이 아니라 DispatcherServlet이라는 메인 Servlet에서 제어하게 된다. 이 Controller에 의하여 처리되는 과정을 살펴본다.
  • HandlerMapping
  • Controller 구조 및 역할 : Spring 프레임워크는 다양한 요청에 대한 처리를 위하여 여러가지 종류의 Controller를 제공하고 있다. 각 Controller의 종류 및 사용 방법을 살펴보도록 한다.
  • SimpleFormController의 Workflow : SimpleFormController는 Spring 프레임워크에서 한 페이지의 Form 페이지를 처리하기 위하여 유용하게 사용할 수 있는 Controller이다. SimpleFormController가 처리되는 Workflow에 대하여 알아본다.
  • ViewResolver
  • View

참고문서

Spring Test
Spring JMS

'Works > My Project' 카테고리의 다른 글

OZ Report  (0) 2008.11.18
OZ Report Designer  (0) 2008.11.18
Project Terms  (0) 2008.11.05