RESOLVED - issue BATCH-1459: H2 support

This commit is contained in:
dsyer
2009-12-19 16:34:15 +00:00
parent 5bfd4addca
commit 68b5a4c935
33 changed files with 474 additions and 28 deletions

View File

@@ -0,0 +1,15 @@
# Placeholders batch.*
# for H2:
batch.jdbc.driver=org.h2.jdbc.JdbcConnection
batch.jdbc.url=jdbc:h2:file:target/data/h2
batch.jdbc.user=sa
batch.jdbc.password=
batch.jdbc.testWhileIdle=false
batch.jdbc.validationQuery=
batch.drop.script=classpath:/org/springframework/batch/core/schema-drop-h2.sql
batch.schema.script=classpath:/org/springframework/batch/core/schema-h2.sql
batch.business.schema.script=classpath:/business-schema-h2.sql
batch.data.source.init=true
batch.database.incrementer.class=org.springframework.jdbc.support.incrementer.H2SequenceMaxValueIncrementer
batch.database.incrementer.parent=sequenceIncrementerParent
batch.grid.size=2

View File

@@ -4,12 +4,13 @@ batch.jdbc.driver=oracle.jdbc.OracleDriver
batch.jdbc.url=jdbc:oracle:thin:@//dbhost:1521/xe
batch.jdbc.user=spring
batch.jdbc.password=spring
batch.schema=
batch.jndi.name=
batch.naming.factory.initial=
batch.naming.provider.url=
batch.jdbc.testWhileIdle=false
batch.jdbc.validationQuery=
batch.schema.script=/org/springframework/batch/core/schema-oracle10g.sql
batch.business.schema.script=business-schema-oracle10g.sql
batch.data.source.init=true
batch.database.incrementer.class=org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer
batch.database.incrementer.parent=sequenceIncrementerParent
batch.lob.handler.class=org.springframework.jdbc.support.lob.DefaultLobHandler
batch.grid.size=2

View File

@@ -36,7 +36,7 @@ CREATE TABLE CUSTOMER (
ID BIGINT NOT NULL PRIMARY KEY ,
VERSION BIGINT ,
NAME VARCHAR(45) ,
CREDIT DECIMAL(8,2)
CREDIT DECIMAL(10,2)
) ;
INSERT INTO CUSTOMER (ID, VERSION, NAME, CREDIT) VALUES (1, 0, 'customer1', 100000);

View File

@@ -13,7 +13,7 @@ DROP TABLE ERROR_LOG ;
-- Autogenerated: do not edit this file
CREATE TABLE CUSTOMER_SEQ (ID BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, DUMMY VARCHAR(1));
INSERT INTO CUSTOMER_SEQ (ID) values (4);
INSERT INTO CUSTOMER_SEQ (ID) values (5);
CREATE TABLE BATCH_STAGING_SEQ (ID BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, DUMMY VARCHAR(1));
INSERT INTO BATCH_STAGING_SEQ (ID) values (0);
CREATE TABLE TRADE_SEQ (ID BIGINT PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, DUMMY VARCHAR(1));
@@ -39,7 +39,7 @@ CREATE TABLE CUSTOMER (
ID BIGINT NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
VERSION BIGINT ,
NAME VARCHAR(45) ,
CREDIT DECIMAL(8,2)
CREDIT DECIMAL(10,2)
) ;
INSERT INTO CUSTOMER (ID, VERSION, NAME, CREDIT) VALUES (1, 0, 'customer1', 100000);

View File

