728x90
반응형
디버깅이란 프로그램을 개발하고 나서 외부 릴리즈하기 전 미처 발견하지 못했거나 또는
 
프로그램이 외부에 릴리즈 된 이후 발견된 버그를 수정하는 과정을 통하여
 
프로그램의 완성도를 높이는 일련의 작업입니다.
 
USB 디버깅이란 스마트 디바이스와 PC를 연결하여 스마트 디바이스상에서 어플리케이션을 구동시켜
 
버그를 찾고, 버그가 발견되었을 때에는 PC에서 바로 수정하는 것 입니다.
 
예를 들어 모바일과 비교하였을 때, PC는 모바일 어플리케이션이 구동하기 불리한 환경이며,
 
PC와 비교하였을 때, 모바일은 어플리케이션을 개발하고 수정하기에 불리한 환경입니다.
 
그렇기 때문에 USB 디버깅 기능을 이용하여 PC와 스마트폰의 장점들 만을 결합하여
 
버그를 찾고 수정하는 것이며,이를 통하여 모바일 어플리케이션의 버그를 좀 더 효율적으로
 
수정 할 수 있는 것 입니다.


728x90
반응형
728x90
반응형

replaceFirst() / replaceAll() 메소드(함수)로 문자열을 치환할 때, 대소문자 구분없이 바꾸려면

정규식의 앞 부분에 (?i) 라는 옵션을 넣어주면 됩니다. 물음표+소문자i(아이)입니다.


String s  = "Abc abC ABC abc"; // 원본 문자열
    String s2;


s2 = s.replaceFirst("(?i)abc", "ZZZ");
    System.out.println("치환(1): " + s2);

>> ZZZ abC ABC abc

    s2 = s.replaceAll("(?i)abc", "ZZZ");
    System.out.println("치환(2): " + s2);


>> ZZZ ZZZ ZZZ ZZZ

728x90
반응형

'Web Programming > java-jsp' 카테고리의 다른 글

DWR 사용시 Session 값 얻기  (0) 2015.04.07
USB 디버깅 ?  (0) 2015.04.06
myBatis 에서 #{value} 와 ${value} 차이  (0) 2015.04.06
Mybatis #와 $의 차이점  (0) 2015.04.06
<![CDATA[<]]>  (0) 2014.07.08
728x90
반응형

1.#{value} 
변수 이고 실제 쿼리에서 '(호따움표)가 붙습니다. 
PreparedStatement 에서 ? 에 들어갈 값입니다. 

ex) 
select * from board where id=#{id} 
이렇게 되어 있다면 
myBatis 내부적으론 
<code> 
String sql = "select * from board where id = ?" 
PreparedStatement ps = .... 


ps.setString(1,id) 
</code> 


2.${value} 
상수 이고 '(호따움표)가 붙지 않습니다. (sql 인젝션 위험이 있음) 
sql 문장을 만듭니다. 
동적 테이블,컬럼에도 사용됩니다. 
${myColumn} = #{value}이런식도 가능합니다. 

select * from board where id='${id}' 
이렇게 되어 있다면 
myBatis 내부적으론 

<code> 
String sql = "select * from board where id = 'aaa'"//sql자체를 만듬 
PreparedStatement .. 


</code> 

728x90
반응형

'Web Programming > java-jsp' 카테고리의 다른 글

USB 디버깅 ?  (0) 2015.04.06
java 대소문자 구분없이 문자열 바꾸기 - (?i)  (0) 2015.04.06
Mybatis #와 $의 차이점  (0) 2015.04.06
<![CDATA[<]]>  (0) 2014.07.08
display:block 테이블깨짐현상  (2) 2014.06.30
728x90
반응형


1. #는 쿼리가 수행될 때, 다음과 같이 된다 

SELECT * FROM USER 

WHERE 
col = ?  


parameter : [값]


?에 bind된 값이 들어가게 된다. 

이 쿼리 컴파일 된 내용을 재사용 할 수 있고, 파라미터에 따라 대입해주므로 효율적이다.
내부적으로 preparedStatement 객체에서 ? 에 들어갈 파라미터의 값을 set 해줌으로써 사용이 된다.
 
preparedStatement는 한번 수행한 쿼리를 캐싱하는 객체


사용 용도 >>

#일 경우, 에 사용한다.

myBatis : 컬럼명 = #{값}   
iBatis : 컬럼명 = #값#

* 쿼리에 작은 따옴표가 붙게 된다.


2. $는 쿼리가 수행될 때, 다음과 같이 된다

SELECT * FROM USER
WHERE 
col = 



값이 넣어진 쿼리 자체로 수행이 된다.(상수)
즉, 문장 전체가 preparedStatement가 된다.

사용 용도 >>

$일 경우는 컬럼명이 동적으로 바뀌어야 할 때 사용한다. 또는 테이블명.

myBatis : ${컬럼명} = #{값}   
iBatis : $컬럼명$ = #{값}

* 쿼리에 작은따옴표가 붙지 않는다. 
값에 $를 사용하면 스트링의 경우 작은따옴표로 감싸지지 않기 때문에 에러 발생한다.


이렇게 사용하지 않으면 unknown column 이나 There is no readable property named  등등의 에러가 뜨게 된다


728x90
반응형
728x90
반응형

<![CDATA[<]]>

 

iBatis에서 쿼리안에 비교 연산자가 포함되어 있을 때

 xml 에서 < 와 > 의 개행문자에 대한 처리시 오류방지를 하기 위해서 사용한다.

 

쿼리문을 <![CDATA[<]]> 로 감싸면 dynamic 쿼리는 따로 빼서 써야한다.

 

비교연산자만 썻을경우

mapper 의  markup 오류가 발생하여 런타임시 오류가 발생한다.

728x90
반응형

+ Recent posts