Travaux pratiques
- Ajouter la dépendance vers spring-jdbc et vers un driver JDBC :
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<!-- exemple de connecteur jdbc -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.41</version>
</dependency>
- Créer une interface dev.paie.service.GradeService :
public interface GradeService {
void sauvegarder(Grade nouveauGrade);
void mettreAJour(Grade grade);
List<Grade> lister();
}
- Créer une classe dev.paie.service.GradeServiceJdbcTemplate (sans finaliser les méthodes de l'interface) :
@Service
public class GradeServiceJdbcTemplate implements GradeService {
private JdbcTemplate jdbcTemplate;
@Autowired
public GradeServiceJdbcTemplate(DataSource dataSource) {
super();
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
...
}
Pour que ce service soit utilisable, il faudrait qu'un bean de type java.sql.DataSource existe.
Créer une base de données MySQL sirh-paie et une table grade correspondant à l'entité dev.paie.entite.Grade.
Créer une configuration dev.paie.config.DataSourceMySQLConfig :
@Configuration
public class DataSourceMySQLConfig {
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/sirh-paie?useSSL=false");
dataSource.setUsername("sirh-paie");
dataSource.setPassword("sirh-paie");
return dataSource;
}
}
- Créer une classe de test _dev.paie.service.GradeServiceJdbcTemplateTest :
// TODO compléter la configuration
public class GradeServiceJdbcTemplateTest {
@Autowired private GradeService gradeService;
@Test
public void test_sauvegarder_lister_mettre_a_jour() {
// TODO sauvegarder un nouveau grade
// TODO vérifier qu'il est possible de récupérer le nouveau grade via la méthode lister
// TODO modifier un grade
// TODO vérifier que les modifications sont bien prises en compte via la méthode lister
}
}
Exécuter le test et vérifier qu'il est non passant.
Implémenter le service GradeServiceJdbcTemplate pour que le test soit passant. Vérifier que la base de données est bien impactée.