MySql을 쓰기 위해서는 현재 사용하고 있는 이클립스에서(이클립스를 사용하고 있다면) 연동을 시켜줘야 한다.

 

 

 

 

1. MySql 사이트( www.mysql.com ) 접속 > Downloads > Community(오픈소스) > MySql Connectors > Download Connector/J > Platform Independent 다운로드한다.

 

 

 

 

 

2. 다운로드한 .zip 파일의 압축을 풀어준다.

 

* .tar : 리눅스 압축 포맷

* .zip : 윈도우 압축 포맷

* 보통 압축을 풀 때에는 c:\temp 파일 안에 풀어놓는다고 함

 

 

 

 

 

 

3. connector 압축 파일에 있는 connector.jar 파일만 Java7 > lib으로 이동시키고 나머지 connector 압축 파일은 삭제해도 된다 

 

 

 

4. 이클립스 console 창의 Data Source Explorer 오른쪽 마우스 버튼 > New 클릭

 

 

 

 

 

5. MySql > Next 클릭

 

 

 

 

6. MySQL JDBC Driver 오른쪽에 동그라미로 된 플러스 버튼을 누르면 Name/Type이 뜬다. 거기서 자신에게 맞는 드라이버를 클릭한다.

 

 

 

 

7. JAR List 목록에서 원래의 드라이버 파일이 없다면 Add Jar/Zip 버튼을 클릭하여 Java7\lib 폴더에 있었던 connector.jar를 추가하고, 이미 있다면 remove한 뒤 다시 추가한다.

 

 

8. URL과 User name, Password 부분은 mybatis 프레임워크에서 mapping을 하는 파일인 config.xml에 들어갈 데이터베이스 정보와 똑같이 적어야 한다.

   적은 뒤 바로 Finish를 누르지 말고 Test Connection 버튼을 눌러 연결이 원활한지 체크해볼 것.

1. JDK (Java Develop Kit)

자바 개발 도구

