기본 콘텐츠로 건너뛰기

2020의 게시물 표시

마이바티스 String == 처리 오류 NumberformatException

마이바티스 NumberformatException 마이바티스로 String값을 확인해서 if나 when문을 쓸때 에러가 날때가 있다. <when test= "displayFlag == 'Y'" > AND DISPLAY_CODE IS NULL </when> 이렇게 작은 따옴표와 큰따옴표를 바꾸면 잘 작동한다. <when test= 'displayFlag == "Y"' > AND DISPLAY_CODE IS NULL </when> 더 알아보니 출처 : https://t-ara72.blogspot.com/2013/10/mybatis-numberformatexception.html?showComment=1545889276428#c654979576124699365 분명 문자열 비교 구문인데  NumberFormatException 이 발생하는 상황이다. 결론적으로 위 현상은 myBatis 문제는 아니고  OGNL (Object Graph Navigation Language) 의 문제이다. OGNL 인터프리터에서는 위 구문의  ‘Y’ 를  char  형으로 인식하고,  ‘YY’ 나  “Y” 는  String 으로 인식한다. (따옴표를 잘보자) 그래서  <if test=”stringValue == ‘Y’”>  이와 같은 구문을 비교할 때  NumberFormat으로 비교를 시도하여 Exception이 발생한다. 이유는 java의 char형은 실제로 문자의 코드값을 저장하기 때문이다. 그래서 아래와 같은 형변환이 가능하다. 해결책은 3가지가 있다. 1. <if test=’stringValue == “Y”‘> – 쌍따옴표와 홑따옴표의 위치를 변경 2. <if test=”stringValue == &quot;Y&quot;”> – 쌍따옴표를 HTML 코드로 변경 3. <if test=”stringValue ==

jQuery input태그 공백제거

 제이쿼리를 사용하여 input 태그의 공백을 제거하기 < form :input path ="email" title =" 이메일 주소 " class ="emailCheck" maxlength ="50" /> $ ( '. emailCheck' ). focusout ( function (){ var a = $ ( '. emailCheck' ). val (). replace ( / /gi , '' ) ; $ ( '. emailCheck' ). val (a) ; }) ;

