#NumberformatException #if #문자 #1글자비교  #equals #MyBatis #JAVA #자바

ex 1)
<if test="stringValue == 'Y'">
</if>

ex 2)
<if test="condition.equals('Y')">
</if>


지금처럼 한 글자를 다이나믹쿼리 IF  안에서 비교할 때

java.lang.NumberFormatException: For input string: "Y" 에러 또는

비교가 되지 않을 수 있다. (인식 불가 혹은 오작동 가능성도 있음)
결론적으로 위 현상은 myBatis 문제는 아니고

OGNL(Object Graph Navigation Language) 의 문제이다.

OGNL 인터프리터에서는 위 구문의 'Y' 를 char 형으로 인식하고,
'YY' 나 "Y" 는 String으로 인식한다. (따옴표를 잘보자)
그래서  이와 같은 구문을 비교할 때 
 NumberFormat으로 비교를 시도하여 Exception이 발생한다.
이유는 java의 char형은 실제로 문자의 코드값을 저장하기 때문이다.

그래서 아래와 같은 형변환이 가능하다.

char y = 'Y';
int code = (int)y; // code에는 Y의 코드값인 89가 저장된다

그래서 위와 같은 상황을 피하기 위해서는 다음과 같은 해결책이 존재한다.

1. <if test='stringValue == "Y"'> – 쌍따옴표와 홑따옴표의 위치를 변경

2. <if test="stringValue == &quot;Y&quot;"> – 쌍따옴표를 HTML 코드로 변경

3. <if test="stringValue == 'Y'.toString()"> – toString() 함수를 사용해 String 형으로 변환

4. 함수 생성 (equals 함수를 새로 생성하고 가져다 쓰는 방법 )




http://cofs.tistory.com/97 에서 설명하고 있는
함수를 생성해서
사용방법을 참조하여 equals함수를 재정의

1번과 4번 방법을 추천한다.


출처: https://cofs.tistory.com/96 [CofS]

Posted by 홍반장水 홍반장水

댓글을 달아 주세요

#java #오늘 #일자 #string #format #YYYYMMDD

오늘 날짜를 문자 YYYYMMDD  포맷으로 나오게 하는 방법

import java.util.Calendar;

import java.text.SimpleDateFormat;



public class testToday{

    public static void main(String args[]){

        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

        Calendar c1 = Calendar.getInstance();

	 String strToday = sdf.format(c1.getTime());



        System.out.println("Today=" + strToday);

    }

}
Posted by 홍반장水 홍반장水

댓글을 달아 주세요

자바-JSP-Spring 강좌

https://www.youtube.com/playlist?list=PLieE0qnqO2kTyzAlsvxzoulHVISvO8zA9

 

자바-JSP-Spring 강좌 - YouTube

 

www.youtube.com

 

Posted by 홍반장水 홍반장水

댓글을 달아 주세요

우당도서관에 희망도서 신청 ㅎㅎ 


(전자정부 SW개발·운영자를 위한) 소프트웨어 개발보안 가이드
JPA 프로그래밍 = Java Persistence API : 스프링 데이터 예제 프로젝트로 배우는 전자정부 표준 데이터베이스 프레임 워크
(Spring, Hibernate, MyBatis를 활용한) All-in-one Java 애플리케이션 개발 : 전자정부 표준 프레임워크 핵심 기술 기반

정부관련 개발 프로젝트에 도움이 됩니다. 

Posted by 홍반장水 홍반장水

댓글을 달아 주세요

path

 

WindowsWindows 10 및 Windows 8

  1. [검색]에서 시스템(제어판)을 검색하여 선택합니다.
  2. 고급 시스템 설정 링크를 누릅니다.
  3. 환경 변수를 누릅니다. 시스템 변수 섹션에서 PATH 환경 변수를 찾아 선택합니다. 편집을 누릅니다. PATH 환경 변수가 존재하지 않을 경우 새로 만들기를 누릅니다.
  4. 시스템 변수 편집(또는 새 시스템 변수) 창에서 PATH 환경 변수의 값을 지정합니다. 확인을 누릅니다. 확인을 눌러 나머지 창을 모두 닫습니다.
  5. 명령 프롬프트 창을 다시 열고 Java 코드를 실행합니다.
Posted by 홍반장水 홍반장水

댓글을 달아 주세요

[python] Python vs Java @ PyCon Korea 2017

 

https://www.pycon.kr/2017/program/175

 

 

자바 개발자가 파이썬 개발을 배우면서 실무에 활용하고 집필을 하면서 겪었던 경험담 및 생각을 코드와 함께 풀어본다. 자바에 익숙한 사람이 파이썬을 배우고 있거나, 자바와 파이썬의 사이에서 고민을 했던 사람들에게 비교를 위한 기본 정보를 제공한다. 더 나아가 컴파일 언어와 스크립트 언어의 차이점, 개발 생산성을 측정할때 간과하는 컴파일 시간 및 순수 코딩 시간에 대한 통찰을 이끌 생각이다.

 

...

Posted by 홍반장水 홍반장水

댓글을 달아 주세요

[마소연재] 자바카페와 함께하는 웹 기초 강좌

 

1회 : 2012.09 | 자바 서블릿으로 알아보는 웹 프로그래밍

2회 : 2012.10 | JSP(Java Server Page) 활용하기

3회 : 2012.11 | MVC 패턴의 구현 원리

4회 : 2012.12 | Sping MVC 활용하기

 

Posted by 홍반장水 홍반장水

댓글을 달아 주세요