방법은 간단하다.
java -jar 파일명.jar
하면 된다.

  • 적용환경 : WindowsXP, Java 1.6 SDK 설치된 상태

     

Java에서 데이터베이스와 관련된 처리를 담당하기 위해 제공하는 표준 스펙으로서, 각 밴더사들은 이 스펙을 만족하는 JDBC 드라이버를 제공해야 한다.

각 밴더사(DBMS제조사)의 다운로드 페이지에서 제공하는 파일을 다운로드 받아보면, 그 압축파일 안에 JDBC를 사용하는 방법을 제공하고 있으므로, jar 파일만 받지 말고, 제공하는 JDBC 압축파일을 받는 것이 좋을 듯 하다.

 

각 밴더사들이 제공하는 JDBC 파일은 JDK/JRE/lib/ext 폴더에 넣어두면, 이클립스나 IDE 프로그램이 자동으로 인식하여 설치를 진행할 수 있다.

JavaExt.JPG

이하 페이지에서는 각각의 JDBC 를 이용하여 각각의 DB에 접속하는 방법을 기술하도록 하겠다.



이 글은 스프링노트에서 작성되었습니다.

아참, 자바 개발자 여러분들은 알고 계실거라 생각을 하지만
혹시나 몰라서 알려드립니다. ^^;

지난 10월 말경 JDK 5 버전에 대한 End of Life 서비스 정지가
있었습니다. JDK 7 초기버전도 출시를 하면서 자연스럽게
JDK 6으로 버전업이 진행되고 조만간 JDK 7 으로도 넘어갈겁니다.
http://java.sun.com/javase/downloads/index_jdk5.jsp

JDK 6버전도 2010년에는 EOL(End of Life:지원중단)이 되는군요.
http://java.sun.com/products/archive/eol.policy.html

이와 관련해서 JDK 7의 특징에 대한 내용을 알려드립니다.
http://xeraph.com/5122122

하지만 여전히, 우리나라의 많은 기업체들은 여러가지 이유
(주로 자금, 혹은 추가 투입되는 유지보수 비용에 대한 거부감)로
여전히 JDK 5, 심지어는 JDK 4 버전에서의 개발이 유지되고 있습니다.

@_@)~~ 최근 출시된 것을 바로바로 적용할 필요는 없지만,
SDK 6과의 차이점 정도만 이해하는 정도로 넘어가시면 되겠습니다.

그럼 추워지는 날씨에 감기들 조심하시길.

'Java > Language' 카테고리의 다른 글

클래스메서드(static메서드)  (0) 2009.11.25
JVM의 메모리구조  (0) 2009.11.25
java.lang.Annotation(주석:@)  (0) 2009.11.16
[펌]괜찮은 Java 사이트들  (0) 2009.10.26
JAVA(JDK7) 특징  (0) 2009.10.17
# 이 문서는 오라클클럽에서 작성하였습니다.
# 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
# 출처 : http://wiki.oracleclub.com/display/WEBSTUDY/Annotations? 

Annotation(주석)

1. Annotation(주석) 개요

J2SE 5.0에 추가된 중요한 기능중 하나로, 어노테이션 유형은 일반 클래스와 비슷해보이지만 독특한 속성이 있다.
표기법은 (@)(at) 표시로 하고, 클래스에서 @(at)기호와 함께 사용하여 다른 자바 코드에 주석을 달 수 있다.
주석태그가 코멘트가 아니라 소스에 포함된다. 여기서 중요한 점은 주석이 선언적 프로그래밍 모델을 체계적으로 지원하기 위한 방법이라는 것이다.

1.1. 주석이란

  • 메타데이터를 프로그램 엘리먼트(클래스, 인터페이스, 메소드 등)에 연결하는 방법을 제시합니다.
    (메타데이터는 데이터를 부연설명하기 위한 데이터)
  • 주석은 해당 엘리먼트에 대해 생성된 바이트코드를 변경하지 않는 추가 수식자(modifier)라고 할 수 있다.

