Ace-T's Blog 내 검색 [네이버 커넥트 이웃 합니다~^-^/ 요청 大 환영~~]

[Oracle, PostgreSQL] Mybatis Paging 처리

OpenSource/Mybatis&Ibatis 2013.11.25 16:51
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T



Mybatis Paging 처리는 RowBounds와 Oracle의 ROWNUM, PostgreSQL의 LIMIT 등등

구현으로 구현을 할 수 가있다.


그래서 흔히 Mybatis를 사용하는 유저라면 부딪히는 RowBouds..의 문제점인

대용량 일 경우에 엄청나게 느리다는 것이다. 전체를 다 가져와서 작업 하기 때문이다.

Oracle인 경우

1) sqlmap

더보기

2) service

더보기

 

 

PostgreSQL 인 경우

1) sqlmap

더보기

 

2) service

더보기

 


 


저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

java.lang.IllegalArgumentException: At least one base package must be specified

OpenSource/Mybatis&Ibatis 2013.10.08 11:43
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

 

오류내역

java.lang.IllegalArgumentException: At least one base package must be specified


상 황 :  mybatis의 MapperScannerConfigurer를 사용하고 있는데 아래와 같이 basePackage의 value값에

""로 셋팅하였을 때 발생 한다.

<bean id="cmnMapper" class="org.mybatis.spring.mapper.MapperScannerConfigurer">

<property name="basePackage" value="" />

<property name="sqlSessionFactoryBeanName" value="cmnSqlSessionFactory" />

</bean>


해결책 dao패키지를 최소한 하나 넣어주면 된다. 오류내역처럼~

At least one base package must be specified


  - 끝 - 

저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

mybatis 3.1 개발자 local용

OpenSource/Mybatis&Ibatis 2013.08.09 09:43
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

 

 

아쉽게 블로그 포스팅을 거의 못하고 있어서...시간 내서 작성을 하려고 합니다^-^good~

오늘의 포스팅은! mybatis logger쪽 입니다.

 

환경 :

Spring 3.1

mybatis-3.1.1.jar

 

서론 :

현재 mybatis에서는 sql문과 parameter 부분이 서로 나뉘어져 logging되고 있습니다.

개발을 할 때 param이 많다면 일일이 매핑 시켜서 오렌지나, sql develop 등등으로 보기에는 너무 힘이 들 것 입니다. 그래서 간단히..mybatis 소스를 조작하여 개발하여 보았습니다만..

개발자 local용이라는 단점이 있습니다. server용은 아닙니다..ㅋㅋ;;

 

        기본 제공                                             변경 후

ex) select * from acetDB                =>    select * from acetDB 

      where 1=1 and aaa in(?. ?)      =>     where 1=1 and aaa in(100. 200)

 

본론 :

어떻게 구현을 했는지..창피하지만...사실 고친것도 없습니다..;;

한번 살펴보겠습니다^-^

 

mybatis 소스 중에 org/apache/ibatis/logging/jdbc 의 패키지 밑에 아래의 소스를 수정하였습니다.

BaseJdbcLogger.java

ConnectionLogger.java

PreparedStatementLogger.java

 

새롭게 만든 소스

PrintQueryParam.java

 

간단히 위의 소스에 대해서 설명을 드리자면..

ConnectionLogger.java  : 요놈이 SQL문을 가지고 있습니다.

PreparedStatementLogger.java : 요놈은 parameter의 값을 가지고 있습니다.

BaseJdbcLogger.java : 요녀석은 ConnectionLogger, PreparedStatementLogger java에서 상속하여 쓰고 있는 Adapter 패턴 처럼 보입니다. 또한 Dynamic Proxy 패턴도 쓰입니다. 오픈소스는 디자인 패턴의 놀이터?? 인 것 같습니다..ㅋㅋ;

 

ex) public final class ConnectionLogger extends BaseJdbcLogger implements InvocationHandler {

           .......................

      }

 

그래서...서로 다른 java와 값들...어떻게 한곳으로 몰아서 작업을 통해서 sql문과 파라미터를 함께 찍어줄수 있을까...고민했습니다...

 

