반응형

오류 : The type List is not generic; it cannot be parameterized with arguments 

 

위와 같이 리스트에 제네릭을 사용할 때 발생하는 오류 중 하나이다.

 


오류

import java.awt.List;

 

public List<MemberDTO> getMemberName(String name);


해결

import java.util.List; 

 

public List<MemberDTO> getMemberName(String name);


원인

패키지(클래스)를 불러올 때,

import java.awt.List; 가 아니라

import java.util.List; 로 불러와야 합니다.

 

awt - 패키지는 드롭 다운 목록 GUI 요소를 만드는 데 사용되는 클래스입니다.

util - 패키지는 일반적으로 사용되는 컬렉션 인터페이스입니다.

 

 

 

 

 

 

 

반응형
반응형

문법 예시

<select id="getMember" resultType="string">

  SELECT * FROM member

</select>

 

<select id="getDept" resultType="hashmap">

  SELECT name, Dept FROM dept

</select>


사용 가능 타입

 

별칭(Alias) 데이터 타입(Data Type)
string String
date Date
map Map
hashmap HashMap
list List
arraylist ArrayList
decimal BigDecimal
bigdecimal BigDecimal
biginteger BigInteger
_byte byte
_long long
_short _short
_int int
_integer int
_double double
_float float
_boolean boolean
_byte[] byte[]
_long[] long[]
_short[] short[]
_int[] int[]
_integer[] int[]
_double[] double[]
_float[] float[]
_boolean[] boolean[]
byte Byte
long Long
short Short
int Integer
integer Integer
double Double
float Float
boolean Boolean
byte[] Byte[]
long[] Long[]
short[] Short[]
int[] Integer[]
integer[] Integer[]
double[] Double[]
float[] Float[]
boolean[] Boolean[]
object Object
date[] Date[]
decimal[] BigDecimal[]
bigdecimal[] BigDecimal[]
biginteger[] BigInteger[]
object[] Object[]
collection Collection
iterator Iterator
ResultSet ResultSet

※ 주의 : 원시형의 경우 (_)를 앞에 붙인다. 붙이지 않는 경우 *래퍼(Wrapper) 클래스로 변환된다.

 

 

 

 

 

 

 

 

 

 

 

 

반응형
반응형

 

 

TimeMapper 인터페이스

package org.zerock.mapper;

 

public interface TimeMapper {     

      public String selectMethod();

}


TimeMapper XML 파일

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper

  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace = "org.zerock.mapper.TimeMapper">

 

      <select id = "selectMethod" resultType="string">

      SELECT sysdate FROM dual

      </select>

 

</mapper>

 


설명

빨간색 코드 : TimeMapper 인터페이스의 경로 + TimeMapper 인터페이스의 이름 (TimeMapper)

                  <mapper namespace = "인터페이스의 경로 + 인터페이스 이름">

더보기

 

예시) test.son.code 경로 아래 TimeMapper (인터페이스)가 있으면 

     <mapper namespace = "test.son.code.TimeMapper"> 로 작성

초록색 코드 : 인터페이스에 작성한 메소드 이름은 XML mapper 파일의

                  CRUD 태그 안에 id 값이랑 동일해야 한다.

더보기

 

예시 1) 인터페이스에 selectMemberName() 이라는 메소드가 있으면, mapper XML 파일에는

          <select id = "selectMemberName" ... > 이라고 인터페이스의 메소드명과 일치해야 된다.

 

예시 2) updateMemberName() 메소드가 있으면, mapper XML 파일에는

          <update id = "updateMemberName" ... > 이라고 인터페이스의 메소드명과 일치해야 된다.

파란색 코드 : 인터페이스 안에 해당 메소드의 리턴 타입(int, String.. 등)

                  mapper 파일의 resultType 이 같아야 한다.

더보기

 

예시 1) public MemberDTO getMemberName(); / MemberDTO 객체를 리턴하는 하는 메소드가 존재

          <select id = "getMemberName" resultType = "MemberDTO"> - (mapper xml 파일이다.)

 

예시 2) public int getMemberAge();

          <select id = "getMemberAge" resultType = "int">

 


 

인터페이스 파일의 경로 + 인터페이스 이름 -> namespace 명과 같아야 함. 

메소드 이름 -> id 값과 같아야 함.

메소드 리턴 타입 -> resultType 과 같아야 함.

 

 

 

 

 

 

 

 

 

 

반응형
반응형

HTTP 상태 메세지 의미


100 : Continue - 서버가 요청 헤더를 받았으며, 클라이언트는 요청 본문을 계속해서 전송.

 

101 : Switching protocols - 요청자가 서버에 프로토콜 전환을 요청.

 

103 : Checkpoint - 중단된 PUT 또는 POST 요청을 재개하는 데 사용 가능한 요청 제안에 사용.


200 : OK - 에러없이 전송 성공.


201 : Created - 요청이 이행되었으며 새로운 리소스가 생성.


202 : Accepted - 수락 요청이 처리 위해 승인되었지만, 처리가 완료 안 됨.


203 : Non-authoritative information - 요청이 성공적으로 처리되었지만, 다른 소스에서 온 정보를 반환.