1.2. 주석의 지속성

  • //, /* */, /** */ 등의 주석은 보통 컴파일이 되면서 사라진다.
  • Annotation은 기존의 주석과 달리 Runtime 까지도 존재하는 주석이다.

2. Builtln(내장된) Annotation(주석)

  • 모든 자바 프로그래머들이 알아야 하는 내장 어노테이션은 @Deprecated, @Override, @SuppressWarnings 모두 3가지 이다.

2.1. Override Annotation

  • Tiger의 첫 번째 Builtln(내장된) Annotation 유형이다.
  • @Override는 메소드에 대해서만 사용되어야 한다. (클래스, 패키지 선언, 기타 구조체는 안된다.)
  • @Override 주석이 사용된 메서드는 수퍼클래스에서 메소드를 오버라이드한다는 것을 나타낸다.

2.1.1. @Override 예제

The Override Annotation

package dfi.study.java;

public class OverrideTest01{

public OverrideTest01() { }

@Override
public String toString() {
return super.toString() + " [Override Test]";
}

@Override
public int hasCode() {
return toString().hashCode();
}
}
  • 위의 @Override 어노테이션은 두 개의 메소드, toString()과 hashCode()가 OverrideTest01 클래스의 수퍼클래스 (java.lang.Object)에서
    메소드의 버전을 오버라이드 한다는 것을 나타내고 있다.
  • 메소드를 오버라이드 하려다가 메소드 이름의 철자를 틀리거나, 잘못된 인자를 지정하거나, 다른 리턴 타입을 설정했던 적이 무수히 많았을 것이다.
    이 어노테이션 유형은 코딩하기엔 너무 늦었거나 무언가를 잘못 타이핑했을 때 빛을 발한다.

Override Annotation의 오타 찾아내기

  • 위 코드에서 hashCode()가 hasCode()로 잘못 표기되었다. @Override 어노테이션은 hasCode()가 메소드를 오버라이드해야 한다는 것을 지시한다.
    하지만 컴파일시 오버라이드 할 hasCode()라는 메소드가 없다는 것을 알게 되고. 결과적으로 컴파일러는 에러를 표시한다.

2.2. Deprecated Annotation

  • @Override와 마찬가지로 @Deprecated는 marker 어노테이션이다.
  • @Deprecated를 사용하여 더 이상 사용되지 말아야 하는 메소드에 주석을 단다. 주의할 점은 더 이상 사용되지 말아야 하는(depreciated) 메소드와
    같은 라인상에 놓여져야 한다는 것이다.
  • 컴파일러는 프로그램이 비추천(deprecated) 메소드나 클래스 혹은 변수를 사용할 때마다 경고를 발생시킨다.
  • 메소드에 @Deprecated 태그를 플래그하면 해당 메소드나 클래스 사용시 사용자에게 경고 메세지를 보내도록 컴파일러를 환기시키는 효과가 있다.
  • 태그는 소문자 'd'로 시작하며, Annotation은 대문자' D'로 시작함을 유의해야한다.
  • 일반적으로 프로그래머는 비추천 메소드의 사용을 피해야 하며 그것 대신 무엇을 사용해야 하는지를 확인해야 한다.

2.2.1. @Deprecated 예제

The Deprecated Annotation

  • 주석이 붙은 클래스도 주석이 붙지 않은 경우와 동일한 방식으로 컴파일한다.
  • 이 클래스를 컴파일 할 때 비정상적인 그 어떤 것도 기대해서는 안된다.
  • 오버라이드 또는 호출이든 @Depreciated 메소드를 사용하면 컴파일러는 어노테이션을 처리하고
    메소드가 사용되어서는 안된다는 것을 알게 되고 에러 메시지를 만든다.

