在看本篇博客之前,希望您能先到http://xuanmeiku.taobao.com去转转,里面全是真皮炫美酷时尚女鞋,价格实惠!如果你看中了哪一款,可以加我qq1074992674,或者直接通过旺旺联系我!欢迎大家的骚扰!本人诚信经营,绝不做欺骗他人的事情!
上篇文章中我们已经实现了用游标方式读写DB数据表,上篇的itemReader中sql语句并没有条件的限制,只是将表中的所有的数据都查询出来,然后再保存,本篇文章我们主要介绍怎样通过给定字段的值查出相应的结果集。
项目结构如下:
与上篇文章不同的主要是batch.xml配置文件,其余的都一样,该配置文件的内容主要如下:
<?xml version="1.0" encoding="UTF-8"?>
<bean:beans xmlns="http://www.springframework.org/schema/batch"
xmlns:bean="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/batch
http://www.springframework.org/schema/batch/spring-batch-2.2.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
">
<bean:import resource="applicationContext.xml" />
<!-- Job信息的配置 -->
<job id="jdbcJob">
<step id="jdbcstep">
<tasklet>
<chunk reader="jdbcItemReader" processor="jdbcItemProcessor"
writer="jdbcItemWriter" commit-interval="1"></chunk>
</tasklet>
</step>
</job>
<!-- jdbcItemReader信息配置 -->
<bean:bean id="jdbcItemReader"
class="org.springframework.batch.item.database.JdbcCursorItemReader"
scope="step">
<bean:property name="dataSource" ref="dataSource"></bean:property>
<bean:property name="sql"
value="select ID,USERID,USERNAME,PASSWORD from T_USER where ID <= ?"></bean:property>
<bean:property name="preparedStatementSetter" ref="paramStatementSetter"></bean:property>
<bean:property name="verifyCursorPosition" value="true"></bean:property>
<bean:property name="rowMapper">
<bean:bean class="cn.lichunan.springbatch.rowmapper.UserRowMapper" />
</bean:property>
</bean:bean>
<bean:bean id="paramStatementSetter"
class="org.springframework.batch.core.resource.ListPreparedStatementSetter"
scope="step">
<bean:property name="parameters">
<bean:list>
<bean:value>#{jobParameters['id']}</bean:value>
</bean:list>
</bean:property>
</bean:bean>
<!-- jdbcItemWriter信息的配置 -->
<bean:bean id="jdbcItemWriter"
class="org.springframework.batch.item.database.JdbcBatchItemWriter">
<bean:property name="dataSource" ref="dataSource"></bean:property>
<bean:property name="sql"
value="insert into T_DESTUSER(ID,USERID,USERNAME,PASSWORD,UPDATETIME,UPDATEUSER)values(:id,:userId,:userName,:passWord,:updateTime,:updateUser)"></bean:property>
<bean:property name="itemSqlParameterSourceProvider">
<bean:bean
class="org.springframework.batch.item.database.BeanPropertyItemSqlParameterSourceProvider"></bean:bean>
</bean:property>
</bean:bean>
</bean:beans>
“paramStatementSetter”
的作用就是给sql参数中的?赋值。