그래서 일단은 개발자 local 즉, 혼자서 개발 시에 사용 할 수 있는 ver을 만들었습니다.

How? 요즘..디자인 패턴을 내부에서 스터디를 하고 있는터라..떠오르는것이..Singleton 패턴 이였습니다--;;

간단히 말하면..

기본적인 Singleton 패턴이며, ConnectionLogger와 PreparedStatementLogger에서 공통의 객체를 공유하되

saveSql 이라는 녀석에다가 쿼리를 ConnectionLogger에서 넣어주게 되고, PreparedStatementLogger에서 쿼리문을 꺼내다가 파라미터와 합치는 작업을 하게 되어집니다.

 

1) PrintQueryParam.java

더보기

 

2) ConnectionLogger.java

더보기

 

3) PreparedStatementLogger.java

더보기

 

4) BaseJdbcLogger.java

더보기

 

결론 :

아래의 jar를 기존 mybatis-3.1.1.jar 대신 사용 하면 됩니다.

 

mybatis-3.1.1.aa.local.jar

 

추신 :

서버용은 mybatis plug-in 이라는 것을 사용하여 만들 수 있을 것 같다.

지금은 다른쪽을 해야해서 못하고 있으나..만드는 즉시 포스팅 하도록 하겠습니다.^-^good~

 

- 끝 -

 

 

 

저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

요즘..(now a days..)

OpenSource/Mybatis&Ibatis 2013.08.01 11:37
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

 

 

Mybatis 소스를 조금 보고 있다..

 

logging부분인데 요즘 디자인패턴을 공부하고 있는데 Mybatis 소스에 떡~~하니 adapter 패턴과

proxy패턴이 쓰이고 있었다! 방가방가~~^-^/

 

목표 : 현재 Mybatis 소스에서는 sql 과 parameter가 함께 나오지 않고 각각 따로따로 나오고 있다.

         이것을 개발자 입장에서 봤을 때 참으로 짜증나는 일이 아닐수 없다.

         쿼리를 날려보고 싶은데...

         ? 요녀석을 파라미터로 일일이 노가다작업으로 채워야 할 것이다. Oh my god!~

         그래서 Mybatis 소스를 조금 수정하여 이런 노가다 작업을 없애보기로 했다.

 

 

현재는 작업 중이며..어려움 중에 하나가..

 

sql이 나오는 부분은 ConnectonLogger라는 부분이고 parameter가 나오는 부분은 PreparedStatementLogger 라는 부분이다..즉, 2개의 클래스 중에서 어디에서든 합치는 작업을 해주어야한다.

하지만 2개의 클래스는 서로 다른 역할을 하며 어댑터패턴으로 이루어져있다..

 

소스를 다 파악한 것이 아니라서 어디에 수정을 가해야할지는..잘모르겠다..ㅋㅋ;

 

우선은 머리속에 떠오르는데로..한번 해보자!

차근차근 업그레이드 해나가는 맛이 프로그램을 하는 맛이 아닐까?

 

 

 

 

 

 

저작자 표시 비영리 변경 금지
신고

'OpenSource > Mybatis&Ibatis' 카테고리의 다른 글

java.lang.IllegalArgumentException: At least one base package must be specified  (0) 2013.10.08
mybatis 3.1 개발자 local용  (0) 2013.08.09
요즘..(now a days..)  (0) 2013.08.01
Batch Update 기능  (0) 2013.06.27
Mybatis 동적 sql 주의사항  (0) 2013.06.17
Mybatis SVN 주소  (0) 2013.05.09

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

Batch Update 기능

OpenSource/Mybatis&Ibatis 2013.06.27 18:32
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

 

Batch Update 기능 이란?
업무를 처리하는 웹 어플리케이션에서는 Insert, Update, Delete와 같은 Transactional 데이터 처리(OLTP)가 빈번하게 발생 한다. OLTP에 대한 대용량의 데이터 요청이 발생하면, 한번의 데이터 Connection으로 다수의 쿼리(설정된 쿼리의 개수)를 처리 하여 Connection의 횟수를 줄이므로 성능을 향상 시킬수 있다.