2.3. SuppressWarnings Annotation

  • 마지막 어노테이션 유형은 SuppressWarnings으로 가장 흥미롭다고 할 수 있다.
  • @SuppressWarnings은 일반적으로 경고하는 내용을 경고하지 말도록 컴파일러에게 지시하는데, 경고는 일종의 범주에 속하므로 주석에 대해
    어떤 종류의 경고를 금지할 것인지 지시해야 한다.
  • Override와 Deprecated와는 다르게 SupressWarnings는 변수를 갖고 있다. 따라서 이를 작동하게 하려면 싱글-어노테이션 유형을 사용해야한다.
  • javac 컴파일러는 all, deprecation, unchecked, fallthrough, path, serial, finally 등 7개의 금지 옵션을 정의한다.
  • 언어 스펙은 이 중에서 두 가지 비추천(deprecation)"과 "비확인(unchecked) 만을 정의한다.
  • 하나 이상의 경고 종류를 억제하려면 다음의 문법과 같이 사용하면 된다.
     @SuppressWarnings({"unchecked", "deprecation"})

2.3.1. @SuppressWarnings 예제

The SuppressWarnings Annotation (type-safe가 아닌 Tiger 코드)

package dfi.study.java;
import java.util.ArrayList;

public class SuppressWarningsTest01
{
public void SuppressWarningsTest01()
{
ArrayList wordList = new ArrayList(); // no typing information on the List

wordList.add("study"); // causes error on list addition
}
}

non-typed 코드에서 컴파일러 경고

-컴파일 라인에 -Xlint를 추가하면 무엇이 잘못되었는지 구체적으로 표시할 수 있다.

경고 제거하기

  • SuppressWarnings 어노테이션을 사용하여 번거로운 경고를 제거한다
    -@SuppressWarnings(value={"unchecked"})를 적용함.
package dfi.study.java;
import java.util.ArrayList;

@SuppressWarnings(value={"unchecked"})
public class SuppressWarningsTest01
{
public void SuppressWarningsTest01()
{
ArrayList wordList = new ArrayList(); // no typing information on the List

wordList.add("study"); // causes error on list addition
}
}


# 이 문서는 오라클클럽에서 작성하였습니다.
# 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
# 출처 : http://wiki.oracleclub.com/display/WEBSTUDY/Annotations?

'Java > Language' 카테고리의 다른 글

JVM의 메모리구조  (0) 2009.11.25
JDK 7에 대해서  (0) 2009.11.16
[펌]괜찮은 Java 사이트들  (0) 2009.10.26
JAVA(JDK7) 특징  (0) 2009.10.17
[펌]Silicon Valley Code Code Camp 2009 Trip Report  (0) 2009.10.05
  • J2SE ( Standard Edition )
    일반 자바 프로그램 개발을 위한 용도로 이용되는 개발도구이며 각종 자료구조, 기본 유틸리티, 스윙이나 AWT와 같은 GUI도구등의 기본기능을 포함하고 있다.

 

  • J2EE ( Enterprise Edition)  -
    엔터프라이즈 환경을 위한 도구로 EJB, JSP, Servlet, JNDI같은 기능을 지원하며 웹 애플리케이션 서버를 이용하는 프로그램 개발시 많이 사용한다.
    J2EE는 웹기반의 엔터프라이즈 애플리케이션을 구축하기 위한 썬의 플랫폼이다. J2EE 서비스는 사용자의 브라우저와, 엔터프라이즈 데이터베이스 및 레거시 정보시스템 사이의 중간계층에서 수행된다. J2EE의 핵심요소는, JSP와 자바 서블릿, 그리고 기업내의 정보자원을 하나로 묶기 위한 다양한 인터페이스들의 뒤를 이은 EJB이다. J2EE 인터페이스는 데이터베이스를 위해 JDBC를, 디렉토리를 위해서는 JNDI를, 트랜잭션을 위해서는 JTA를, 메시징을 위해서는 JMS를, 전자우편시스템을 위해서는 JavaMail을, 그리고 CORBA와의 접속을 위해서는 JavaIDL을 각각 포함한다. 1999년 12월에, 최초의 공식적인 버전으로는 최초로 J2EE 버전 1.2가 발표되었으며, 다양한 레거시 애플리케이션과의 인터페이스를 위한 자바커넥터는 2000년 중에 발표될 것으로 예상된다.

출처 : http://www.ibm.com/developerworks/kr/library/os-ag-simple1/index.html