@@ -0,0 +1,93 @@
-- Autogenerated: do not edit this file
DROP SEQUENCE BATCH_STAGING_SEQ IF EXISTS;
DROP SEQUENCE TRADE_SEQ IF EXISTS;
DROP SEQUENCE CUSTOMER_SEQ IF EXISTS;
DROP TABLE BATCH_STAGING IF EXISTS;
DROP TABLE TRADE IF EXISTS;
DROP TABLE CUSTOMER IF EXISTS;
DROP TABLE PLAYERS IF EXISTS;
DROP TABLE GAMES IF EXISTS;
DROP TABLE PLAYER_SUMMARY IF EXISTS;
DROP TABLE ERROR_LOG IF EXISTS;
-- Autogenerated: do not edit this file
CREATE SEQUENCE CUSTOMER_SEQ START WITH 5;
CREATE SEQUENCE BATCH_STAGING_SEQ START WITH 0;
CREATE SEQUENCE TRADE_SEQ START WITH 0;
CREATE TABLE BATCH_STAGING (
ID BIGINT IDENTITY NOT NULL PRIMARY KEY ,
JOB_ID BIGINT NOT NULL,
VALUE LONGVARBINARY NOT NULL,
PROCESSED CHAR(1) NOT NULL
) ;
CREATE TABLE TRADE (
ID BIGINT IDENTITY NOT NULL PRIMARY KEY ,
VERSION BIGINT ,
ISIN VARCHAR(45) NOT NULL,
QUANTITY BIGINT ,
PRICE DECIMAL(8,2) ,
CUSTOMER VARCHAR(45)
) ;
CREATE TABLE CUSTOMER (
ID BIGINT IDENTITY NOT NULL PRIMARY KEY ,
VERSION BIGINT ,
NAME VARCHAR(45) ,
CREDIT DECIMAL(10,2)
) ;
INSERT INTO CUSTOMER (ID, VERSION, NAME, CREDIT) VALUES (1, 0, 'customer1', 100000);
INSERT INTO CUSTOMER (ID, VERSION, NAME, CREDIT) VALUES (2, 0, 'customer2', 100000);
INSERT INTO CUSTOMER (ID, VERSION, NAME, CREDIT) VALUES (3, 0, 'customer3', 100000);
INSERT INTO CUSTOMER (ID, VERSION, NAME, CREDIT) VALUES (4, 0, 'customer4', 100000);
CREATE TABLE PLAYERS (
PLAYER_ID CHAR(8) NOT NULL PRIMARY KEY,
LAST_NAME VARCHAR(35) NOT NULL,
FIRST_NAME VARCHAR(25) NOT NULL,
POS VARCHAR(10) ,
YEAR_OF_BIRTH BIGINT NOT NULL,
YEAR_DRAFTED BIGINT NOT NULL
) ;
CREATE TABLE GAMES (
PLAYER_ID CHAR(8) NOT NULL,
YEAR_NO BIGINT NOT NULL,
TEAM CHAR(3) NOT NULL,
WEEK BIGINT NOT NULL,
OPPONENT CHAR(3) ,
COMPLETES BIGINT ,
ATTEMPTS BIGINT ,
PASSING_YARDS BIGINT ,
PASSING_TD BIGINT ,
INTERCEPTIONS BIGINT ,
RUSHES BIGINT ,
RUSH_YARDS BIGINT ,
RECEPTIONS BIGINT ,
RECEPTIONS_YARDS BIGINT ,
TOTAL_TD BIGINT
) ;
CREATE TABLE PLAYER_SUMMARY (
ID CHAR(8) NOT NULL,
YEAR_NO BIGINT NOT NULL,
COMPLETES BIGINT NOT NULL ,
ATTEMPTS BIGINT NOT NULL ,
PASSING_YARDS BIGINT NOT NULL ,
PASSING_TD BIGINT NOT NULL ,
INTERCEPTIONS BIGINT NOT NULL ,
RUSHES BIGINT NOT NULL ,
RUSH_YARDS BIGINT NOT NULL ,
RECEPTIONS BIGINT NOT NULL ,
RECEPTIONS_YARDS BIGINT NOT NULL ,
TOTAL_TD BIGINT NOT NULL
) ;
CREATE TABLE ERROR_LOG (
JOB_NAME CHAR(20) ,
STEP_NAME CHAR(20) ,
MESSAGE VARCHAR(300) NOT NULL
) ;

View File

