尝试将connectionProperties
设置为"useUnicode=yes;characterEncoding=utf8;"
时,它之间有什么区别:
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
Properties properties = new Properties();
properties.setProperty("useUnicode", true);
properties.setProperty("characterEncoding", "UTF-8"); // UTF-8 or utf8?
dataSource.setConnectionProperties(properties);
return dataSource;
}
这个?
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean entityManagerFactory =
new LocalContainerEntityManagerFactoryBean();
Properties properties = new Properties();
properties.setProperty("hibernate.connection.useUnicode", true);
properties.setProperty("hibernate.connection.characterEncoding", "UTF-8"); // UTF-8 or utf8?
entityManagerFactory.setJpaProperties(properties);
return entityManagerFactory;
}
甚至是第三种方式,只需添加它们' raw'到URL:
jdbc:mysql://localhost:3306/?useUnicode=yes&characterEncoding=UTF-8
答案 0 :(得分:1)
据我所知,这些传递连接参数的方法没有区别。
有数据源的配置参数,它们将在创建连接时传递给'DriverManager.getConnection()'。
所有连接属性'hibernate.connection。'用于传递给'DriverManager.getConnection()'。在大多数情况下,它将在第一个场景中将属性内部传递给数据源。
是的,你可以通过在jdbc url中声明它们来传递所有必需的参数。