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

MyBatisPagingItemReader를 사용할 때 유의점

OpenSource/Spring Batch 2015.10.02 09:59
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


Caused by: java.sql.BatchUpdateException: Duplicate entry '123212' for key 'PRIMARY'
	at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:2055) ~[neositebatch.jar:na]
	at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1467) ~[neositebatch.jar:na]


위의 오류가 났다.



해결방안으로 아래처럼 MyBatisPagingItemReader를 사용할 때 유의하여 사용하면 된다.

<batch:reader>
<bean class="org.mybatis.spring.batch.MyBatisPagingItemReader">
<property name="sqlSessionFactory" ref="sqlSessionFactoryForMysql"/>
<property name="pageSize" value="100"/>
<property name="queryId"
value="xxx.xxx.xxx.xxxRepository.get블라블라"/>
</bean>
</batch:reader>


SELECT Query에서 MySQL이라면 LIMIT #{_skiprows}, #{_pagesize} 를 걸어줘야 한다.

읽어와서 페이징 단위로 자동으로 데이터를 가져오지 못한다는 점이다.

  • _page: 읽을 페이지 수(0부터 시작)
  • _pagesize: 페이지의 크기, 이를테면 리턴하는 로우 수
  • _skiprows_page 와 _pagesize의 결과

참고 : https://mybatis.github.io/spring/ko/batch.html


  끝~


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

'OpenSource > Spring Batch' 카테고리의 다른 글

MyBatisPagingItemReader를 사용할 때 유의점  (0) 2015.10.02
Spring Batch 환경 셋팅  (0) 2012.09.03

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

설정

트랙백

댓글

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

Spring Batch 환경 셋팅

OpenSource/Spring Batch 2012.09.03 10:09
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T
Batch processing is execution of a series of programs ("jobs") on a computer without manual intervention. Jobs are set up so they can be run to completion without manual intervention, so all input data is preselected through scripts or command-line parameters.
This is in contrast to "online" or interactive programs which prompt the user for such input.
A program takes a set of data files as input, processes the data, and produces a set of output data files. This operating environment is termed as "batch processing" because the input data are collected into batches of files and are processed in batches by the program.
출처 : http://en.wikipedia.org/wiki/Batch_processing

대충 보면..Job단위로 수행한다는 거라고 볼 수 있다.

Spring Batch 대충 이렇다.
1) Job
2) Step - Chunk-Oriented Processing
3) 스프링 배치는 스케줄러가 아니다!
    처음에 저또한 스프링 배치???? 스케줄러처럼 배치Job들을 관리해주는건가? 라고 생각했었지만..
    그게 아니였다.
    스케줄러는  Crontab, Quartz, Jdk timer 등으로 관리를 한다.  스프링 배치는 단지 Job을 만들고
    실행시킨다고 볼수 있다. 이러한 Job들과 스케줄러와 연결을 시킨다는것!
 
참고 사이트는 http://javajigi.tistory.com/93 설명이 잘 나와있는 자바지기님의 사이트를 참조 하였다.
정말 멋지신 분 같다.(__* 다시 한번 감사합니다^-^good~

스프링 배치 svn 주소(소스 있는곳 주소) :
http://springframework.svn.sourceforge.net/svnroot/springframework/spring-batch (해놨는데 안된다..ㅠㅠ)

그래서 찾았다!

https://github.com/SpringSource/spring-batch 아래의 주소로 가면  zip파일로 받거나 url로 svn으로 소스를 끌어 올 수 있다.

SVN 주소 : https://github.com/SpringSource/spring-batch.git  로 하면 될 줄 알았는데...안된다..ㅠㅠ read only 인듯......
그래서! zip으로 받아서...프로젝트 생성 후 import  시켜줬다^-^good~



자! 이제 환경 셋팅을 해보자^-^ 야호~씐나~^0^~~
3 단계로 나뉜다.
1] 이클립스를 다운로드 하자!
     http://www.eclipse.org/downloads/
     대충 아무거나 받자 ㅋㅋ
    


2번, 3번은...무용지물이 되었다..svn 주소에서 소스를 읽어올수가 없었다..
2], 3] PASS~



2] SVN을 연결하자! plug-in이 없으면 plug-in을 받고, 이미 있으면 svn을 연동하자!
    svn이 없었다..
    http://marketplace.eclipse.org/content/subversive-svn-team-provider#.UEQSP8EaMbk
   이 사이트에서 svn 플러그인을 받을 수 있는 주소를 알아 냄.
   플러그인 주소 ->   http://download.eclipse.org/technology/subversive/1.0/update-site/
  


 
3] 소스 check out~!!!



그래서  위에서 말한것과 같이..ZIP으로 받아서 프로젝트 생성 후 소스를 import 시켰다!

결과는 다음과 같다! (단, 소스를 보니...spring-batch-core, spring-batch-infrastructure등이..각각의
pom.xml을 가지고 있는걸 보니..개별적인 프로젝트인 것 같다. 각각 프로젝트를 만들어서 가져와야 할지도..
우선은 이렇게...셋팅을 끝내야겠다..cm쪽 다시보자..ㅜ.ㅜ...



....이럴수가.....AA 스프링 배치쪽 하는 걸로 되어있었는데..선투입과제로..
다시 CM쪽으로 가게 되었다..ㅜ.ㅜ...OTL....

Oh my god~~~~~~~~~~~~~~~~~~~ㅠ.ㅠ...스프링은 스터디로 열심히 해야하나..
프로젝트는 언제 해보나~~~~~ㅠ.ㅠ...大 충격!!

스프링 배치여..잠시만 안녕...넌 스케줄러가 아닌것을 알았다..나중에..Job과 Step등록해주마...잠시만 안녕!
저작자 표시 비영리 변경 금지
신고

'OpenSource > Spring Batch' 카테고리의 다른 글

MyBatisPagingItemReader를 사용할 때 유의점  (0) 2015.10.02
Spring Batch 환경 셋팅  (0) 2012.09.03

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

설정

트랙백

댓글

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

티스토리 툴바