En fin de compte, il apparaît assez clairement avec l’expérience et le recul que les quelques facilités que JPA / Hibernate est susceptible de proposer sont insignifiantes en face de l’infinité de bugs et de difficultés de développement qu’il impose. Cette prise de conscience réalisée, le retour aux fondamentaux devient inéluctable.
private DataSource mDataSource;
public List listCommandeForClientId(int pIdClient) {
String lSelectCommandeQuery = "SELECT commande_id FROM client WHERE client_id=? ORDER BY id DESC";
List lResults = new ArrayList();
try (Connection lConnection = mDataSource.getConnection();
PreparedStatement lPreparedStatement = lConnection
.prepareStatement(lSelectCommandeQuery);)
{
lPreparedStatement.setInt(1, pIdClient);
ResultSet rs = lPreparedStatement.executeQuery();
Commande lCommande = null;
while (rs.next()) {
lCommande = new Commande();
lCommande.setId(rs.getInt("commande_id"));
lResults.add(lCommande);
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return lResults;
}
Le retour au JDBC est facilité par l’injection de la datasource et la gestion des pools de connexions par le serveur d’application, ainsi que par la structure de langage try-with-resources. De ce fait, cette technologie devient simple à implémenter, tout en étant clairement la plus performante dans le monde JavaLangage de développement très populaire !. L’ensemble des contraintes négatives apportées par JPA / Hibernate disparaissent, tandis qu’à l’inverse on regrette peu des avantages de ce dernier. On concèdera tout de même que les mappings champs à champs sont un peu fastidieux. Mais à chaque instant on sait ce que l’on a dans ses objets d’encapsulation de données, et l’on ne passe que les requêtes nécessaires. L’abandon d’Hibernate au profit de JDBC est donc bien bénéfique.
jpa
Parlons mobilité, parlons ERP ! Et si l’on rendait mobile une des applications web essentielles de votre entreprise ? Quelles optimisations sont nécessaires pour quels gains ?
Découvrez la planche #34 !
Vous vous demandez si toutes vos images doivent obligatoirement être au format 3840 x 2160 ? Est-il nécessaire de charger celles qui ne sont pas visibles à l'écran ? Dans cet article, nous aborderons ces questions et explorerons des solutions d'optimisation, notamment grâce à la technique du lazy loading.