J2EE는 엔터프라이용 웹 기반 애플리케이션을 개발 및 전개할 수 있는 플랫폼 독립의 환경이다. 이 플랫폼은 메타 언어나 언어 상위 세트로 연결되었다. 하지만, J2EE는 근본적으로 자바 프로그래밍 언어이고, 특정한 자바 클래스의 최소 세트이다. (참고자료)

J2EE 는 멀티 티어, 웹 기반 애플리케이션들을 개발하는 애플리케이션 프로그램 인터페이스(API), 서비스, 프로토콜들로 구성된다. 이것은 복잡한 표준이고, 이를 단순화하는 것과 관련된 글을 쓴다는 것은 마치 미국 세법을 단순화 하는 것과 관련된 글을 쓰는 것과 같다. 쉬운 작업이 아니라는 뜻이다. 하지만, 제 1의 원리부터, 많은 구현 상세들까지 다루다 보면, 깨달음이 올 것이다. 이제 안전 벨트를 단단히 매고 출발해보자.

제 1의 원리

J2EE멀티-티어 디자인의 클라이언트 레이어는 순수 HTML 프로토콜(JavaServer Pages (JSP)와 Java 서블릿으로 생성됨)로 표현되고, TCP/IP 전송 프로토콜로 자바 애플릿을 전개한다. 모든 표준 순응 웹 브라우저는 J2EE 시스템의 클라이언트처럼 잘 작동되어야 한다.

서버 레이어에는 엔터프라이즈 애플리케이션의 플랫폼 로직이 정의되는 Enterprise JavaBeans (EJB) 기술이 포함되어 있다. EJB 서버는 쓰레딩, 동시성, 메모리 관리, 보안 기능을 제공하고, 이러한 일들을 자동으로 수행하여 애플리케이션 프로그래머의 짐을 덜어준다. 바로 이것이 J2EE의 힘이다.

엔 터프라이즈의 가장 귀중한 데이터들은 가장 낮은 레이어에 있는데, 여기에서 IBM® DB2®, Oracle, MySQL 같은 표준 데이터베이스 툴이나 Structured Query Language (SQL) 기반 데이터베이스 엔진이 Java Database Connectivity (JDBC) 인터페이스를 통해 액세스 된다.

J2EE는 웹 서비스에 상당히 집중하고 있다. 웹 서비스야 말로 두 개 이상의 애플리케이션들이 표준 기반 방식으로 서로 데이터를 통합 및 교환할 수 있는 놀라운 방식이다. J2EE는 값진 기술들의 집합소라 할 수 있다. J2EE 환경에서 커리어를 쌓기 위해 이 모든 기술들을 마스터 할 필요는 없지만, 이것을 배워두면 프로그래머들은 커리어를 높일 수 있다.

* J2EE 기술

다음은 많은 J2EE 기술들의 일부이다. 이 모든 기술들을 마스터 한 프로그래머들은 오늘날 직업 시장에서 상당히 수요가 높다. 내가 중요하다고 생각하는 순서대로 나열했으며, 어디까지나 내 주관적인 생각이다.

