Programming Language 147

[Javascript] 동등 연산자 ==

동등 연산자 == ==는 동등 연산자(Equality)다. 동등 연산자는 두 개의 피연산자가 동일한지 확인하며, Boolean값을 반환한다. (1) 타입 변환 없이 비교 1) String : 두 피연산자의 문자 순서와 문자열이 동일 ▷ true를 반환 2) Number : 두 피연산자의 값이 동일 ▷ true를 반환. +0과 -0은 동일한 값으로 취급. 어느 한쪽이 NaN일 경우 false를 반환 3) Boolean : 두 피연산자가 모두 true이거나 false ▷ true를 반환 1 == 1; // true "ex" == "ex" // true (2) 타입 변환하여 비교 : 두 개의 피연산자의 타입이 다를 경우, 비교하기 전에 동일한 타입으로 변환시킨다. 1) 숫자와 문자열을 비교 ▷ 문자열을 숫자로..

[MyBatis/Error] A query was run and no Result Maps were found for the Mapped Statement

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the Mapped Statement '###mapper'. It's likely that neither a Result Type nor a Result Map was specified. 해당 오류는 mapper에서 mybatis 부분의 resultType을 올바르게 작성하지 않아서 발생하는 것이다. resultType을 바르게 작성하면 오류가 사라진다. 나의 경우 resultType을 적지 않아서 해당 오류가 발생하였다.

[Java/Error] org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class []

이클립스에서 게시판을 만들다가 서버가 좀 꼬인 듯해서 Server clean이랑 Project clean, Maven clean을 했다. 그러고 실행시키니까 Bean Class를 찾지 못한다는 오류가 떴다. org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [] 구글링해서 나오는 여러 방법들을 시도해봤지만 오류가 사라지지 않았다. 그러다 다시 Project Clean을 해야되나 싶어서 Project Clean을 했더니 제대로 작동이 됐다. 어이가 없었지만 큰 문제가 아니었어서 다행이었다.

[Java] Scanner와 BufferedReader

◆ Scanner : 입력받을 때 정수값과 소수값, 문자데이터를 구분지어 읽어들인다. - 장점: 직관적이며 사용하기 편리하다. - 단점: 키보드의 키를 입력하는 즉시 바로 전달되어 BuffredReader보다 속도가 느리다. ◆ BufferedReader : 입력받을 때 그 값을 8,192 char(16,384 byte) 크기의 버퍼에 담아놓았다가 한번에 전달한다. - 개행문자만 경계로 인식하고, 입력된 데이터의 형식은 String으로 고정되므로 데이터를 따로 가공해야 한다. cf. Scanner: 띄어쓰기와 개행문자를 기준으로 입력값을 인식하므로 데이터를 따로 가공할 필요 없다. - BufferedReader를 사용할 땐 무조건 예외 처리를 해야 한다. (try ~ catch문 또는 throws IOE..

[MyBatis] Mapped Statements collection does not contain value for 에러

java.lang.IllegalArgumentException: Mapped Statementscollection does not contain value for 해당 에러는 이럴 때 발생한다. 1. mapper id가 다를 경우 : mapper 파일에서 구문의 id 값과 Dao/Service에서 접근하는 id값이 다를 때 발생할 수 있다. 2. Parameter와 bean의 필드명이 틀릴 경우 3. mapper 파일에 정의된 namespace와 Dao/Service에서 호출하는 namespace가 다를 경우 4. mybatis-config 파일에 mapper가 정의되어 있지 않거나 스펠링이 틀릴 경우 5. mapper에 정의된 namespace 명칭이 같은 application 내에 중복될 경우 출처:..

[MyBatis] mapper.xml

select 구문 insert 구문 mapper [DML문일 경우] (, 도 동일하다.) - parameterType 속성: 전달받을 값이 없으면 생략 가능하다. - 는 resultType 또는 resultMap으로 결과값에 대한 타입을 반드시 지정해야 한다. - 실행 결과가 처리된 행의 개수(int 타입)이기 때문에 resultType/resultMap에 대한 속성이 필요하지 않다. - 기존에 사용하던 위치홀더가 아니라 #{필드명/변수명/map의값}으로 작성한다. resultMap ResultSet으로부터 조회된 컬럼값을 하나씩 뽑아 지정한 VO 객체에 각 필드를 담는 JDBC 코드를 줄여준다. ex) member.setMemberId(rset.getString("MEMBER_ID")); . .

[MyBatis] EncodingFilter

encodingFilter는 기존 servlet에서 request.setChracterEncoding("UTF-8");를 매번 작성해서 인코딩을 거쳐야 하는 불편함을 없애기 위해 필요하다. common 폴더에 filter 폴더를 만든 후 해당 폴더에 EncodingFilter 파일을 생성한다. @WebFilter("") - 전체에 대해 필터를 할 땐 /* 를 작성한다. - 확장자를 정해서 필터를 할 땐 *.확장자(ex. *.me)를 작성한다. - 개별적으로 필터를 할 땐 매핑 주소(ex. example.ex 또는 /example.jsp)를 작성한다.

[MyBatis] mybatis-config.xml

이 문서의 가장 위에 이 구문을 추가한다. 더보기 http://mybatis.org/dtd/mybatis-3-config.dtd"> - DTD: 이 문서 내에 있는 태그들이 configuration 태그 안에 있어도 되는지 유효성을 체크해주는 구문이다. [기본 설정] 더보기 configuration mybatis-config.xml 문서의 형식은 configuration, 즉 환경 설정이라는 것을 뜻한다. 이때 configuration 태그가 전체를 감싼다. settings mybatis를 구동했을 때 선언할 설정들을 작성하는 태그 영역이다. : 데이터가 null로 전달되었을 땐 빈 칸이 아니라 NULL로 인식한다. 그리고 이 NULL은 무조건 대문자로 작성해야 한다. typeAliases VO/DTO ..

[MyBatis] 라이브러리

프로젝트를 생성하면 src 폴더 외에 webapp 폴더도 생성된다. 이 webapp 폴더 하의 WEB-INF 폴더에다 lib 폴더(library의 약자)를 생성한다. 그 다음 lib 폴더에는 위 사진의 jar 파일들을 넣는다. 1. mybatis-3.5.10.jar : mybatis를 사용하기 위함 2. ojdbc6.jar : Oracle 10g 기준 3. taglibs-standard-compat-1.2.5.jar : jstl을 사용하기 위함(아래 4~6번도 동일) 4. taglibs-standard-impl-1.2.5.jar 5. taglibs-standard-jstlel-1.2.5.jar 6. taglibs-standard-spec-1.2.5.jar 라이브러리에 해당 파일이 없으면 제대로 실행되지 ..