@@ -15,7 +15,7 @@ DROP TABLE ERROR_LOG IF EXISTS;
CREATE TABLE CUSTOMER_SEQ (
ID BIGINT IDENTITY
);
INSERT INTO CUSTOMER_SEQ (ID) values (4);
INSERT INTO CUSTOMER_SEQ (ID) values (5);
CREATE TABLE BATCH_STAGING_SEQ (
ID BIGINT IDENTITY
);
@@ -45,7 +45,7 @@ CREATE TABLE CUSTOMER (
ID BIGINT IDENTITY NOT NULL PRIMARY KEY ,
VERSION BIGINT ,
NAME VARCHAR(45) ,
CREDIT DECIMAL(8,2)
CREDIT DECIMAL(10,2)
) ;
INSERT INTO CUSTOMER (ID, VERSION, NAME, CREDIT) VALUES (1, 0, 'customer1', 100000);

View File

@@ -13,7 +13,7 @@ DROP TABLE IF EXISTS ERROR_LOG ;
-- Autogenerated: do not edit this file
CREATE TABLE CUSTOMER_SEQ (ID BIGINT NOT NULL) type=MYISAM;
INSERT INTO CUSTOMER_SEQ values(4);
INSERT INTO CUSTOMER_SEQ values(5);
CREATE TABLE BATCH_STAGING_SEQ (ID BIGINT NOT NULL) type=MYISAM;
INSERT INTO BATCH_STAGING_SEQ values(0);
CREATE TABLE TRADE_SEQ (ID BIGINT NOT NULL) type=MYISAM;
@@ -39,7 +39,7 @@ CREATE TABLE CUSTOMER (
ID BIGINT NOT NULL PRIMARY KEY ,
VERSION BIGINT ,
NAME VARCHAR(45) ,
CREDIT DECIMAL(8,2)
CREDIT DECIMAL(10,2)
) type=InnoDB;
INSERT INTO CUSTOMER (ID, VERSION, NAME, CREDIT) VALUES (1, 0, 'customer1', 100000);

View File

