Support sqlScriptEncoding in schema.sql

Fixes gh-1165, fixes gh-1164
This commit is contained in:
Toshiaki Maki
2014-06-25 20:55:35 +09:00
committed by Dave Syer
parent 7e24c8499a
commit 9febd4a4cb
6 changed files with 45 additions and 0 deletions

View File

@@ -143,6 +143,33 @@ public class DataSourceInitializerTests {
template.queryForObject("SELECT COUNT(*) from SPAM", Integer.class));
}
@Test
public void testDataSourceInitializedWithExplicitSqlScriptEncoding() throws Exception {
this.context.register(DataSourceAutoConfiguration.class,
PropertyPlaceholderAutoConfiguration.class);
EnvironmentTestUtils.addEnvironment(
this.context,
"spring.datasource.initialize:true",
"spring.datasource.sqlScriptEncoding:UTF-8",
"spring.datasource.schema:"
+ ClassUtils.addResourcePathToPackagePath(getClass(),
"encoding-schema.sql"),
"spring.datasource.data:"
+ ClassUtils.addResourcePathToPackagePath(getClass(),
"encoding-data.sql"));
this.context.refresh();
DataSource dataSource = this.context.getBean(DataSource.class);
assertTrue(dataSource instanceof org.apache.tomcat.jdbc.pool.DataSource);
assertNotNull(dataSource);
JdbcOperations template = new JdbcTemplate(dataSource);
assertEquals(new Integer(2),
template.queryForObject("SELECT COUNT(*) from BAR", Integer.class));
assertEquals("bar",
template.queryForObject("SELECT name from BAR WHERE id=1", String.class));
assertEquals("ばー",
template.queryForObject("SELECT name from BAR WHERE id=2", String.class));
}
@Configuration
@EnableConfigurationProperties
protected static class TwoDataSources {

View File

@@ -0,0 +1,2 @@
INSERT INTO BAR(id, name) VALUES (1, 'bar');
INSERT INTO BAR(id, name) VALUES (2, 'ばー');

View File

@@ -0,0 +1,4 @@
CREATE TABLE BAR (
id INTEGER PRIMARY KEY,
name VARCHAR(30),
);