Search in sources :

Example 6 with ResourceDatabasePopulator

use of org.springframework.jdbc.datasource.init.ResourceDatabasePopulator in project spring-security by spring-projects.

the class DataConfig method initDatabase.

@Bean
@DependsOn("entityManagerFactory")
public ResourceDatabasePopulator initDatabase(DataSource dataSource) throws Exception {
    ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
    populator.addScript(new ClassPathResource("data.sql"));
    populator.populate(dataSource.getConnection());
    return populator;
}
Also used : ResourceDatabasePopulator(org.springframework.jdbc.datasource.init.ResourceDatabasePopulator) ClassPathResource(org.springframework.core.io.ClassPathResource) DependsOn(org.springframework.context.annotation.DependsOn) Bean(org.springframework.context.annotation.Bean) LocalContainerEntityManagerFactoryBean(org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean)

Example 7 with ResourceDatabasePopulator

use of org.springframework.jdbc.datasource.init.ResourceDatabasePopulator in project spring-security by spring-projects.

the class DataConfiguration method initDatabase.

@Bean
@DependsOn("entityManagerFactory")
public ResourceDatabasePopulator initDatabase(DataSource dataSource) throws Exception {
    ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
    populator.addScript(new ClassPathResource("data.sql"));
    populator.populate(dataSource.getConnection());
    return populator;
}
Also used : ResourceDatabasePopulator(org.springframework.jdbc.datasource.init.ResourceDatabasePopulator) ClassPathResource(org.springframework.core.io.ClassPathResource) DependsOn(org.springframework.context.annotation.DependsOn) Bean(org.springframework.context.annotation.Bean) LocalContainerEntityManagerFactoryBean(org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean)

Example 8 with ResourceDatabasePopulator

use of org.springframework.jdbc.datasource.init.ResourceDatabasePopulator in project spring-boot by spring-projects.

the class AbstractDatabaseInitializer method initialize.

@PostConstruct
protected void initialize() {
    if (!isEnabled()) {
        return;
    }
    ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
    String schemaLocation = getSchemaLocation();
    if (schemaLocation.contains(PLATFORM_PLACEHOLDER)) {
        String platform = getDatabaseName();
        schemaLocation = schemaLocation.replace(PLATFORM_PLACEHOLDER, platform);
    }
    populator.addScript(this.resourceLoader.getResource(schemaLocation));
    populator.setContinueOnError(true);
    DatabasePopulatorUtils.execute(populator, this.dataSource);
}
Also used : ResourceDatabasePopulator(org.springframework.jdbc.datasource.init.ResourceDatabasePopulator) PostConstruct(javax.annotation.PostConstruct)

Example 9 with ResourceDatabasePopulator

use of org.springframework.jdbc.datasource.init.ResourceDatabasePopulator in project spring-boot by spring-projects.

the class DataSourceInitializer method runScripts.

private void runScripts(List<Resource> resources, String username, String password) {
    if (resources.isEmpty()) {
        return;
    }
    ResourceDatabasePopulator populator = new ResourceDatabasePopulator();
    populator.setContinueOnError(this.properties.isContinueOnError());
    populator.setSeparator(this.properties.getSeparator());
    if (this.properties.getSqlScriptEncoding() != null) {
        populator.setSqlScriptEncoding(this.properties.getSqlScriptEncoding().name());
    }
    for (Resource resource : resources) {
        populator.addScript(resource);
    }
    DataSource dataSource = this.dataSource;
    if (StringUtils.hasText(username) && StringUtils.hasText(password)) {
        dataSource = DataSourceBuilder.create(this.properties.getClassLoader()).driverClassName(this.properties.determineDriverClassName()).url(this.properties.determineUrl()).username(username).password(password).build();
    }
    DatabasePopulatorUtils.execute(populator, dataSource);
}
Also used : ResourceDatabasePopulator(org.springframework.jdbc.datasource.init.ResourceDatabasePopulator) Resource(org.springframework.core.io.Resource) DataSource(javax.sql.DataSource)

Example 10 with ResourceDatabasePopulator

use of org.springframework.jdbc.datasource.init.ResourceDatabasePopulator in project spring-framework by spring-projects.

the class EmbeddedDatabaseFactoryBeanTests method testFactoryBeanLifecycle.

@Test
public void testFactoryBeanLifecycle() throws Exception {
    EmbeddedDatabaseFactoryBean bean = new EmbeddedDatabaseFactoryBean();
    ResourceDatabasePopulator populator = new ResourceDatabasePopulator(resource("db-schema.sql"), resource("db-test-data.sql"));
    bean.setDatabasePopulator(populator);
    bean.afterPropertiesSet();
    DataSource ds = bean.getObject();
    JdbcTemplate template = new JdbcTemplate(ds);
    assertEquals("Keith", template.queryForObject("select NAME from T_TEST", String.class));
    bean.destroy();
}
Also used : ResourceDatabasePopulator(org.springframework.jdbc.datasource.init.ResourceDatabasePopulator) JdbcTemplate(org.springframework.jdbc.core.JdbcTemplate) DataSource(javax.sql.DataSource) Test(org.junit.Test)

Aggregations

ResourceDatabasePopulator (org.springframework.jdbc.datasource.init.ResourceDatabasePopulator)17 Resource (org.springframework.core.io.Resource)7 ClassPathResource (org.springframework.core.io.ClassPathResource)6 DataSource (javax.sql.DataSource)3 Bean (org.springframework.context.annotation.Bean)3 DependsOn (org.springframework.context.annotation.DependsOn)3 LocalContainerEntityManagerFactoryBean (org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean)3 Connection (java.sql.Connection)2 SQLException (java.sql.SQLException)2 Test (org.junit.Test)2 DataAccessException (org.springframework.dao.DataAccessException)2 PostConstruct (javax.annotation.PostConstruct)1 ByteArrayResource (org.springframework.core.io.ByteArrayResource)1 JdbcTemplate (org.springframework.jdbc.core.JdbcTemplate)1 PlatformTransactionManager (org.springframework.transaction.PlatformTransactionManager)1 Transactional (org.springframework.transaction.annotation.Transactional)1 DefaultTransactionAttribute (org.springframework.transaction.interceptor.DefaultTransactionAttribute)1 TransactionAttribute (org.springframework.transaction.interceptor.TransactionAttribute)1 TransactionTemplate (org.springframework.transaction.support.TransactionTemplate)1