@@ -12,9 +12,9 @@ DROP TABLE ERROR_LOG ;
-- Autogenerated: do not edit this file
CREATE SEQUENCE CUSTOMER_SEQ;
CREATE SEQUENCE BATCH_STAGING_SEQ;
CREATE SEQUENCE TRADE_SEQ;
CREATE SEQUENCE CUSTOMER_SEQ START WITH 5;
CREATE SEQUENCE BATCH_STAGING_SEQ START WITH 0;
CREATE SEQUENCE TRADE_SEQ START WITH 0;
CREATE TABLE BATCH_STAGING (
ID NUMBER(38) NOT NULL PRIMARY KEY ,
@@ -36,7 +36,7 @@ CREATE TABLE CUSTOMER (
ID NUMBER(38) NOT NULL PRIMARY KEY ,
VERSION NUMBER(38) ,
NAME VARCHAR2(45) ,
CREDIT DECIMAL(8,2)
CREDIT DECIMAL(10,2)
) ;
INSERT INTO CUSTOMER (ID, VERSION, NAME, CREDIT) VALUES (1, 0, 'customer1', 100000);

View File

@@ -36,7 +36,7 @@ CREATE TABLE CUSTOMER (
ID BIGINT NOT NULL PRIMARY KEY ,
VERSION BIGINT ,
NAME VARCHAR(45) ,
CREDIT DECIMAL(8,2)
CREDIT DECIMAL(10,2)
) ;
INSERT INTO CUSTOMER (ID, VERSION, NAME, CREDIT) VALUES (1, 0, 'customer1', 100000);

View File

@@ -13,7 +13,7 @@ DROP TABLE ERROR_LOG ;
-- Autogenerated: do not edit this file
CREATE TABLE CUSTOMER_SEQ (ID BIGINT IDENTITY);
INSERT INTO CUSTOMER_SEQ (ID) values (4);
INSERT INTO CUSTOMER_SEQ (ID) values (5);
CREATE TABLE BATCH_STAGING_SEQ (ID BIGINT IDENTITY);
INSERT INTO BATCH_STAGING_SEQ (ID) values (0);
CREATE TABLE TRADE_SEQ (ID BIGINT IDENTITY);
@@ -39,7 +39,7 @@ CREATE TABLE CUSTOMER (
ID BIGINT NOT NULL PRIMARY KEY ,
VERSION BIGINT ,
NAME VARCHAR(45) ,
CREDIT DECIMAL(8,2)
CREDIT DECIMAL(10,2)
) ;
INSERT INTO CUSTOMER (ID, VERSION, NAME, CREDIT) VALUES (1, 0, 'customer1', 100000);

View File

@@ -13,7 +13,7 @@ DROP TABLE ERROR_LOG ;
-- Autogenerated: do not edit this file
CREATE TABLE CUSTOMER_SEQ (ID BIGINT IDENTITY);
INSERT INTO CUSTOMER_SEQ (ID) values (4);
INSERT INTO CUSTOMER_SEQ (ID) values (5);
CREATE TABLE BATCH_STAGING_SEQ (ID BIGINT IDENTITY);
INSERT INTO BATCH_STAGING_SEQ (ID) values (0);
CREATE TABLE TRADE_SEQ (ID BIGINT IDENTITY);
@@ -39,7 +39,7 @@ CREATE TABLE CUSTOMER (
ID BIGINT NOT NULL PRIMARY KEY ,
VERSION BIGINT NULL,
NAME VARCHAR(45) NULL,
CREDIT DECIMAL(8,2) NULL
CREDIT DECIMAL(10,2) NULL
) ;
INSERT INTO CUSTOMER (ID, VERSION, NAME, CREDIT) VALUES (1, 0, 'customer1', 100000);

View File

@@ -17,7 +17,7 @@
</property>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${batch.jdbc.driver}" />
<property name="url" value="${batch.jdbc.url}" />
<property name="username" value="${batch.jdbc.user}" />
@@ -55,8 +55,11 @@
<property name="order" value="1" />
</bean>
<bean id="columnIncrementerParent" class="${batch.database.incrementer.class}" abstract="true">
<bean id="sequenceIncrementerParent" class="${batch.database.incrementer.class}" abstract="true">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="columnIncrementerParent" class="${batch.database.incrementer.class}" abstract="true" parent="sequenceIncrementerParent">
<property name="columnName" value="ID" />
</bean>

View File

@@ -28,5 +28,6 @@ log4j.appender.chainsaw.layout=org.apache.log4j.xml.XMLLayout
#log4j.logger.org.springframework.orm=debug
### debug your specific package or classes with the following example
log4j.logger.org.springframework.jdbc=debug
log4j.logger.org.springframework.batch=debug
log4j.logger.org.springframework.batch.sample=debug

View File

@@ -0,0 +1,12 @@
platform=h2
# SQL language oddities
BIGINT = BIGINT
IDENTITY = IDENTITY
IFEXISTS = IF EXISTS
DOUBLE = DOUBLE PRECISION
DECIMAL = DECIMAL
BLOB = LONGVARBINARY
TIMESTAMP = TIMESTAMP
VARCHAR = VARCHAR
# for generating drop statements...
SEQUENCE = SEQUENCE

View File

@@ -0,0 +1,2 @@
#macro (sequence $name $value)CREATE SEQUENCE ${name} START WITH ${value};
#end

View File

@@ -1,6 +1,6 @@
-- Autogenerated: do not edit this file
#sequence( "CUSTOMER_SEQ" 4 )
#sequence( "CUSTOMER_SEQ" 5 )
#sequence( "BATCH_STAGING_SEQ" 0 )
#sequence( "TRADE_SEQ" 0 )
@@ -24,7 +24,7 @@ CREATE TABLE CUSTOMER (
ID ${BIGINT} $!{IDENTITY} NOT NULL PRIMARY KEY $!{GENERATED},
VERSION ${BIGINT} $!{NULL},
NAME ${VARCHAR}(45) $!{NULL},
CREDIT ${DECIMAL}(8,2) $!{NULL}
CREDIT ${DECIMAL}(10,2) $!{NULL}
) $!{VOODOO};
INSERT INTO CUSTOMER (ID, VERSION, NAME, CREDIT) VALUES (1, 0, 'customer1', 100000);

View File

@@ -1,2 +1,2 @@
#macro (sequence $name $value)CREATE SEQUENCE ${name};
#macro (sequence $name $value)CREATE SEQUENCE ${name} START WITH ${value};
#end