[ MSSMS - 초기 설정 ]

 

* 메뉴 >  도구 > 옵션 *

1. 환경 > 시작  :   시작시 [개체 탐색기 및 쿼리 창 열기]

2. 궈리 실행 > SQL Server > 일반  
   : SET ROWCOUNT [ 50 ]
     - SELECT시 조회 레코드 수.   TOP 이 존재 시 TOP 이 우선 적용

 

3. 궈리 실행 > SQL Server > 고급
   : SET LOCK TIMEOUT [ -1]
     - 테이블 LOCK이 걸려 있을 때 기다리는 제한 시간.
     - 2 로 설정이 2초 기다렸는데도 Lock이 계속 유지시 오류 발생
    

Posted by 농부지기
,

[ myBatis. Sql WHERE문에서 in 처리 ]

 

[ 방법 1 ] - List이용

1. java단 - List객체 만들기

    - 콤마를 구분으로 해서 넘어온 문자열을

       myBatis에서 필요한 List 객체로 만들기

        

 

 

2. java단 - mybatis호출

    - foreach문 설명

       . collection : java단에 collection객체명

       . item          : mybatis에서 사용할 명칭 (새로 지정가능)

 

   

 

 

 

 

3. mybatis - in 처리

   

 

 

[ 방법 2 ] - dynamic 이용

1. java단 - mybatis호출

   

 

 

2. mybatis - in 처리

   

 

 

[ 방법 3 ] - dynamic 이용  (테스트하지 않았음. 안될 확율이 100%) - 잘 연구해서 적용 ^^

1. java단 - List<Map<String, Object>> 객체 만들기

   

 

2. java단 - mybatis호출

   

 

3. mybatis

   

'Web. 기타 언어 > myBatis' 카테고리의 다른 글

myBatis - 사용가능한 jdbcType  (0) 2018.07.18
myBatis. Sql WHERE문에서 in 처리(2)  (0) 2018.07.17
myBatis - isEmpty, isNull  (0) 2017.12.05
myBatis. if. case 문  (0) 2017.12.05
myBatis에서 foreach 사용하기  (0) 2017.06.09
Posted by 농부지기
,

[ myBatis - isEmpty, isNull ]

 

 

* ibatis에서 <isEmpty> <isNull>등이 사용가능 했지만 Mybatis에서는 불가.

Posted by 농부지기
,

[ myBatis. if. case 문 ]

 

1. 대소문자 무시

   

 

2. and, or

   

 

3. 한글자만 비교 할때는 반드시 .toString()을 해줘야 됨

   

 

    또는 case문장에서

   <when test="s_keyword.equalsIgnoreCase('W')"> 하거나
   <when test='s_keyword.equals("W")'> 이렇게 처리한다.

 

4. in, or를 여러개

   

 

5. case 문

'Web. 기타 언어 > myBatis' 카테고리의 다른 글

myBatis. Sql WHERE문에서 in 처리  (0) 2017.12.05
myBatis - isEmpty, isNull  (0) 2017.12.05
myBatis에서 foreach 사용하기  (0) 2017.06.09
myBatis.oracle.sql.CLOB@ 결과 오류시  (0) 2017.01.31
myBatis.CLOB Column type  (0) 2017.01.31
Posted by 농부지기
,

[ myBatis - Procedure처럼 사용하기 ]

 

1. 정의

    . 보통 myBatis xml에 하나의 tag에 하나의 sql문장만 기술한다.

      하지만 procedure에서 사용할 수 있는 방법이 거의다 가능하다.

 

2. 참고

     . 아래에 정의된 모든 형식은 하나의 tag (select, update, delete)에 기술 가능하다.

 

3. SQL결과 컬럼 1개를 변수에 넣기

   

 

4. INSERT문장을 활용한 임시테이블 생성 및 임시테이블 INDEX생성

   

 

5. 임시테이블 생성 후 INSERT하기

    - 위 sql에서  #용 임시테이블은 drop table이 확실히 되지만 (mssql에서 테스트)

      아래 sql에서 @용 임시테이블은 drop table이 되는지 테스트 해보지 않았음 

   

 

6. Procedure호출 하기

    - EXEC 로 호출 하게 되면 Procedure실제 argument도 기술 할 수 있다.

      이때 장점은 Procedure실제 argument명을 명시적으로 기술했기 때문에

      argument순서와 상관없이 mybatis에 기술 할 수 있다.

      (mssql에서 테스트)

   
Posted by 농부지기
,

[ Grid 튜닝5 - refreshBody ]

 

1. Grid Dynamic 생성 시 튜닝

    . 이슈

      - 보통 Grid Header, Body, Cell등을 dynamic하게 생성할 때 시간이 아주 많이 소비된다.

        이유가 appendContentsCol() 등의 API 를 사용하게 되면 이때마다 grid를 다시 그리기 때문에

        만약, cell을 20개 생성한다면 grid를 20번 새로 그린다는 의미가 될 수 있다.

    . 해결방법

      - Grid.set_enableredraw(false);

      - grid dynamic하게 생성

      - Grid.set_enableredraw(true);

    . 이유

      - set_enableredraw(false); 를 하게 되면 이때 부터 그리드를 그리지 않는다.

         그런 후 grid의 모든 cell, expr등을 입힌 후

         다시 set_enableredraw(true);를 해주면 Grid를 한번만 그리게 된다.

 

2. Dataset변경 시 Grid튜팅

    . 이슈

      - 화면에 상당히 많은 자료가 변경이 되고, expr등이 많이 변경되어야 되는 경우

         grid에 표현이 되어야 되는 이때 속도가 상당히 느려진다.

    . 해결방법1

      - Grid.set_enableredraw(false);

      - data 변경 및 expr변경

      - Grid.set_enableredraw(true);

    . 이유

      - set_enableredraw(false); 를 하게 되면 이때 부터 그리드를 그리지 않는다.

         그런 후 dataset에 모든 자료가 변경 된고, expr등을 변경한 후

         다시 set_enableredraw(true);를 해주면 Grid를 한번만 그리게 된다.

     . 해결방법2

      - Grid.refreshBody(false);

      - data 변경 및 expr변경

      - Grid.refreshBody(true);

     . 이유

       - refreshBody() API가 set_enableredraw()보다 속도가 빠르다.

       - set_enableredraw()는 grid를 처음부터 전체를 다시 그린다.

       - refreshBody()는 변경된(?)부분만 다시 그린다.

       - 참고 : refreshBody()는 변경된(?) 부분만 그리기 때문에 dynamic 하게 grid를 생성할 때는 사용하면 안된다.

                   반드시 dataset 의 oncolumn changed event에서만 가능하다.

 

3. refreshBody() API 의 prototype

    

 

     - nexacro14lib > component > Grid > Grid.js

     

'Nexacro-이론 및 튜닝 > dataset.grid.튜닝' 카테고리의 다른 글

Dataset 튜닝4 - alasql  (0) 2017.11.15
Dataset 튜닝3 - set,get  (1) 2017.11.15
Dataset 튜닝2 - Hashmap방식  (0) 2017.11.15
Dataset 튜닝1 - 정의  (0) 2017.11.15
Posted by 농부지기
,