204 : No content - 요청이 성공적으로 처리되었지만, 어떤 콘텐츠도 반환 안 함.


205 : Reset content - 요청이 성공적으로 처리되었지만 내용 반환 않으며, 요청자에게 문서보기

                             재설정 요구.


206 : Partial content - 클라이언트가 보낸 범위 헤더로 인해 서버가 리소스의 일부만 전송하는 경우

 


300 : Multiple choices - 링크 목록. 사용자는 링크를 선택하고 해당 위치로 이동 가능. 최대 5 개까지 가능


301 : Moved permanently - 요청페이지가 새 URL 주소로 영구적으로 이동됨.


302 : Moved temporarily - 요청페이지가 새 URL 주소로 일시적으로 이동됨.


303 : See other - 요청페이지를 다른 URL에서 찾을 수 있음.


304 : Not modified - 요청페이지가 마지막으로 요청 이후 수정된 적 없음.


305 : Use proxy (프록시 사용)

 

306 : Switch Proxy - 더 이상 사용 안 함.


307 : Temporary Redirect - 요청페이지가 일시적으로 새 URL 주소로 이동.

 

308 : Resume Incomplete - 재개 중단된 PUT 또는 POST 요청을 재개하기 위한 제안서에 사용.


400 : Bad request - 클라이언트의 잘못된 구문으로 처리 불가. 

 

401 : Unauthorized - 요청이 정당하나 서버가 이에 대한 응답 거부 중. (요청자에 대한 인증 실패)

 

402 : Payment required - 나중 사용 위해 예약됨.


403 : Forbidden - 요청은 정당하나, 서버가 응답 거부. (= 접근거부된 문서를 요청) 


404 : Not found - 현재는 요청한 페이지를 찾을 수 없지만, 나중엔 사용 가능할지도 모름.


405 : Method not allowed - 해당 페이지에서 지원 않는 요청 방법 사용해 페이지 요청. 


406 : Not acceptable - 서버는 클라이언트가 수락하지 않는 응답만 생성 가능. 


407 : Proxy authentication required - 프록시 인증 필요. 


408 : Request timeout - 서버가 요청 대기 시간을 초과.


409 : Conflict - 요청이 충돌하여 요청 처리 완료 불가.


410 : Gone - 요청 페이지를 더 이상 사용 불가.


411 : Length required - "Content-Length (콘텐츠 길이)" 정의 안 된 요청이라, 서버가 요청 수락 거부.


412 : Precondition failed - 요청에 필요한 사전 조건이 서버에 의해 false로 평가됨.


413 : Request entity too large - 요청 크기가 너무 커서 서버 수락 불가.


414 : Request-URI too long - 요청 URL 길이가 너무 길어 서버 수락 불가. (예: post방식을 get방식 전환) 


415 : Unsupported media type  - 지원 않는 미디어유형에 대한 요청이라서 서버 수락 불가. 

 

416 : Requested Range Not Satisfiable- 파일의 일부 요청에 대해, 서버가 그 부분을 제공 불가.

 

417 : Expectation Failed - 서버가 예상 요청 헤더 필드의 요청사항을 충족할 수 없음.

 


500 : Internal server error - 내부적 서버 오류 (스크립트 오류로 인한, 일반적인 에러 메세지) 


501 : Not implemented - 서버가 수행할 수 없는 방법으로 요청하거나, 그 요청을 처리할 능력 없음.


502 : Bad gateway - 서버가 게이트웨이/프록시 역할 중인데, 처리 서버로부터 잘못된 요청 받음. 


503 : Service unavailable - 서버 현재 사용 불가 (과도한 데이터요청으로 서버 다운 상태)


504 : Gateway timeout - 처리서버로부터 제때 처리결과 못 받음.

                                (해결책: Ctrl + F5 새로고침 / 나중 재접속)


505 : HTTP version not supported - 서버가 요청에 사용된 HTTP 프로토콜 버전 지원 안 함.

 

511 : Network Authentication Required - 요청차가 네트워크 접속에 필요한 인증 받아야 함.

반응형
반응형

기존에 설치한 JDK 8 버전을 JDK 13 버전으로

업그레이드 하려고 했는데 문제가 발생했다...

 

cmd 창에서 javac -version은 13으로 나오는데

java -version은 1.8(8)으로 잡혀있다.

 

결론부터 말하자면 Oracle db Path 보다 JDK 경로가 뒤에

기술되어 있으면 시스템에서 JDK 보다 Oracle db 경로를 

먼저 잡아주는거 같습니다.

 

바로 문제 해결해봅시다

GoGo


java / javac 버전차이 예시

보시면 javac.exe 버전은 13.0.2로 나오고 

java.exe 버전은 1.8.0_241로 나옵니다... 이게 몬일인고

 

 

 

설명1

내 PC 우클릭 -> 속성

 

 

설명2

고급 시스템 설정 클릭

 

 

 

설명3

환경변수 클릭

 

 

 

환경변수 확인_1

시스템 변수 쪽 -> JAVA_HOME 설정이 JDK13 설치한 폴더 경로를 바라보는지 확인

 

 

 

환경변수 경로 확인

