VO에 useYN이라는 변수가 있다. 물론 String형으로 선언된.

이 변수에 'Y'라는 값을 받아와서 query xml에서 조건문으로 비교를 했는데 NumberformatException이 난다면?

당황하지말고...다음과 같이 해본다.





자, 금방 해결되었다.


이는  myBatis 문제는 아니고 OGNL(Object Graph Navigation Language) 의 문제.

OGNL 인터프리터에서는 위 구문의 ‘Y’를 char 형으로 인식하고, ‘YY’나 “Y”는 String으로 인식한다. java의 char형은 실제로 문자의 코드값을 저장하기 때문이라고 한다.

해결책으로는 다음과 같은 방법이 있다.

1. <if test=’stringValue == “Y”‘> – 쌍따옴표와 홑따옴표의 위치를 변경 (이건 헷갈릴거같고)
2. <if test=”stringValue == &quot;Y&quot;”> – 쌍따옴표를 HTML 코드로 변경(이건..음...)
3. <if test=”stringValue == ‘Y’.toString()”> – toString() 함수를 사용해 String 형으로 변환(당첨)

(출처 : http://t-ara72.blogspot.kr/2013/10/mybatis-numberformatexception.html)





어느날 디비접속하는데 저런 에러가 난다면


다음을 수행해준다.


윈도우시작버튼->실행->services.msc->OracleOraHome92CliendCache 시작




mybatis에서 조건문 쓰는 것은 간단하다.

if나 when을 써주면 된다.


if문


when문 


test에 조건내용을 써주면 되는데 연산문은 일반적이다.


==, eq, !=, or, and 뭐 이런식으로 써주면 된다.


그렇다면 반복문은 어떻게 할 것인가?


예를들어 query의 where절에 in을 쓰고 싶다.


회원아이디들을 여러개 조회해와서 그 아이디가 있는 데이터만 가져오고 싶은 것이다.


요런 쿼리가 있다고 치자. 물론 서브쿼리로 간단히 할수 있다


select * from tblEventJoiner where event_no=#{event_no} and userid in (select userid from tblMember where smsyn = 'Y')


그런데 서브쿼리를 썼더니 시간이 너무 많이 걸린다. (물론 저런 간단한 쿼리에서는 걸리지않는다. 조인이 네다섯개 이상 걸린 경우)


프로시져를 짜도 되지만...이게 귀찮다면 다음과 같이 해보자.


1. 우선 SMS수신동의자 회원을 가져온다. (query.xml)


2. DAO부분에서 이 리스트를 받아 다시 query를 조회한다. (eventDAO.java)


3. 다시 query.xml로 돌아가서 받아온 회원아이디 리스트로 where절에 in을 넣어보자




- The END -

기본 환경은 Weblogic, Apache, Oracle, Spring, Mybatis이다.


오라클은 원래 쓰고 있었는데 MS-SQL을 연결할 일이 생겼다.


A. 우선 웹로직에 데이터 소스를 만든다.

1. 서비스>데이터소스>새로만들기

2.  드라이버클래스 이름은 weblogic.jdbc.sqlserver.SQLServerDriver

3. 나머지는 적당히...


B. 라이브러리에 sqljdbc4.jar를 추가한다. (자세한 것은 나중에 추가한다. 오래전에해서 기억이 잘...)


C. DB연결정보 셋팅

DB.Mssql.DriverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver

DB.Mssql.Url=jdbc:sqlserver://호스트주소;databaseName=DB명;instanceName=인스턴스명
DB.Mssql.UserName=아이디
DB.Mssql.Password=패스워드

보통은 url에 jdbc:sqlserver://호스트주소:1433;DatabaseName=DB명 이렇게 넣지만 인스턴스가 있을 때는 포트번호를 빼줘야한다.
우선순위가 포트번호이기때문에 포트번호가 있으면 인스턴스를 따라가지 않는다는군!!

참 웹로직에서 데이터 소스를 만들때는 URL에 jdbc:weblogic:sqlserver://호스트주소\인스턴스명:1433 이렇게 해줘야한다.

( 설정파일에도 저렇게 했다가 몇시간 삽질을 했는지...)


로그삭제하는 bat을 생성 후 작업스케줄러(task scheduler)에 걸어 놓음.


참고로 window 8 server임.


증상 : bat파일을 따로 실행했을 때는 잘 돌아가나 스케줄러에선 안돌아감. 에러도 안남. 잘 수행됬다고 나오지만 실행은 안됨.


원인 : 동작설정이 잘못 되었음.


스케줄 걸기 방법

1. 실행->taskschd.msc 실행

2. 작업만들기 실행

3. 일반탭

- 이름, 설명 넣기

- 사용자가 로그온 할 때만 실행 선택

- 가장 높은 수준의 권한으로 실행 체크

4. 트리거탭

- 새로만들기

- 원하는 스케줄로 설정

5. 동작탭

- 새로만들기

- 동작 : 프로그램시작

- (여기가 중요!) 설정>프로그램/스크립트에는 프로그램 명만 넣는다 ex: delete_log.bat

- 시작위치에 프로그램 위치를 넣는다. ex: D:\task


'기타' 카테고리의 다른 글

티스토리에 코드넣기  (0) 2019.08.30
facebook 공유링크 캐쉬 삭제  (0) 2014.06.16
SNS 링크걸기  (0) 2014.06.09
티스토리에 소스코드 넣기  (0) 2013.12.13

div에 background-image를 지정하고 opacity로 투명도를 주면 그 div에 들어가는 text들까지도 투명도가 먹는다 


예를 들어 다음과 같은 소스를 줬을 때


다음과 같은 결과가 나온다.


invitation이라는 글자마저 투명하게 나와버린것!


물론 내가 원하는건 이게 아니다.


사막 사진만 투명하게 나와야한다면? 다음과 같이 바꿔보자.



이제 원하는 결과를 얻을 수 있다.




'CSS' 카테고리의 다른 글

파일찾기  (0) 2014.04.11

 

jQuery 1.7에 와서, .live() 함수는 사용이 중지 되었습니다. 이벤트를 연결하는 것은 .on() 함수로 대체 되었습니다. 하위 버젼의 jQuery에서는 .live() 함수보다는 .delegate() 함수를 사용하기를 권고합니다.

이 함수는 페이지의 document 요소에 이벤트 핸들러 연결을 할 수 있습니다. 페이지에 동적 컨텐츠를 추가하는 쉬운 방법입니다. 더 많은 정보를 얻기를 원하시면 .on() 함수를 참고하시기 바랍니다.

버젼별로 .live() 함수 기능과 같은 기능을 하는 방법은 아래 처럼 쓰여질 수 있습니다. 이 세가지 이벤트 바인드 함수는 모두 같은 효과를 냅니다.

 

$(selector).live(events, data, handler);                // jQuery 1.3+
$(document).delegate(selector, events, data, handler);  // jQuery 1.4.3+
$(document).on(events, selector, data, handler);        // jQuery 1.7+
 
 

출처 : http://findfun.tistory.com/285, http://api.jquery.com/live/

 

아래 주소로 접속하여  캐쉬삭제할 주소를 입력하면 된다.


https://developers.facebook.com/tools/debug/

'기타' 카테고리의 다른 글

티스토리에 코드넣기  (0) 2019.08.30
bat파일 작업스케줄러 걸기  (0) 2015.01.08
SNS 링크걸기  (0) 2014.06.09
티스토리에 소스코드 넣기  (0) 2013.12.13

Below, I am going to offer you the various services URL’s

Twitter

http://twitter.com/home?status=[TITLE]+[URL]

Digg

http://www.digg.com/submit?phase=2&url=[URL]&title=[TITLE]

Facebook

http://www.facebook.com/share.php?u=[URL]&title=[TITLE]

StumbleUpon

http://www.stumbleupon.com/submit?url=[URL]&title=[TITLE]

Delicious

http://del.icio.us/post?url=[URL]&title=[TITLE]]&notes=[DESCRIPTION]

Google Buzz

http://www.google.com/reader/link?title=[TITLE]&url=[URL]

Linkedin

http://www.linkedin.com/shareArticle?mini=true&url=[URL]&title=[TITLE]&source=[SOURCE/DOMAIN]

Slashdot

http://slashdot.org/bookmark.pl?url=[URL]&title=[TITLE]

Technorati

http://technorati.com/faves?add=[URL]&title=[TITLE]

Posterous

http://posterous.com/share?linkto=[URL]

Tumblr

http://www.tumblr.com/share?v=3&u=[URL]&t=[TITLE]

Reddit

http://www.reddit.com/submit?url=[URL]&title=[TITLE]

Google Bookmarks

http://www.google.com/bookmarks/mark?op=edit&bkmk=[URL]&title=[title]&annotation=[DESCRIPTION]

Newsvine

http://www.newsvine.com/_tools/seed&save?u=[URL]&h=[TITLE]

Ping.fm

http://ping.fm/ref/?link=[URL]&title=[TITLE]&body=[DESCRIPTION]

Evernote

http://www.evernote.com/clip.action?url=[URL]&title=[TITLE]

Friendfeed

http://www.friendfeed.com/share?url=[URL]&title=[TITLE]


'기타' 카테고리의 다른 글

티스토리에 코드넣기  (0) 2019.08.30
bat파일 작업스케줄러 걸기  (0) 2015.01.08
facebook 공유링크 캐쉬 삭제  (0) 2014.06.16
티스토리에 소스코드 넣기  (0) 2013.12.13

<div class="name_top name1">

</div>

<div class="name_top name2">

</div>


이런 구조가 있다.


jquery에서 name_top name2만 display:none을 주고 싶다면?


물론 $(".name2").hide();로 쓸 수 있다.( 혹은 id를 주던가.....)


그런데 만약 name2라는 클래스를 가진 div가 페이지 어딘가에 있다면?


name_top name2풀 네임을 써줘야 이 div에만 적용될 것이다.


이럴땐 이렇게  $(".name_top,.name2").hide(); 클래스네임 사이에 쉼표를 주면된다.

'JQuery' 카테고리의 다른 글

live(), on(), delegate()  (0) 2014.06.25
동적 객체 추가시 이벤트 발생  (0) 2014.06.01
IE에서 FormData가 안먹을때  (0) 2014.03.03
동적 행 추가 (clone, append)  (0) 2014.02.24
ajax로 파일업로드하기  (1) 2014.02.20

+ Recent posts