jdbc 배치에서 선행 쿼리 실행문의
- 작성자 :
- 김*훈
- 작성일 :
- 2024-02-22 18:28:33
- 조회수 :
- 240
- 구분 :
- 실행환경 / 4.1
- 진행상태 :
- 완료
Q
안녕하세요
전자정부프레임워크 배치관련 문의 드려요
jdbc 배치 를 만드는 중인데요
reader --> processor --> writer 과정이 있는데
writer 쿼리전에 delete 쿼리를 실행 하고 싶습니다
찾아봐도 적용이 안되는데
답변좀 부탁드릴께요
감사합니다
<?xml version="1.0" encoding="UTF-8"?>
<job id="xxx" parent="eGovBaseJob" xmlns="http://www.springframework.org/schema/batch">
<step id="xxxStep" parent="eGovBaseStep">
<tasklet>
<chunk reader="xxxJob.xxxStep.jdbcItemReader"
processor="xxxJob.xxxStep.itemProcessor"
writer="xxxJob.xxxStep.mybatisItemWriter"
commit-interval="1000" />
</tasklet>
</step>
</job>
<!-- reader -->
<bean id="xxxJob.xxxStep.jdbcItemReader" class="org.springframework.batch.item.database.JdbcCursorItemReader" scope="step">
<property name="dataSource" ref="dataSource-mariadb" />
생략 .....
</bean>
<!-- writer -->
<bean id="xxxJob.xxxStep.mybatisItemWriter" class="org.egovframe.rte.bat.core.item.database.EgovJdbcBatchItemWriter">
생략 .....
<!-- writer insert 전에 writer 에 있는 table 을 delete 쿼리로 지우고 시작하고 싶습니다. -->
<property name="sql" value="insert into xxxx (gubun,base_dt) VALUES (?,?) " />
<property name="params" value="gubun,base_dt" />
<property name="dataSource" ref="dataSource-xxx" />
</bean>
<!-- Processor -->
<bean id="xxxJob.xxxStep.itemProcessor" class="com.koies.batch.crawling.processor.CrawlingProcessor" />
</beans>
전자정부프레임워크 배치관련 문의 드려요
jdbc 배치 를 만드는 중인데요
reader --> processor --> writer 과정이 있는데
writer 쿼리전에 delete 쿼리를 실행 하고 싶습니다
찾아봐도 적용이 안되는데
답변좀 부탁드릴께요
감사합니다
<?xml version="1.0" encoding="UTF-8"?>
<job id="xxx" parent="eGovBaseJob" xmlns="http://www.springframework.org/schema/batch">
<step id="xxxStep" parent="eGovBaseStep">
<tasklet>
<chunk reader="xxxJob.xxxStep.jdbcItemReader"
processor="xxxJob.xxxStep.itemProcessor"
writer="xxxJob.xxxStep.mybatisItemWriter"
commit-interval="1000" />
</tasklet>
</step>
</job>
<!-- reader -->
<bean id="xxxJob.xxxStep.jdbcItemReader" class="org.springframework.batch.item.database.JdbcCursorItemReader" scope="step">
<property name="dataSource" ref="dataSource-mariadb" />
생략 .....
</bean>
<!-- writer -->
<bean id="xxxJob.xxxStep.mybatisItemWriter" class="org.egovframe.rte.bat.core.item.database.EgovJdbcBatchItemWriter">
생략 .....
<!-- writer insert 전에 writer 에 있는 table 을 delete 쿼리로 지우고 시작하고 싶습니다. -->
<property name="sql" value="insert into xxxx (gubun,base_dt) VALUES (?,?) " />
<property name="params" value="gubun,base_dt" />
<property name="dataSource" ref="dataSource-xxx" />
</bean>
<!-- Processor -->
<bean id="xxxJob.xxxStep.itemProcessor" class="com.koies.batch.crawling.processor.CrawlingProcessor" />
</beans>
환경정보
-
- OS 정보 : win11
- 표준프레임워크 버전 : 4.1
- JDK(JRE) 정보 : 17
- WAS 정보 : tomcat
- DB 정보 : maria, oracle
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크 센터입니다.
insert 전처리가 필요하신 경우는
Spring Batch의 ItemWriter를 상속받은 커스텀 writer를 만들어서
그 안에서 delete 쿼리를 실행하는 방법을 사용하는 방식을 고려할 수 있습니다.
다음 링크의 공식 문서를 참조 부탁드립니다.
https://docs.spring.io/spring-batch/reference/readers-and-writers/custom.html
감사합니다.
표준프레임워크 센터입니다.
insert 전처리가 필요하신 경우는
Spring Batch의 ItemWriter를 상속받은 커스텀 writer를 만들어서
그 안에서 delete 쿼리를 실행하는 방법을 사용하는 방식을 고려할 수 있습니다.
다음 링크의 공식 문서를 참조 부탁드립니다.
https://docs.spring.io/spring-batch/reference/readers-and-writers/custom.html
감사합니다.