간단히 말하면 여러개의 CUD를 한번의 커넥션으로 처리 가능하다는 말이다! ^-^goood~

 

ibatis에 비해 매우 간단하다^-^goood~

 

1) 아래와 같이 옵션을  준다.

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--
    Copyright 2010 The myBatis Team

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->

<configuration> 
  <settings>  
  <setting name="defaultExecutorType" value="BATCH" /> <!-- batch 처리 옵션 --> 
 </settings>
</configuration>

 

2) Service에서 사용 하면 끝~~

아래처럼 단일 건 또는 for문 이용, List 형태로 받아서 Iterator 로 사용 가능 하다.

 1) 단일 건(Service단)
    public int insertWorkerInfo(WorkerInfoVo workerInfoVo) {
      return workerInfoService.insertWorkerInfo(workerInfoVo);
    }

 

 2) for를 이용(Service단)
    public void insertWorkerInfo(WorkerInfoVo workerInfoVo) {

    try {   
      for(int i =0 ; i < 10; i++){
          workerInfoDao.insertWorkerInfo(workerInfoVo);
     }
   } catch (Exception e) {

         블라블라
   }
  }

끝~~~~

저작자 표시 비영리 변경 금지
신고

'OpenSource > Mybatis&Ibatis' 카테고리의 다른 글

mybatis 3.1 개발자 local용  (0) 2013.08.09
요즘..(now a days..)  (0) 2013.08.01
Batch Update 기능  (0) 2013.06.27
Mybatis 동적 sql 주의사항  (0) 2013.06.17
Mybatis SVN 주소  (0) 2013.05.09
org.postgresql.util.PSQLException: Returning autogenerated keys is not supported  (0) 2013.01.22

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

Mybatis 동적 sql 주의사항

OpenSource/Mybatis&Ibatis 2013.06.17 21:02
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

 

<if test를 통해 동적 SQL을 구현 함에 있어서 주의사항이 있다.

아래와 같이 " " 안에 ' ' 를 써주면 동작을 하지 않는 경우가 있다..

그러므로 " "와 ' ' 를 역으로 감싸주면 정상 작동을 한다.

 

 <if test = "menuTypeCd != null and menuTypeCd == '2'">

 

<update id="updateMenuInfo" parameterType="aaVo">
  UPDATE
      TB_TEST A
           SET
               A.MENU_NM      = #{menuNm}, 
               A.MENU_DESC_SBST    = #{menuDescSbst},            
            <if test = "menuTypeCd != null and menuTypeCd == '2'">  (X)
              A.BOARD_ID     = #{boardId},
            </if>                               
              A.MENU_USE_YN    = #{menuUseYn},
         WHERE A.MENU_ID = #{menuId}
 </update>

 

<if test = 'menuTypeCd != null and menuTypeCd == "2"'>  (O)

- END -

저작자 표시 비영리 변경 금지
신고

'OpenSource > Mybatis&Ibatis' 카테고리의 다른 글

요즘..(now a days..)  (0) 2013.08.01
Batch Update 기능  (0) 2013.06.27
Mybatis 동적 sql 주의사항  (0) 2013.06.17
Mybatis SVN 주소  (0) 2013.05.09
org.postgresql.util.PSQLException: Returning autogenerated keys is not supported  (0) 2013.01.22
Mybatis 시작하기 전..  (0) 2013.01.02

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

Mybatis SVN 주소

OpenSource/Mybatis&Ibatis 2013.05.09 15:21
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

참고참고~

 

http://mybatis.googlecode.com/svn

저작자 표시 비영리 변경 금지
신고

'OpenSource > Mybatis&Ibatis' 카테고리의 다른 글

Batch Update 기능  (0) 2013.06.27
Mybatis 동적 sql 주의사항  (0) 2013.06.17
Mybatis SVN 주소  (0) 2013.05.09
org.postgresql.util.PSQLException: Returning autogenerated keys is not supported  (0) 2013.01.22
Mybatis 시작하기 전..  (0) 2013.01.02
ibatis 쓸만한 것 정리  (0) 2012.04.24

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

