2016-03-21 5 views
2

Beim Versuch connectionProperties-"useUnicode=yes;characterEncoding=utf8;" zu setzen, gibt es einen Unterschied zwischen diesen:Verschiedene Möglichkeiten der Einstellung DB-Verbindungseigenschaften

@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; 
} 

Und das?

@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; 
} 

Oder sogar eine dritte Möglichkeit, das Hinzufügen sie nur ‚raw‘ an die URL:

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

Antwort

1

Wie ich weiß, dass es in diesen Verfahren keine Unterschiede Verbindungsparameter vorbei ist.

  1. Es gibt Konfigurationsparameter von einer Datenquelle, werden sie zu ‚DriverManager.getConnection()‘ werden die Weitergabe Verbindung Schöpfung.

  2. Alle Verbindungseigenschaften 'Hibernate.connection'. verwenden, um auch an 'DriverManager.getConnection()' zu übergeben. In den meisten Fällen wird die interne Übergabe von Eigenschaften an die Datenquelle wie im ersten Szenario erfolgen.

  3. Ja, Sie können alle erforderlichen Parameter übergeben, indem Sie sie in jdbc url deklarieren.

Verwandte Themen