gpt4 book ai didi

java - 设置数据库连接属性的不同方式

转载 作者:行者123 更新时间:2023-11-29 02:50:50 24 4
gpt4 key购买 nike

当尝试将 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;
}

甚至还有第三种方式,只需将它们“原始”添加到 URL:

jdbc:mysql://localhost:3306/?useUnicode=yes&characterEncoding=UTF-8

最佳答案

据我所知,这些传递连接参数的方法没有区别。

  1. 有数据源的配置参数,它们将在连接创建时传递给“DriverManager.getConnection()”。

  2. 所有连接属性“hibernate.connection”。也用于传递给“DriverManager.getConnection()”。在大多数情况下,它将像第一种情况一样在内部将属性传递给数据源。

  3. 是的,您可以通过在 jdbc url 中声明它们来传递所有必需的参数。

关于java - 设置数据库连接属性的不同方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36138382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com