org.postgresql.util.PSQLException: Returning autogenerated keys is not supported

OpenSource/Mybatis&Ibatis 2013.01.22 16:19
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T
환경 : springframework 3.1 + PostgreSQL 9.2 + Mybatis 사용

오류내용 :

더보기


Mybatis에서 아래 처럼 useGeneratedKeys 을 사용 하였다..postgreSQL에서....그래서 위와같은 오류 발생!
 <insert id="insertAuthor" parameterType="domain.blog.Author" useGeneratedKeys="true"
   
keyProperty="id">
  insert into Author (username,password,email,bio)
  values (#{username},#{password},#{email},#{bio})
</insert>

해결책은~!

참고 사이트 : http://www.mybatis.org/core/ko/sqlmap-xml.html
참고 내역 :

더보기


위처럼 selectKey tag를 사용하여 처리 하였다.

처리 내역 :  seq 사용!
1) postgreSQL에 seq를 만들어준다.

   CREATE SEQUENCE board_id_seq MINVALUE 1;

2) <selectKey  tag 사용

더보기


음..postgreSQL이 오라클보다는 활성화가 되어있지 않아서인지....지원하지 못하는 DB인지...mybatis에서...확인은 못하였다.--;; 구글링 하는데 안나온다..ㅜ.ㅜ...아시는 분은 댓글 좀...

- 끝 -

저작자 표시 비영리 변경 금지
신고

'OpenSource > Mybatis&Ibatis' 카테고리의 다른 글

Batch Update 기능  (0) 2013.06.27
Mybatis 동적 sql 주의사항  (0) 2013.06.17
Mybatis SVN 주소  (0) 2013.05.09
org.postgresql.util.PSQLException: Returning autogenerated keys is not supported  (0) 2013.01.22
Mybatis 시작하기 전..  (0) 2013.01.02
ibatis 쓸만한 것 정리  (0) 2012.04.24

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

Mybatis 시작하기 전..

OpenSource/Mybatis&Ibatis 2013.01.02 16:55
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T
모든 MyBatis 애플리케이션은 SqlSessionFactory 인스턴스를 사용
SqlSessionFactory 인스턴스는 SqlSessionFactoryBuilder 를 사용
SqlSessionFactoryBuilder 는 XML 설정파일에서 SqlSessionFactory 인스턴스를 빌드할 수 있다.

Mybatis를 사용하기 위해 설정을 하고자 한다면 아래의 내용을 볼 수 있을 것이다.
아래는 spring에서 bean 설정을 해주는 부분이다.





아래의 용어들에 대해서 살펴볼 필요가 있다.

SqlSessionFactoryBuilder

이 클래스는 인스턴스회되어 사용되고 던져질 수 있다. SqlSessionFactory 를 생성한 후 유지할 필요는 없다. 그러므로 SqlSessionFactoryBuilder 인스턴스의 가장 좋은 스코프는 메서드 스코프(예를 들면, 메서드 지역변수)이다. 여러 개의 SqlSessionFactory 인스턴스를 빌드하기 위해 SqlSessionFactoryBuilder 를 재사용할 수도 있지만 유지하지 않는 것이 가장 좋다..

SqlSessionFactory

한번 만든뒤, SqlSessionFactory 는 애플리케이션을 실행하는 동안 존재해야만 한다. 그래서 삭제하거나 재생성할 필요가 없다. 애플리케이션이 실행되는 동안 여러 차례 SqlSessionFactory 를 다시 빌드하지 않는 것이 가장 좋은 형태이다. 재빌드하는 형태는 결과적으로 “나쁜 냄새” 가 나도록 한다. 그러므로 SqlSessionFactory 의 가장 좋은 스코프는 애플리케이션 스코프이다. 애플리케이션 스코프로 유지하기 위한 다양한 방법이 존재한다. 가장 간단한 방법은 싱글턴 패턴이나 static 싱글턴 패턴을 사용하는 것이다. 또는 구글 Guice 나 Spring 과 같은 의존성 삽입 컨테이너를 선호할 수 도 있다. 이러한 프레임워크는 SqlSessionFactory 의 생명주기를 싱글턴으로 관리할 것이다.