시스템 변수쪽 -> Path -> 편집

 

 

 

 

경로

저는 Oracle DB를 D 드라이브에 설치해서 D: 로 시작합니다.

 

보시면 D:\app\사용자이름\product\11.2.0\dbhome_3\bin; 으로  

JDK 경로보다 먼저 앞에 기술되어 있는 걸 확인할 수 있습니다.

 

 

 

경로2

저는 JDK13C드라이브에 압축해제 했으므로 D: 로 시작하는 앞단에 작성했습니다.

%JAVA_HOME%\bin;....dbhome_3.... 보다 앞에 작성해주시면 됩니다.

 

 

 

확인

javac 버전이랑 java 버전이랑 일치하는 걸 볼 수 있습니다.

 

해결 완료!


원래 JDK 에는 JRE, JVM이 포함되는데 

기존에 있던 JDK 8 버전 폴더에 들어가면 jre 1.8 폴더가 존재한다.

 

하지만 JDK 11 버전부터 jre 가 포함되어 따로 표시되지 않는다네요.

 

Java Runtime Exception(jre) 가 설치 안된 줄 알고 

삽질했다는... ㅠ.ㅠ

 

반응형
반응형

JDK란?

- 자바 개발 키트(Java Development Kit, JDK)는 JAVA SE, JAVA EE, 또는 모바일 지원 JAVA ME 플랫폼 중 하나를 구현한 것으로 솔라리스, 리눅스, 맥 OS X, 윈도우 자바 개발자를 대상으로 오라클에 의해 바이너리 제품으로 제공된다.

즉, 자바로 개발하려면 JDK를 설치해야 한다

 


노트북 SSD 교체로 기존에 있던 개발 툴과 모든 것들이 날아갔기 때문에 

오늘은 JDK 1.8 설치 및 환경변수 설정하는 방법을 작성해보려 합니다.

 

각설하고 바로 GoGo !!


JDK 다운로드하기(Click)

 

1. JDK 설치

 

Java SE Development Kit 8u241

위에 링크로 넘어가면 다운로드 페이지가 나옵니다

오라클 계정이 있어야 다운로드 가능하니 없으신 분은 하나 생성해주세요

Windows x64 , x86 이 있는데 컴퓨터가 64bit 이면 x64 / 32bit 이면 x86 다운로드해주세요

 

 

체크체크

Java SE Development Kit 8u241를 클릭하면 동의하냐고 창이 하나 뜨는데

어차피 동의 안 하면 다운로드가 안되니 체크하고 다운로드해줍시다

 

 

JDK 파일

jdk_8u241-windows-x64 라는 파일이 하나 생겼을 겁니다

다운로드한 경로로 가서 그림과 같은 파일 클릭

 

 

JDK install_1
JDK install_2
JDK install_3

설치가 끝났습니다

이제 환경 변수를 설정하러 가죠

 


 

2. 환경변수 설정

- 내 PC 

내PC

 

- 속성을 클릭

내PC 속성

- 고급 시스템 설정 클릭

고급 시스템 설정

 

 

 

- 환경 변수를 클릭

환경변수


※ 이제부터 타이핑 잘하셔야 됩니다.

1) JAVA_HOME 추가

- 시스템 변수(S) 밑에 새로 만들기를 클릭

JAVA_HOME_1

변수 이름(N): JAVA_HOME

변수 값(V):    C:\Program Files\Java\jdk1.8.0_241 

- 변수 값에는 JDK 1.8 설치한 경로를 작성해주셔야 됩니다.

 

JAVA_HOME_2

 

 

 

 

- 아래 그림과 같이 JAVA_HOME 이 만들어졌습니다

JAVA_HOME_3

 

 

 

2) PATH 편집

- 시스템 변수에 있는 Path를 선택하고 편집(E)을 클릭

PATH_1

 

변수 값(V): ...\WirelessCommon\ 끝에  ;%JAVA_HOME%\bin 을 작성

반드시 문장끝에(\) -> ; (세미콜론)으로 매듭짓고 %JAVA_HOME%\bin을 작성해주세요

PATH_2

 

 

3) CLASSPATH 추가

- 시스템 변수에 있는 새로 만들기 클릭

CLASSPATH_1

 

 

 

 

 

변수 이름(N): CLASSPATH

변수 값(V):    %JAVA_HOME%\lib

CLASSPATH_2


설정은 끝났으니 환경변수가 제대로 잡혔는지 확인해 봅니다

 

- Cmd 명령 프롬프트를 실행시켜줍니다

javac 확인하기_1

 

 

- 명령어로 javac -version을 입력후 아래와 같이 javac 1.8.0_241 이 출력되면 끝!!!

javac 확인하기_2

 


만약 javac -version 을 입력해도 유요 하지 않는 명령어라고 출력되면

환경 변수 설정할 때 오타가 있는지 확인해주세요 [ JAVA_HOME / PATH / CLASSPATH ]

만약 오타가 없어도 명령어 실행이 안되면 컴퓨터 재부팅해주세요

 

이만 포스팅을 마치겠습니다.  감사합니다 ( _ _ )

 

반응형

+ Recent posts