@Bean @Autowired public DatabasePopulator databasePopulator() { final ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); populator.setContinueOnError(false); populator.addScript(new ClassPathResource("products.sql")); return populator; }
final ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); populator.setSqlScriptEncoding(mergedSqlConfig.getEncoding()); populator.setSeparator(mergedSqlConfig.getSeparator()); populator.setCommentPrefix(mergedSqlConfig.getCommentPrefix()); populator.setBlockCommentStartDelimiter(mergedSqlConfig.getBlockCommentStartDelimiter()); populator.setBlockCommentEndDelimiter(mergedSqlConfig.getBlockCommentEndDelimiter()); populator.setContinueOnError(mergedSqlConfig.getErrorMode() == ErrorMode.CONTINUE_ON_ERROR); populator.setIgnoreFailedDrops(mergedSqlConfig.getErrorMode() == ErrorMode.IGNORE_FAILED_DROPS); populator.setScripts(scriptResources.toArray(new Resource[0])); if (logger.isDebugEnabled()) { logger.debug("Executing SQL scripts: " + ObjectUtils.nullSafeToString(scriptResources)); "supply at least a DataSource or PlatformTransactionManager.", testContext)); populator.execute(dataSource); testContext, new DefaultTransactionAttribute(propagation)); new TransactionTemplate(txMgr, txAttr).execute(status -> { populator.execute(finalDataSource); return null; });
@Override public void migrate(Connection connection) throws Exception { ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); populator.addScript(new ClassPathResource("org/cloudfoundry/identity/uaa/db/" + type + "/V1_5_2__initial_db.sql")); populator.setContinueOnError(true); populator.setIgnoreFailedDrops(true); populator.populate(connection); } }
protected DatabasePopulator getDatabasePopulator() { ResourceDatabasePopulator dbp = new ResourceDatabasePopulator(); dbp.setScripts(initScripts.toArray(new Resource[initScripts.size()])); return dbp; }
private ResourceDatabasePopulator createPopulator(ClassPathResource script) { logger.info("Creating database populator using script '{}'", script.getPath()); ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); populator.setSeparator(DB_TYPE_ORACLE.equals(dbType) ? "/" : ";"); populator.setIgnoreFailedDrops(true); populator.setSqlScriptEncoding(UTF_8.name()); populator.addScript(script); return populator; }
public static void runScript(DataSource dataSource, String stem) throws Exception { ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); String packageName = ClassUtils.getPackageName(TestUtils.class).replace(".", "/"); populator.addScript(new ClassPathResource(packageName.substring(0, packageName.lastIndexOf("/")) + "/" + stem + "-" + platform + ".sql")); Connection connection = dataSource.getConnection(); try { populator.populate(connection); } catch (ScriptStatementFailedException e) { // ignore } finally { DataSourceUtils.releaseConnection(connection, dataSource); } }
protected ResourceDatabasePopulator databasePopulator() { final ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); populator.setSqlScriptEncoding("UTF-8"); populator.addScript(drops); populator.addScript(sqlCreateTablesForm); populator.addScript(sqlCreateTables); populator.addScript(sqlCreateTablesActor); populator.addScript(sqlCreateSequencesServer); populator.addScript(sqlCreateSequencesForm); populator.addScript(sqlCreateConstraints); populator.addScript(sqlCreateConstraintsForm); populator.addScript(insertDadosSingular); return populator; }
@Test public void constructWithMultipleResourcesAndThenAddScript() { ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator(script1, script2); assertEquals(2, databasePopulator.scripts.size()); databasePopulator.addScript(script3); assertEquals(3, databasePopulator.scripts.size()); }
/** * @param sqlFile the sql file to execute * @param shouldContinueOnError * @throws IOException */ protected void executeSQLResource(final String sqlFile, boolean shouldContinueOnError) throws IOException, SQLException { final Resource sqlResource = getSQLResource(sqlFolder, sqlFile); ResourceDatabasePopulator populate = new ResourceDatabasePopulator(); populate.setContinueOnError(shouldContinueOnError); populate.setIgnoreFailedDrops(true); populate.addScript(sqlResource); populate.setSeparator(getSeparator()); populate.execute(datasource); logger.info("Executed SQL script " + sqlResource.getURL().getFile()); }
/** * Create a new embedded database builder with the given {@link ResourceLoader}. * @param resourceLoader the {@code ResourceLoader} to delegate to */ public EmbeddedDatabaseBuilder(ResourceLoader resourceLoader) { this.databaseFactory = new EmbeddedDatabaseFactory(); this.databasePopulator = new ResourceDatabasePopulator(); this.databaseFactory.setDatabasePopulator(this.databasePopulator); this.resourceLoader = resourceLoader; }
/** * Execute the given SQL script. * <p>Use with caution outside of a transaction! * <p>The script will normally be loaded by classpath. * <p><b>Do not use this method to execute DDL if you expect rollback.</b> * @param sqlResourcePath the Spring resource path for the SQL script * @param continueOnError whether or not to continue without throwing an * exception in the event of an error * @throws DataAccessException if there is an error executing a statement * @see ResourceDatabasePopulator * @see #setSqlScriptEncoding */ protected void executeSqlScript(String sqlResourcePath, boolean continueOnError) throws DataAccessException { DataSource ds = this.jdbcTemplate.getDataSource(); Assert.state(ds != null, "No DataSource set"); Assert.state(this.applicationContext != null, "No ApplicationContext set"); Resource resource = this.applicationContext.getResource(sqlResourcePath); new ResourceDatabasePopulator(continueOnError, false, this.sqlScriptEncoding, resource).execute(ds); }
@Test public void setScriptsAndThenAddScript() { ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator(); assertEquals(0, databasePopulator.scripts.size()); databasePopulator.setScripts(script1, script2); assertEquals(2, databasePopulator.scripts.size()); databasePopulator.addScript(script3); assertEquals(3, databasePopulator.scripts.size()); }
@Before public void setUp() { ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator(); databasePopulator.addScript(new ClassPathResource("/org/springframework/batch/core/schema-drop-hsqldb.sql")); databasePopulator.addScript(new ClassPathResource("/org/springframework/batch/core/schema-hsqldb.sql")); databasePopulator.addScript(new ClassPathResource("/business-schema-hsqldb.sql")); databasePopulator.execute(this.dataSource); }
@Test public void scriptWithoutStatementSeparator() throws Exception { databasePopulator.setSeparator(ScriptUtils.EOF_STATEMENT_SEPARATOR); databasePopulator.addScript(resource("drop-users-schema.sql")); databasePopulator.addScript(resource("users-schema-without-separator.sql")); databasePopulator.addScript(resource("users-data-without-separator.sql")); DatabasePopulatorUtils.execute(databasePopulator, db); assertUsersDatabaseCreated("Brannen"); }
/** * Add an SQL script to execute to initialize or populate the database. * @param script the script to execute * @return {@code this}, to facilitate method chaining */ public EmbeddedDatabaseBuilder addScript(String script) { this.databasePopulator.addScript(this.resourceLoader.getResource(script)); return this; }
/** * DriverName: * 1:MySQL Connector Java; * 2:Oracle JDBC driver; * 3:H2 JDBC Driver * @throws SQLException */ @PostConstruct public void initData() throws SQLException { String dbDriverName = getDBDriveName(); Logger.info("当前数据库驱动名称:"+dbDriverName); Logger.info("检查是否需要初始化脚本"); Query query = new Query("from User"); Long userCount = commonRepository.count(query.getCount(), new HashMap<String, Object>()); if (userCount == 0) { Logger.info("开始进行初始化脚本"); ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); populator.setSqlScriptEncoding("utf-8"); populator.addScript(dataScript); populator.populate(dataSource.getConnection()); Logger.info("初始化脚本已完成"); return; }else{ Logger.info("不需要初始化脚本"); } } /**
private DatabasePopulator databaseStoreProcedurePopulator(DatabaseConfig databaseConfig) { final ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); for(Resource schema : storedProcedureDefinitions){ populator.addScript(schema); } //stored procedure scripts (in snapshot-common-db) are delimited with the # sign //to get around this problem: http://stackoverflow.com/questions/15486516/using-springs-jdbcinitialize-database-how-do-i-run-a-script-with-a-stored-p populator.setSeparator("#"); return populator; }
private DatabasePopulator databasePopulator() throws IOException { ResourceDatabasePopulator resourceDatabasePopulator = new ResourceDatabasePopulator(); resourceDatabasePopulator.setContinueOnError(false); resourceDatabasePopulator.addScripts( new PathMatchingResourcePatternResolver().getResources("classpath:/h2/*.sql") ); return resourceDatabasePopulator; }
import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; import javax.sql.DataSource; DataSource dataSource = getYourMySQLDriverBackedDataSource(); ResourceDatabasePopulator rdp = new ResourceDatabasePopulator(); rdp.addScript(new ClassPathResource( "mysql-scripts/firstScript.sql")); rdp.addScript(new ClassPathResource( "mysql-scripts/secondScript.sql")); try { Connection connection = dataSource.getConnection(); rdp.populate(connection); // this starts the script execution, in the order as added } catch (SQLException e) { e.printStackTrace(); }
sqlFile = "com/entdiy/schedule/data/quartz/tables_mysql.sql"; ClassPathResource resource = new ClassPathResource(sqlFile); resourceDatabasePopulator = new ResourceDatabasePopulator(resource); } else if (name.indexOf("h2") > -1) { sqlFile = "com/entdiy/schedule/data/quartz/tables_h2.sql"; ClassPathResource resource = new ClassPathResource(sqlFile); resourceDatabasePopulator = new ResourceDatabasePopulator(resource); } else if (name.indexOf("microsoft") > -1 || name.indexOf("sql server") > -1) { resourceDatabasePopulator = new ResourceDatabasePopulator(resource); resourceDatabasePopulator.setSeparator("GO"); } else if (name.indexOf("oracle") > -1) { resourceDatabasePopulator = new ResourceDatabasePopulator(resource); resourceDatabasePopulator.populate(connection); } else { throw new UnsupportedOperationException("Undefined DatabaseProductName: " + name);