SqlSession

각각의 쓰레드는 자체적으로 SqlSession 인스턴스를 가져야 한다. SqlSession 인스턴스는 공유되지 않고 쓰레드에 안전하지도 않다. 그러므로 가장 좋은 스코프는 요청 또는 메서드 스코프이다. SqlSession 을 static 필드나 클래스의 인스턴스 필드로 지정해서는 안된다. 그리고 서블릿 프레임워크의 HttpSession 과 같은 관리 스코프에 둬서도 안된다. 어떠한 종류의 웹 프레임워크를 사용한다면, HTTP 요청과 유사한 스코프에 두는 것으로 고려해야 한다. 달리 말해서, HTTP 요청을 받을?때마다 만들고, 응답을 리턴할때마다 SqlSession 을 닫을 수 있다. SqlSession 을 닫는 것은 중요하다. 언제나 finally 블록에서 닫아야만 한다. 다음은 SqlSession 을 닫는 것을 확인하는 표준적인 형태다.

Mapper 인스턴스

Mapper 는 매핑된 구문을 바인딩 하기 위해 만들어야 할 인터페이스이다. mapper 인터페이스의 인스턴스는 SqlSession 에서 생성한다. 그래서 mapper 인스턴스의 가장 좋은 스코프는 SqlSession 과 동일하다. 어쨌든 mapper 인스턴스의 가장 좋은 스코프는 메서드 스코프이다. 사용할 메서드가 호출되면 생성되고 끝난다. 명시적으로 닫을 필요는 없다.


mybatis의 설정 기준은 spring + maven을 기준으로 설명 하겠다.

mybatis가 필요한 jar는 maven pom.xml을 통하여 받는다.
spring에서 사용 할 수 있고 위에서 본 내용들을 이용 할 수 있게 하는 lib  파일이라고 보면 될 것 같다.
까보지는 않아서 정확지는 않다..ㅋㅋ;

 <dependency>
   <groupId>org.mybatis</groupId>
   <artifactId>mybatis</artifactId>
   <version>3.1.1</version>
   <type>jar</type>
   <scope>compile</scope>
  </dependency>

 

2) context에 mybatis 관련 빈 추가(sqlSessionFactory)

  <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
       <property name="dataSource" ref="dataSource" />
       <property name="configLocation" value="classpath:sqlmap/sqlmap-config.xml"/>
       <property name="typeAliasesPackage" value="com.xxx.domain, com.yyy.domain"/>
 </bean> 

 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
   <property name="basePackage" value="com.xxx.dao,com.yyy.dao" />
   <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
 </bean> 


SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
위처럼 SqlSessionFactoryBuilder를 통해 build를 하면 sqlSessionFactory 객체가 만들어진다.

SqlSession session = sqlSessionFactory.openSession();
또한 sqlSessionFactory는 openSession을 통해 session을 만든다.
SqlSession 인스턴스를 통해 직접 SQL 구문을 실행할 수 있다.

그리고 mapper 또한 SqlSession 에서 생성한다.

 
SqlSession session= sqlSessionFactory.openSession();
try {
 
BlogMapper mapper= session.getMapper(BlogMapper.class);
 
// do work
} finally {
  session
.close();
}


그런 뒤 mybatis를 사용하기 위해
sqlmap-config.xml에 mapper를 작성!

 <mappers>
    <mapper resource="sqlmap/sql/test1-map.xml"/>
    <mapper resource="sqlmap/sql/test2-map.xml"/>
    <mapper resource="sqlmap/sql/test3-map.xml"/>
 </mappers>


그리고 나머지 MVC구조에서 호출 해주면 끝!
- controller
   List<BoardVo> boards = boardService.selectBoardList(boardVo);

- service
   public interface BoardService {
        public List<BoardVo> selectBoardList(BoardVo boardVo);
   }