jQuery 체크박스 데이터 관리하기

  jQuery  checkbox   컨트롤   1.   checkbox   checked   여부 : id 인 경우 : $('input: checkbox [ id =" checkbox _id "]'). is (": checked ") ==  true name 인 경우 : $('input: checkbox [ name =" checkbox _name "]'). is (": checked ") ==   true   =>   $('input[ id =" checkbox _id "]') + 옵션 형태로 작성 해도 문제는 없다 Ex)  $('input[ name =" checkbox _name "]'). is (": checked ")   2.  checkbox   전체 갯수 : $('input: checkbox [ name =" checkbox _name "]'). length 3.   checkbox   선택된 갯수 :  $('input: checkbox [ name =" checkbox _name "]: checked '). length * 2,3번은  name  인 경우에만 가능   4.  checkbox   전체 순회 하며 처리(동일한  name 으로 여래개인 경우 전체를 컨트롤 할 수 있다.)  $('input: checkbox [ name =" checkbox _name " ]'). each ( function () {        this . checked   =  true ; // checked   처리        if ( this . checked ){ // checked   처리된 항목의 값             alert( this . value ) ;       

Part4 객체지향 프로그래밍의 기법(12장 ~ 15장)

API : 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 한 인터페이스 String API concat(추가할 문자열) : 문자열을 연결할 때 charAt(위치) : 문자열 중에서 특정한 위치의 글자를 가져오고 싶을 때 String.valueOf() : 모든 기본 자료형을 모두 문자열로 변경 spilit() : 문자열을 특정 토큰으로 분리 문자열과 배열 String str = "한글은" ; char [] arr1 = str. toCharArray (); System. out . println (Arrays. toString (arr1)); Java의 성능 튜닝의 기본 String 대신 StringBuffer/StringBuilder를 이용, String은 immutable이라서 새로 만들어야 하지만 StringBuffer와 StringBuilder은 mutable이 이므로 변경가능함 StringBuilder를 써야 하는 경우 : 루프를 돌면서 문자열의 내용이 계속해서 변경되는 경우, '+'혹은 '+='와 같은 연산이 빈번하고 자주 사용되는 메소드인 경우, if ~ else에 의한 연산에 의해 문자열이 완성되는 경우(주로 SQL 문이나 명령어) 시간 관련 API  System.currentTimeMillis() : 현재 시각 Calendar 함수 선언 방법 2가지 Calendar cal1 = Calendar. getInstance (); Calendar cal2 = new GregorianCalendar(); 데이터를 얻을 때는 get() - 월(month)는 0부터 시작하므로 월-1로 나옴 int year = cal1. get (Calendar. YEAR ); int month = cal1. get (Calendar. MONTH ); int date = cal1. get (Calendar. DATE ); 데이터를 변경할 때는 set() cal2. set (Calendar. YEAR , 2020 ); ca

메이븐으로 라이브러리 인식

 간혹 퍼블릭 jar가 아닌 파일이 있는데 그럴때 쓰면 될듯 <dependency> <groupId> SimpleCryptLib </groupId> <artifactId> SimpleCryptLib </artifactId> <version> 1.1.0 </version> <scope> system </scope> <systemPath> ${basedir}/src/main/webapp/WEB-INF/lib/SimpleCryptLib-1.1.0.jar </systemPath> </dependency> version, scope, systemPath는 꼭 작성해야 한다 groupId, artifactId, version은 암거나 해도 되는거 같음 최근(2021.05.04)스프링 부트    < dependency > < groupId > NiceID </ groupId > < artifactId > NiceID </ artifactId > < version > 1.0 </ version > < scope > system </ scope > < systemPath > ${basedir}/src/main/resources/lib/NiceID.jar </ systemPath > </ dependency > 이걸 추가해주는것도 필요할지도..?? < build > < plugins > < plugin > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-maven-plugi

네이버페이 리뷰 API 연동

네이버 페이 리뷰 API 네이버 측에 문의 하면 sandbox용 인증키를 받습니다. AccessLicense, SecretKey 그리고 받은 파일의 4. WSDL을 열어 주시고 Naver_Pay_API_MallService41_WSDL(sandbox)_20140925파일 압축 풀어주세요 그럼 파일이 BaseType.xsd, CheckoutAPI.wsdl, MallServiceMessage.xsd 세개의 파일이 나옵니다. 네이버페이 리뷰 리스트 가져오는 메소드는 getPurchaseReviewList입니다. BaseType.xsd를 켜신 후 MallID로 검색하면 <xs:complexType name="purchaseReview"> 안쪽의 MallID밑에  <xs:element minOccurs="0" name="PurchaseReviewClassType" type="xs:string"/> 추가해주세요 포토 리뷰를 가져오는 파라미터 값을 보내기 위해서 입니다. <xs:element minOccurs="0" name="Content" type="xs:string"/> 이값도 필요합니다 이미지 경로를 가져오기 위해서 입니다. <xs:complexType name="purchaseReview">     <xs:sequence>       <xs:element minOccurs="0" name="CreateYmdt" type="xs:dateTime"/>       <xs:element minOccurs="0" name="MallID" type="xs:string"/>   <xs:element minOccurs="0" nam

Part3 객체지향 프로그래밍의 기법(10장 ~ 11장)

상속 : 특정 클래스를 구성할 때 기존 클래스의 데이터(속성)와 메소드를 상위(부모) 클래스에서 그대로 물려받아서 중복적인 코드를 줄인다는 장점과, 하나의 변수 타입으로 여러 종류의 객체를 의미하는 추상화 된 방식의 프로그램이 가능하게 하는 객체지향 기법  부모 클래스(Super 클래스) 자식 클래스(Sub 클래스) extends : 상속을 사용하는 문법 WheelMouse m = new Mouse(); 휠마우스의 휠 기능의 정의를 못하므로 에러인가봄 public class MouseTest { public static void main (String[] args){ System. out . println ( "------------" ); Mouse op = new OpticalMouse(); op. clickLeft (); op. clickRight (); } } 결과  --------------------- 광센서로 왼쪽 클릭 광센서로 오른쪽 클릭 실행되는 메소드는 실제 객체의 메소드가 호출 - 변수의 타입이 무엇이든 간에 실제로 움직이는 것은 리모컨(레퍼런스)에 연결된 객체  - 컴파일러는 변수 타입으로 선언된 클래스에 해당하는 메소드가 있는지만 확인  - 실제로 움직이는 것은 연결된 객체  - 만일 실제 객체에 해당 메소드가 없다면 부모 클래스의 정보를 추적해서 실행 오버라이드 : 자식 클랙스에서 부모 클래스의 메소드를 다시 정의 super : 부모 클래스를 부르는 키워드, 부모 클래스에 정의된 생성자를 사용(this로 자식에서 재정의 가능) 다형성 : 상속을 사용하여 하나의 변수 타입으로 여러 가지 종류의 객체를 가리킬 수 있어서 기존 코드를 고치지 않고도 처리할 수 있는 부분이 많아짐 상속의 장점 - 변수의 타입과 실제 객체가 일치하지 않아도 됨, 부모 타입으로 파라미터, 배열을 선언가능 생성자.... 추상 클래스 : 변수의 타입으로만 의미가 있고, 객체로 생성될 가능성이 없는 것은

JAVA

 JAVA 장점  - 다중 스레드를 지원하여 효율적인 멀티 처리 효과를 볼 수 있다.  - 메모리를 할당받아 사용한 후 메모리를 자동으로 제거해줌(가비지 컬렉터) MVC 패턴  - M(model) => 요청처리(DB연동)  - V(view) => HTML생성 표현  - C(controller) => 클라이언트 요청 접수 참조형   - 클래스가 객체화 될때 메모리에 올라가는 객체의 메모리 위치 주소 값 Final  - 데이터 갱신 불가 설정시  - 활용     클래스 앞에 -> 자식클래스 없음, 상속금지     메소드 앞에 -> 오버라이딩 금지     속성, 지역 변수 앞에 -> 갱신 금지 속성 변수 - 객체의 구성성분 지역 변수 - 메소드내의 선언된 변수(휘발성) 클래스 접근 지정자     public - 같은 또는 다른 패키지의 타 클래스에서 수입이 가능하다.     dafault - 같은 패키지의 타 클래스에서만 수입이 가능하다. 클래스 성격 지정자     abstract - 블록이 없는 메소드를 하나 이상 소유한 클래스임을 지정한다.(추상 클래스)     final - 자식 클래스를 가질 수 없는 클래스임을 지정한다. 상속이 불가능한 클래스(종단 클래스) 속성 변수 - 기본형 데이터 또는 참조형(주소값) 데이터를 저장하는 변수다. 메소드안에 선언된 변수는 속성변수가 아니라 지역번수로 메소드 안에서 선언되어 종료시 삭제된다. 속성변수의 접근 지정자     public          같은 패키지 다른패키지 다 호출 가능     protected     다른패키지 타클래스의 메소드에서 호출 불가. 다른 패키지 타 자식 클래스의 메소드에서 속성변수명으로 호출     default         다른 패키지에서 호출 불가능     private          동료 메소드/속성 변수에서 호출 가능 같은 패키지 다른패키지에서 호출 불가 속성변수의 성격 지정자     final          처음에 저장된 데이터는 갱신 불가    

JavaScript

 JavaScript 장점  - 복잡한 환경 설정 없이 HTML 코드 안에서 사용가능  - Client에서 실행되므로 Server부담이 적음  - 변수, 연산자, 조건문, 반복문, 함수, 객체등을 사용하여 프로그래밍 수준으로 쓸 수 있음  - Ajax기술을 사용하여 간접DB연동  - 모바일 분야에서 활용하기 좋음 JavaScript단점  - 소스코드가 노출된다. JavaScript Import 파일명.js <script language= "JavaScript" src= "파일명.js" > < /script> 매개변수  - 함수 호출 시 전달되는 데이터를 저장하는 변수  - 함수 안에서만 사용가능 함수 볼 차례

HTML

 HTML  - HyperText Markup Language 주석  - HTML <!-- 주석문 -->  - CSS /* 주석문 */  - Javascript, Java, JSP /* 주석문 */  // em  - 웹브라우저의 기본 폰트 크기(16px)을 1로 하는 단위  - 소수점 표현도 가능 <marquee>  - 문자나 그림을 움직이게 하는 태그          behavior               scroll : 일정한 방향으로 흐른다.(오른쪽에서 왼쪽으로 계속 흐름)                                       alternate : 문자가 좌우로 왕복                                       slide : 한번 반복 후 화면 끝에서 멈춤(오른쪽에서 와서 왼쪽에서 멈춤)          scrolldelay            스크롤 속도 지정 수치. 클수록 스크롤 속도 느려짐          scrollamount         스크롤 속도 지정 수치. 클수록 속도 커짐          bgcolor                 <marquee>태그가 움직이는 부분에 배경색을 지정한다.          width                     <marquee>태그가 움직이는 부분의 좌우 범위를 지정한다.          height                    <marquee>태그가 움직이는 부분의 위아래 범위를 지정          direction                스크롤 되는 방향을 정해준다. <div>  - static : div태그의 현재 코딩 위치서만 존재함. 이동성이 없기 때문에 top, left, z-index속성은 사용해도 효과가 없다.  - relative : div태그의 현재 코딩 위치를 0, 0으로 기준 삼고 top, left 속성 사용에 따라 div 태그를 위치시킨다. z-index 속성을

Part03 CSS - 02

CSS / 속성 - 배경  background - 요소의 배경을 설정          background-color               배경 색상                                         transparent           background-image              하나 이상의 배경 이미지                none           background-repeat              배경 이미지의 반복                          repeat           background-position          배경 이미지의 위치                            0     0           background-attachment     배경 이미지의 스크롤 여부(특성)     scroll background: 색상 이미지경로 반복 위치 스크롤특성; .box1 { background : red url("../img/image.jpg") no-repeat left top scroll ; } background-color - 요소의 배경 색상을 지정          transparent          투명          transparent background-image - 요소의 배경에 하나 이상의 이미지를 삽입          none               이미지 없음          none          url("경로")      이미지 경로(URL) background-image: url("경로"); .box { background-image : url("../img/image.jpg") ; } .box1 { /* 개별속성 */ background-image : url("../img/image1.jpg") , url("../im