Install/Configure Oracle express
- Oracle xe installer for linux (I don't care if you're running linux or not, this guy is going in a VM):http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html
-
sqlplus /nolog
-
connect sys as sysdba
Oracle JDBC Driver shenanigans
- Download the JDBC driver:http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html
- Here's where things get interesting. Apparently
gradle
can't load this jar from aflatFile
repository. So the workaround is to create a local maven repository and load this 1 jar into it. -
cd
to the directory where the ojdbc jar is located -
mvn install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.4 -Dpackaging=jar
- In the above command make sure to adjust the file, artifactId, and version to match the driver you downloaded.
https://github.com/shawn-mcginty/spring-boot-oracle-example
How to copy from CSV file to the database.
https://github.com/wbotelhos/spring-batch-flat-file-database
通过 spring boot 启动spring batch读取csv文件并使用hibernate将插入MySQL数据库
https://github.com/zyongjava/spring-batch
spring-batch-jpa
This is an example project that contains everything needed to use Spring Batch 3 to read from a database via JPA and write to a database via JPA. There are also tests.
There were two blog entries associated with this project.
Blogs
Spring Batch – reading and writing JPA
This is a simple Spring Batch project. This implementation will read from a database table and write to a database table via JPA.
http://javaninja.net/2016/02/spring-batch-reading-and-writing-jpa/
Spring Batch JPA Testing with Transactions
This blog goes over all of the testing options I was able to discover for Spring Batch with JPA.
http://javaninja.net/2016/02/spring-batch-jpa-testing-with-transactions/
https://github.com/sheltonn/spring-batch-jpa
Spring Boot Spring Batch JPA PostGreSQL
org.springframework.batch.item.database.JpaItemWriter
/**
* Nothing special here a simple JpaItemWriter
* @return
*/
@Bean
public ItemWriter<Person> writer() {
JpaItemWriter writer = new JpaItemWriter<Person>();
writer.setEntityManagerFactory(entityManagerFactory().getObject());
return writer;
}
/**
* As data source we use an external database
*
* @return
*/
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(databaseDriver);
dataSource.setUrl(databaseUrl);
dataSource.setUsername(databaseUsername);
dataSource.setPassword(databasePassword);
return dataSource;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();
lef.setPackagesToScan("com.iqmsoft.spring.batch");
lef.setDataSource(dataSource());
lef.setJpaVendorAdapter(jpaVendorAdapter());
lef.setJpaProperties(new Properties());
return lef;
}
@Bean
public JpaVendorAdapter jpaVendorAdapter() {
HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter();
jpaVendorAdapter.setDatabase(Database.POSTGRESQL);
jpaVendorAdapter.setGenerateDdl(true);
jpaVendorAdapter.setShowSql(false);
jpaVendorAdapter.setDatabasePlatform("org.hibernate.dialect.PostgreSQLDialect");
return jpaVendorAdapter;
}
https://github.com/Murugar/SpringBootBatchJPA