- service implement 부
  @Service
   public class BoardServiceImpl implements BoardService {
  @Autowired
   private BoardDao boardDao;
   @Override
    public List<BoardVo> selectBoardList(BoardVo boardVo) {
    List<BoardVo> boards = boardDao.selectBoardList(boardVo);
    return boards;
 }

- DAO
   public interface BoardDao {
      public List<BoardVo> selectBoardList(BoardVo boardVo);
   }

- test1-map.xml
<mapper namespace="com.kt.guide.board.dao.BoardDao" >
<select id="selectBoardList"  parameterType="BoardVo" resultType="BoardVo">
    SELECT 구문~블라블라~
 </select>

위의 내용은 DAO+DTO(도메인)을 바로 매핑 해서 쓰는 방법이다.
물론 http://ejaeyeol.blog.me/173680503 링크를 가서 보면 resultMap을 사용하여 컬럼을 매핑 하여
사용 할 수 도 있다.

참고 사이트 : http://www.mybatis.org/core/ko/getting-started.html

저작자 표시 비영리 변경 금지
신고

'OpenSource > Mybatis&Ibatis' 카테고리의 다른 글

Batch Update 기능  (0) 2013.06.27
Mybatis 동적 sql 주의사항  (0) 2013.06.17
Mybatis SVN 주소  (0) 2013.05.09
org.postgresql.util.PSQLException: Returning autogenerated keys is not supported  (0) 2013.01.22
Mybatis 시작하기 전..  (0) 2013.01.02
ibatis 쓸만한 것 정리  (0) 2012.04.24

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

ibatis 쓸만한 것 정리

OpenSource/Mybatis&Ibatis 2012.04.24 10:34
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

 

■ Ibatis
1) <cacheModel id="tenminute-cache" type="LRU" readOnly="true">
        <flushInterval minutes="10"/>
        <!--property name="size" value="100000" /-->
    </cacheModel>

 - <flushOnExecute> : 여기서 지정된 쿼리 매핑 구문이 실행되면 캐시의 내용을 지운다.
 - <flushInterval> : 캐시의 내용을 지우는 시간 간격을 정의 한다.


2) <typeAlias alias="dtoItem" type="com.acet.front.dto.item.DtoItem" />

3) <resultMap id="itemResult" class="dtoItem">
 <result property="item_id" column="item_id" nullValue="" />
   </resultMap>

4) <sql id="pk-where-frag">item_id = #item_id# </sql>

5) <select id="getItemList" parameterClass="string" resultMap="itemResult">
    /* Item.getItemList */
 <dynamic>
   /*   <dynamic prepend="WHERE">   요소를 넣을 수 도 있다.   */
  <isEqual compareValue="none">
   <include refid="select-sql-frag" />
  </isEqual>
  <isEqual compareValue="desc">
   <include refid="select-desc-sql-frag" />
  </isEqual>
  <isEqual compareValue="asc">
   <include refid="select-asc-sql-frag" />
  </isEqual>
 </dynamic>
   </select>

6) <select id="getDeliPriceCode" parameterClass="map" resultClass="java.lang.String">
   /* Item.getDeliPriceCode */ 
 select
     deli_price_code
 From item
 Where item_id= #item_id#
 and rownum =1
   </select>

7) <![CDATA[  ~ ]]>

8) <select id="listItemDtlInfoDispTwo" parameterClass="map" resultMap="listItemDtlInfoDispTwoResult"  cacheModel="tenminute-cache">
             ............................................................
   </select>

9) <select id="getItemPositionStockQty" parameterClass="itemInfoDTO" resultClass="long">
   /* Item.getItemPositionStockQty*/
      SELECT
  F1_PRICEMGR_STOCKQTY_TEMP(#item_id#, #unit_id# , #position_id#, #zip_code#, #ctg_id#) QTY
      FROM dual 
   </select>

10)

저작자 표시
신고

'OpenSource > Mybatis&Ibatis' 카테고리의 다른 글

Batch Update 기능  (0) 2013.06.27
Mybatis 동적 sql 주의사항  (0) 2013.06.17
Mybatis SVN 주소  (0) 2013.05.09
org.postgresql.util.PSQLException: Returning autogenerated keys is not supported  (0) 2013.01.22
Mybatis 시작하기 전..  (0) 2013.01.02
ibatis 쓸만한 것 정리  (0) 2012.04.24

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

티스토리 툴바