오라클 사이트(http://www.oracle.com/)에서 다운로드 가능

자바로 개발하는 개발자들이 설치하는 개발 환경

자바를 이용한 프로그래밍을 할 때 필요한 툴, 패키지, 컴파일러(javac.exe, debugging, jar etc..) 와 같은 것들이 설치된다.

JDK는 JRE를 포함하고 있기 때문에 컴퓨터 내에 JRE가 없을 때에는 JDK만 다운로드 하여도 무방하다.

 

 

javac 

 컴파일러

java

 인터프리터

appleviewer 

 애플릿 실행기

 javah

 헤더파일 생성기

 jar

 java용 압축 프로그램, 배포용

 javap

 역어셈블러

 

<JDK에 포함되어는 tool의 일부>

 

 

 

컴퓨터 내에 기본적으로 탑재되어 있는 JRE와의 혼란을 피하기 위해 C드라이브에 Java7이라는 폴더를 따로 만들어 JDK를 다운로드 하였다.

JDK 내에 JRE가 원래 포함되어 있기 때문에 jre 폴더가 있는 모습.

 

 

 

JDK를 설치한 후 제어판 > 시스템 > 고급 시스템 설정 > 고급 > 환경변수에서 Path 부분의 원래 경로 뒤에 JDK 폴더 경로를 그대로 copy & paste한다.

 

 

* 이클립스 설치 전 JDK를 다운로드 한 후 JDK가 잘 다운로드 되었는지, path 위치는 잘 지정했는지 확인하고 싶을 때에는 cmd 창에서 컴파일을 해보면 된다.

 

 

2. JRE (Java Runtime Environment)

컴파일된 자바 프로그램을 실행시켜주는 도구

자바 실행 도구는 가지고 있지만(java.exe, library) 자바 개발 툴은 가지고 있지 않음

개발된 자바 프로그램을 실행만 하면 되는 평범한 일반 사용자들이 설치하는 환경

컴퓨터에 이미 설치되어 있기 때문에 설치할 필요가 없으나 JRE가 없을 때에는 사이트에서 JRE만 따로 다운로드가 가능

 

 

 

컴퓨터 C드라이브 내에서 Program Files 폴더를 보면 Java라는 폴더에 JRE가 자동으로 위치하여 있다.

(jre7이라고 적혀있는 이유는 자바 표준 버전이 JAVA7이기 때문)

보통은 자바 개발을 할 때 이클립스 등 개발 도구를 가지고 많이 개발을 하는데, 개발 도구 없이 cmd 창으로 컴파일 하는 법을 포스팅.

 

 

1. 컴파일할 소스 코드를 메모장에 적고 C드라이브에 'AAA'라는 폴더를 만들어 .java 파일로 저장

 

 

2. cmd > HelloWorldMain.java 파일이 있는 AAA 폴더로 이동

 

* cd.. : 상위 폴더로 이동 (cd : change directory)

  cd : 하위 폴더로 이동

  dir : 디렉토리 조회

 

 

3. HelloWorldMain.java 파일을 컴파일

 

AAA 폴더에서 HelloWorldMain.class 파일이 생성된걸 확인할 수 있다. (컴파일됨)

 

* javac 파일명.java : 자바 파일 컴파일

       자바 개발 도구인 JDK에서 컴파일을 담당하는 파일이 javac.exe이기 때문

  자바 파일명 뒤에는 .class 확장자가 생략되어 있음

 

 

4. 컴파일된 HelloWorldMain을 출력 

 

 

* java 컴파일된파일명 : 컴파일된 자바 실행 도구인 JRE에서 실행을 담당하는 파일이 java.exe이기 때문

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

Java :: Servelet (서블릿)  (0) 2016.01.21
Java :: JDK와 JRE  (0) 2016.01.20
JAVA :: JRE 오류  (0) 2016.01.15
Maven :: 정의  (0) 2016.01.15
JAVA :: 명명 관례  (0) 2016.01.15

데이터베이스에 접속하기 위해서는 커넥션을 생성해야 함

그런데 자주 데이터베이스에 접속하고, 접속하는 데이터베이스가 다르고, 접속하는 사람들이 달라지면 접속할 때마다 새롭게 코딩을 해야 하는 일이 발생한다.

 

이러한 불편함을 덜고 클래스의 재사용성을 높이기 위해 커넥션 공장(Connection Factory)를 만들게 됨

 

커넥션을 구현할 때마다 커넥션 생성 구문을 사용하는게 아니라, 커넥션 팩토리 클래스를 이용하여 커넥션을 대신 생성하게 하는 것

 

커넥션 팩토리는 기본적으로 2개의 메소드와 1개의 생성자를 포함한다.

 

static 멤버로 SqlSessionFactory를 주고 static 메소드인 getSqlSessionFactory()를 통해 커넥션 팩토리 객체를 얻어내도록 하고 있음

 

내부에서 SqlSessionFactory 객체를 생성하고 있기 때문에 static 변수 선언 앞에 private 붙여도 됨

 

 

 

1. 정의

어떤 조건에 대해 조회하는 대상 (ex. column명, table명, DB명)이 고정되어 있지 않고 parameter를 통해 그 대상들을 상황에 맞게 조회가 가능하다.

if문과 choose문을 가장 많이 사용하며, xml mapper에 지정하게 된다.

 

 

2. 동적 sql을 사용하는 경우

ㄱ. 컴파일시 sql 문장이 확정되지 않는 경우 : where 조건 뿐만 아니라 select 항목이 동적으로 변할 수 있는 상황일 때

 

 

3. 종류

ㄱ. if : 단일 if문. 선택적 문자열 검색 가능.

     파라미터로 넘어온 property 객체의 메소드를 직접 호출 가능.

 

<if test="파라미터1 != null and 파라미터2 != null></if>

<if test='파라미터 != null and 파라미터 == "A"'></if>

<if test='파라미터 != null and (파라미터 equals "A".toString())'></if>

<if test='파라미터 != null and 파라미터.equals("A")'></if>

<if test='파라미터 != null and 파라미터.equalsIgnoreCase("A")'></if>

 

파라미터로 null이 넘어올 수 있으니 exception 방지를 위해 null인지 비교하고 난 후, 다음으로 넘어온 property가 스트림 객체니까 대, 소문자를 안 가리고 비교하라고 .equals 메소드를 호출함.

 

ㄴ. choose (when, otherwise)

ㄷ. trim (where, set)

ㄹ. foreach

'Framework > Spring' 카테고리의 다른 글

MyBatis :: selectList와 selectOne  (3) 2016.02.15
MyBatis :: ConnectionFactory  (0) 2016.01.19
MyBatis :: Java app example  (0) 2016.01.18
JDBC :: 메뉴얼  (0) 2016.01.15
MyBatis란?  (0) 2016.01.13

- 특정 레코드에 대한 조건을 설정

  (ex. where id = 1 은 id가 1인 레코드)

 

* where 컬럼명 <> 값 : ~이 아닌 나머지

* 여러 조건식을 포현할 경우는 AND나 OR로 연결

 (WHERE A AND B : 두 조건 동시 만족 / WHERE A OR B : 두 조건중 하나만이라도 만족시)

 

1. LIKE

- 해당 패턴에 포함되는 레코드들(ex. 문자열, 날짜, 시간 etc) 선별시 사용

 (ex. SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '%특정문자열%';) => WHERE 컬럼에서 %특정문자열%이 포함된 SELECT 컬럼을 FROM 테이블에서 출력

ㄱ. %특정문자열% : 특정 문자열이 포함된

ㄴ. %특정문자열 : 특정 문자열로 끝나는

ㄷ. 특정문자열% : 특정 문자열로 시작하는

 

- 응용 : SELECT * FROM project WHERE address LIKE '서울시%' ORDER BY name DESC;

=> project 테이블 address에서 '서울시'로 시작하는 name 컬럼을 오름차순으로 정렬

 

와일드카드

 내용

 %

 문자가 0개 이상인 문자열

 _

 단일 문자

 []

 지정 범위(ex. [ㄱ-ㄷ])나 집합(ex.[ㄱㄴㄷㄹㅁ])에 속하는 한 개의 문자

 [^]

 지정 범위(ex. [^ㄱ-ㄷ])나 집합(ex.[^ㄱㄴㄷㄹㅁ])에 속하지 않는 한 개의 문자

 

2. IN

- 해당 컬럼이 어떤 값들의 집합에 속할 경우

(ex. WHERE city IN ('seoul', 'pusan', 'jeju') => city가 서울, 부산, 제주일 경우

 

3. BETWEEN

- 컬럼 값이 BETWEEN ~ AND 범위값 안에 들 경우

(ex. WHERE a BETWEEN 80 AND 90) => 컬럼 a의 범위값이 80이상 90 이하의 경우

 

4. IS NULL

- 컬럼값이 NULL인 경우를 체크하기 위해

- 반대 : IS NOT NULL

 - Java Web Project가 아닌, Java App Project로 작성

 - App propject로 작성하면 프로젝트 폴더 안에 WebContent라는 폴더가 없음 (Web과 App을 구분하는 기준)

 

 

* Web Project : Java EE에서 작성 (jsp 有)

* App Project : Java에서 작성

 

 

Project1의 구조는 package를 통해 com.dao / com.main / com.mybatis / com.vo 로 나눴으며

 

 

 

프로젝트 > Build Path > Configure Build Path > Libraries > Add JARs 를 이용하여 타 프로젝트에 있었던 mybatis와 mysql.jar를 추가하였음

 

1. com.mybatis 패키지 내 파일 작성

 

 

 

2. com.vo 패키지 내 파일 작성

 

 

'Framework > Spring' 카테고리의 다른 글

MyBatis :: selectList와 selectOne  (3) 2016.02.15
MyBatis :: ConnectionFactory  (0) 2016.01.19
MyBatis :: 동적 sql (=쿼리)  (0) 2016.01.19
JDBC :: 메뉴얼  (0) 2016.01.15
MyBatis란?  (0) 2016.01.13

 

 

 

폴더들을 정리한 후 다시 공부를 하려 하는데 갑자기 모든 프로젝트 파일들 옆에 빨간색 느낌표들이 떴다.

JAVA7 파일 일부를 날려먹었다. 처음에는 왜 폴더 옆에 빨간색 느낌표가 떴는지도 이해하지 못했으나 구글링을 해보고 나서 라이브러리 문제라는 것을 파악했다.

 

 

 

JRE 라이브러리의 일부가 삭제된 것. 멘붕.

자바 책을 펼치고 꼼꼼히 읽어보았다.

 

* JRE (Java Runtime Environment) : 대부분의 컴퓨터에 설치되어 있음

                JRE만 따로 다운로드 가능

                bin 디렉터리 밑에 자바 클래스 파일을 해석하고 실행하는데 필요한 소프트웨어를 두고, lib 밑에는 호출하여 실행할 수 있도록 컴파틸 한 자바 API 라이브러리를 두고 있음

 

* Java API : 오라클사에서 제공하는 것으로 주요한 기능들을 미리 구현할 클래스 라이브러리로 묶어놓은 패키지

      개발자는 자바 API로부터 필요한 클래스가 속한 패키지만 import하여 사용하면 됨

 

 

그리하여, 오라클 사이트에 들어가서 (http://www.oracle.com/) Downloads > Java for Developers > Jave SE

화면에서

 

 

스크롤을 맨 아래로 내리고 나서 Java Archive 다운로드 버튼 클릭

 

 

 

나는 Java 7 버젼이었으니 Java SE 7 다운로드를 했다.

 

 

 

JRE 폴더의 파일들을 copy & paste 하고 이클립스를 refresh 해보니 다시 정상적으로 폴더 옆의 빨간색 느낌표가 사라졌다.

또한 [제어판] - [시스템] - [PATH] 에서 경로를 다시 설정해줘야 한다.

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

Java :: JDK와 JRE  (0) 2016.01.20
Java :: 이클립스 없이 cmd 창으로 컴파일 하기  (2) 2016.01.20
Maven :: 정의  (0) 2016.01.15
JAVA :: 명명 관례  (0) 2016.01.15
Java 컴파일 & jar 만들기 & Java 실행  (0) 2016.01.15

maven.zip

 

1. 정의

- 프로젝트 관리 도구

- 여러 프로젝트에서 공통으로 사용하는 라이브러리 프로젝트를 만들어서 참조

 

 

2. 목적

- 개발자가 짧은 기간에 개발의 전체 상태를 이해할 수 있도록 함

 

 

3. 장점

- 뛰어난 의존성 관리 (저장소를 통한 라이브러리 일괄 관리)

- 쉽게 작성 가능한 플러그인을 통한 확장성

- 동시에 다수 프로젝트를 핸들링할 수 있는 쉬운 설정 기반의 매커니즘

- 간단한 설정을 통한 배포 관리

- Java, C++ 등 다수의 프로그래밍 언어를 지원

 

 

4. 단점

- 모든 내용이 pom.xml 파일에 담기므로 내용이 장황해질 수 있음

- Maven 프로젝트 특성상 소프트웨어 빌드에 통용되는 라이프사이클을 제공하고, 세부 분야나 특화된 빌드 환경에 대한 지원이 미약

 

 

5. 기능

- 라이브러리 관리 기능 (이클립스에 기본 탑재)

- 빌드 기능

 

* Maven 예시 참고 페이지 : http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

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

Java :: 이클립스 없이 cmd 창으로 컴파일 하기  (2) 2016.01.20
JAVA :: JRE 오류  (0) 2016.01.15
JAVA :: 명명 관례  (0) 2016.01.15
Java 컴파일 & jar 만들기 & Java 실행  (0) 2016.01.15
Java :: log4sql 과 log4jdbc  (0) 2016.01.14

1. 클래스명은 반드시 대문자

- MyClass (o), myclass(x), myClass(x)

 

 

2. 패키지를 표현하는 이름은 모두 소문자

- com.daybyday (o)

- 반드시 도메인 이름으로 소문자를 사용해야 함

- 충돌 방지를 위해 패키지명은 보통 도메인 역순으로 함

  (도메인이 www.myhouse.com 이면 패키지명은 com.myhouse)

 

 

3. 변수 이름은 반드시 소문자로 시작하고 카멜(낙타)명명법 이용

- 카멜 (낙타)처럼 중간에 혹이 볼록(凸)하게, 두 단어 연결시 중간 단어 앞글자만 대문자 작성

            (Account account (o))                                    (evenHandler(o))

 

 

4. 일반적인 변수의 이름은 타입의 이름과 동일하게 지정

- public void setTopic(Topic topic) => (o)

- 코드의 복잡도를 줄여줌

- 변수 이름만으로 타입을 손쉽게 유추 가능하게 해줌

 

 

5. 넓은 범위에 영향을 미치는 변수 : 긴 이름 / 좁은 범위 변수 : 짧은 이름

- 임시 저장 공간이나 인덱스로 사용되는 변수 : 짧은 이름

 

 

6. 메소드 이름은 반드시 소문자로 시작, 카멜 (낙타) 명명법 이용

- getName (o), computeTotalWidth (o)

- 메소드와 변수 구분을 위해 변수는 명사 단어, 메소드는 동사 단어

 

 

7. 타입을 표현하는 이름은 대소문자를 혼용할 수 있지만, 반드시 명사를 사용하고 시작 글자를 대문자로 지정

- Account (o), EvenHandler (o)

 

 

8. 상수를 표현하는 (final) 이름은 반드시 모두 대문자로 지정하되, '_'를 사용하여 단어 구분

- MAX_ITERATORS (o), COLOR_RED (o)

- 자바의 일반적 관습

- 하지만 대다수는 상수 변수를 메소드로 구현하는게 더 나음

   (  public int getMaxIterations() {

return 25;

} (o)

      보다 읽기 편하고 클래스 값을 참조하는 일관된 인터페이스를 제공

 

 

9. 축약형과 두문자어형을 이름에 사용할 경우 전부 대문자로 지정하지 않음

- exportHtmlSource(); (o), openDudPlayer(); (o)

- 모두 대문자로 지칭시 상수에 대한 명명 지침과 충돌 간으성 있음

- 가독성 저하

 

 

10. private 접근 제한자를 갖는 클래스 변수에 '_' 접미사 사용

- class well {

private int depth_;

  } (o)

- 로컬 변수와 private 접근 제한자가 갖는 클래스 변수를 쉽게 구별 가능

- 부가적으로 setter 메소드에서의 이름 충돌 문제를 해결해줌

 

* 자바 예약어 : 기능이 이미 정해져 있는 키워드들 

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

JAVA :: JRE 오류  (0) 2016.01.15
Maven :: 정의  (0) 2016.01.15
Java 컴파일 & jar 만들기 & Java 실행  (0) 2016.01.15
Java :: log4sql 과 log4jdbc  (0) 2016.01.14
CRUD 구조  (0) 2016.01.13

+ Recent posts