... | ... | @@ -47,28 +47,15 @@ Créez un fichier properties qui va reprendre l'ensemble de ses informations, pl |
|
|
|
|
|
Par exemple, `src\main\resources\spring\database.properties` :
|
|
|
|
|
|
```properties
|
|
|
# Exemple pour Hibernate 4
|
|
|
db.driver=com.mysql.cj.jdbc.Driver
|
|
|
db.url=jdbc:mysql://localhost/banque?useSSL=false&serverTimezone=Europe/Paris&allowPublicKeyRetrieval=true
|
|
|
db.login=root
|
|
|
db.password=
|
|
|
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
|
|
|
|
|
|
hibernate.connection.pool_size=20
|
|
|
hibernate.cache.provider_class=org.hibernate.cache.internal.NoCacheProvider
|
|
|
hibernate.cache.use_second_level_cache=false
|
|
|
```
|
|
|
|
|
|
```properties
|
|
|
# Exemple pour Hibernate 5
|
|
|
db.driver=com.mysql.cj.jdbc.Driver
|
|
|
db.url=jdbc:mysql://localhost/banque?useSSL=false&serverTimezone=Europe/Paris&allowPublicKeyRetrieval=true
|
|
|
db.login=root
|
|
|
db.password=
|
|
|
hibernate.dialect.storage_engine=innodb
|
|
|
|
|
|
# https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#configurations
|
|
|
hibernate.dialect.storage_engine=innodb
|
|
|
hibernate.connection.pool_size=20
|
|
|
hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider
|
|
|
hibernate.cache.use_second_level_cache=false
|
... | ... | @@ -153,31 +140,6 @@ abstract class AbstractDAO<T extends IEntity> implements IDAO<T> { |
|
|
## Par fichier XML - data-context.xml
|
|
|
Créez un fichier XML `src\main\resources\spring\data-context.xml`, inspirez vous des exercices précédents.
|
|
|
|
|
|
En Hibernate 4, la [sessionFactory](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/orm/hibernate5/LocalSessionFactoryBean.html) ressemblera à :
|
|
|
|
|
|
```xml
|
|
|
...
|
|
|
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
|
|
|
<property name="dataSource" ref="dataSource" />
|
|
|
<property name="mappingResources">
|
|
|
<list>
|
|
|
<value>hibernate/compte.hbm.xml</value>
|
|
|
<value>hibernate/operation.hbm.xml</value>
|
|
|
<value>hibernate/utilisateur.hbm.xml</value>
|
|
|
</list>
|
|
|
</property>
|
|
|
<property name="hibernateProperties">
|
|
|
<props>
|
|
|
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
|
|
|
<prop key="hibernate.connection.pool_size">${hibernate.connection.pool_size}</prop>
|
|
|
<prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>
|
|
|
<prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop>
|
|
|
</props>
|
|
|
</property>
|
|
|
</bean>
|
|
|
...
|
|
|
```
|
|
|
|
|
|
En Hibernate 5, la [sessionFactory](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/orm/hibernate5/LocalSessionFactoryBean.html) ressemblera à :
|
|
|
|
|
|
```xml
|
... | ... | @@ -216,30 +178,6 @@ Vous ne devez pas déclarer vos beans DAOs, les annotations [@Repository](https: |
|
|
## Par classe de configuration - SpringConfigurationData
|
|
|
Créez une classe de configuration Spring `src\main\java\com\banque\spring\SpringConfigurationData.java`, inspirez vous des exercices précédents.
|
|
|
|
|
|
En Hibernate 4, la [sessionFactory](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/orm/hibernate5/LocalSessionFactoryBean.html) ressemblera à :
|
|
|
|
|
|
```java
|
|
|
@Bean
|
|
|
public org.springframework.orm.hibernate4.LocalSessionFactoryBean sessionFactory(
|
|
|
DataSource dataSource,
|
|
|
@Value("${hibernate.dialect}") String dialect,
|
|
|
@Value("${hibernate.connection.pool_size}") Integer pSize,
|
|
|
@Value("${hibernate.cache.provider_class}") String cacheClass,
|
|
|
@Value("${hibernate.cache.use_second_level_cache}") Boolean useCache) {
|
|
|
|
|
|
org.springframework.orm.hibernate4.LocalSessionFactoryBean resu = new org.springframework.orm.hibernate4.LocalSessionFactoryBean();
|
|
|
resu.setDataSource(dataSource);
|
|
|
resu.setMappingResources("hibernate/compte.hbm.xml", "hibernate/operation.hbm.xml","hibernate/utilisateur.hbm.xml");
|
|
|
Properties hibernateProperties = new Properties();
|
|
|
hibernateProperties.put("hibernate.dialect", dialect);
|
|
|
hibernateProperties.put("hibernate.connection.pool_size", pSize);
|
|
|
hibernateProperties.put("hibernate.cache.provider_class", cacheClass);
|
|
|
hibernateProperties.put("hibernate.cache.use_second_level_cache", useCache);
|
|
|
resu.setHibernateProperties(hibernateProperties);
|
|
|
return resu;
|
|
|
}
|
|
|
```
|
|
|
|
|
|
En Hibernate 5, la [sessionFactory](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/orm/hibernate5/LocalSessionFactoryBean.html) ressemblera à :
|
|
|
|
|
|
```java
|
... | ... | |