내가 이 리스트를 공개하는 이유는 J2EE의 복잡성도 설명하고, 이러한 기술들을 배울 때 어떤 순서로 배워야 할 지에 대해서 대강의 개요를 제공하기 위해서이다. 중요한 기술들은 다음과 같다:

  • JSP: 실행 전에 서블릿으로 컴파일 된 인라인 자바 코드를 가진 HTML 템플릿으로 된 파일.
  • EJB: 엔터프라이즈 웹 애플리케이션의 플랫폼 로직을 나타낸다. 두 가지 유형의 EJB 기술로는 엔터티 빈(entity beans)세션 빈(session beans)이 있다.
  • JDBC: 자바 환경에서 데이터베이스로 연결하는 API. Open Database Connectivity (ODBC) 대신 자바 프로그래머가 대안으로 사용할 수 있다.
  • Java API for XML Processing (JAXP): XML 문서를 파싱 및 변형할 때 애플리케이션을 보조함.
  • Java Naming and Directory Interface (JNDI): 애트리뷰트를 사용하는 객체를 검색하고, 애트리뷰트를 객체들과 제휴시키는 등의 디렉토리 연산을 수행하는 메소드를 정의함.
  • Java API for XML-based Remote Procedure Call (JAX-RPC): 개발자가 Web Service Description Language (WSDL)에서 나타낸 클라이언트와 서비스를 만들 수 있도록 함. WSDL은 서비스를 메시지에 대해 연산을 수행하는 엔드포인트로서 기술하고, XML로 정의된다.
  • Java API for XML-based Web Services (JAX-WS): 개발자들이 WSDL에 의해 기술되는 클라이언트와 서비스를 구현할 수 있다는 점에서 JAX-RPC와 비슷하다. 하지만, JAX-WS는 웹 서비스 엔드포인트를 선언할 때 @WebService 같은 주석을 사용하기 때문에 전개 디스크립터가 필요 없다. JAX-WS를 사용하면, 전개 디스크립터를 사용하지 않고 웹 서비스를 전개할 수 있다.
  • Java Architecture for XML Binding (JAXB): 바인딩 컴파일러와 런타임 프레임웍을 제공하여 자바 객체들을 XML 문서로 매핑한다. 시스템이 유효한 메시지들만 수락하여 처리하는지를 확인하는 것이 가능하다. 컴파일러는 World Wide Web Consortium (W3C) XML 스키마를 자바 클래스로 자동 변형하기 때문에, 여러분이 복잡한 파싱 코드를 작성할 필요가 없다.
  • Java API for XML Messaging (JAXM): 애플리케이션들이 인터넷을 통해 XML 비즈니스 문서를 교환할 수 있다. 재고 리스트, 송장, 기타 수많은 비즈니스 문서 등이 예이다.
  • Java API for XML Registries (JAXR): 웹 서비스를 구현, 전개, 발견하는데 유용한 다양한 종류의 XML 레지스터에 액세스하는 표준 API를 제공한다.
  • Java Message Service (JMS): 많은 메시징 시스템 제품들의 일반 기능들에 액세스 하는 일관된 API로 메시지 기반 애플리케이션을 작성할 수 있도록 해준다.
  • Java Management Extensions (JMX): J2EE 애플리케이션 서비스를 모니터링 및 관리하기 위해 만들어진 자바 표준.

J2EE의 장점

J2EE 는 엔터프라이즈 레벨 애플리케이션을 위해 만들어졌기 때문에 서버 인프라스트럭처는 많은 태스크들을 자동으로 핸들한다. 태스크 중에는 컨테이너-관리(Container-managed) 트랜잭션, 확장, 패일오버 관리, 보안 컨트롤 등이 있다.

컨테이너 관리 관계는 엔터티 빈들 사이에 일대일 및 일대다 관계를 지원한다. (엔터티 빈은 영속 저장 메커니즘에 비즈니스 객체들을 나타내는 자바 클래스이다. 예를 들어, 하나의 데이터베이스에 특정 행(row)) 일대다 관계의 경우, 엔터티 빈은 자바 컬렉션을 사용하여 다(many) 측면을 나타낸다. 이 같은 관계를 관리하는 기능은 관계형 데이터베이스 기술에서 관계 모델링의 개념과 비슷하다.

EJB 컨테이너는 모든 엔터티 빈 관계들의 참조 무결성을 관리하는데 있어 중요하다. 일대일 관계에서, 관계의 한 측을 변경하면 컨테이너는 자동으로 오래된 관계를 대체한다.

컨테이너 관리 트랜잭션의 중요성은 아무리 강조해도 지나치지 않는다. Apache Geronimo는 J2EE 표준에 순응하는데, J2EE 표준이 지정하는 컨테이너 클래스를 관리하는 커널을 제공한다.

 

  • J2ME - 소형 전자기기들을 위해 개발된 도구로 핸드폰이나 기타 임베디드 시스템에서 자바로 프로그램을 개발할때 이용하는 도구이다.

 

 

 

이 글은 스프링노트에서 작성되었습니다.


+ Recent posts