Génération d'identifiants personnalisés avec Spring Data JPA et Hibernate

Problématique de l'identifiant auto-incrémenté Lors de la persistance d'entités avec Spring Data JPA, un comportement inattendu survient fréquemment : même si une valeur d'identifiant (ID) est explicitement définie dans l'objet métier avant l'appel à la méthode save(), JPA l'ignore et laisse la base de données (comme MySQL) générer un identifia ...

Publié le 15 juin à 21h15

Configuration d'un environnement LAMP sous Ubuntu

Cet article présente le processus de mise en place d'une infrastructure LAMP, où L représente Ubuntu (le système d'exploitation), A correspond à Apache (le serveur web), M désigne MySQL (le système de gestion de base de données) et P fait référence à PHP (le langage de script). Ubuntu : Installation du système Étape 1 : Installation d'Ubuntu 22 ...

Publié le 15 juin à 20h29

Mécanismes de transaction et de verrouillage en base de données avec exemple de prévention de surpaiement concurrentiel

Caractéristiques fondamentales d'une transaction : ACID Pour aborder les niveaux d'isolation, il est essentiel de comprendre les propriétés clés d'une transaction, résumées par l'acronyme ACID : Atomicité (Atomicity) : Une transaction est une unité indivisible. Toutes ses opérations réussissent, ou elles sont toutes annulées. Cohérence (Consis ...

Publié le 15 juin à 19h59

Implémentation d'une fonction de recherche de fuseau horaire mondial avec FreeGeoDB

Utilisation de FreeGeoDB pour les requêtes de fuseaux horaires FreeGeoDB est une base de données géographique open-source qui inclut des informations sur les fuseaux horaires, les villes et les pays. Pour construire des applications gérant le temps à l'échelle mondiale, on peut exploiter ses données de fuseaux horaires structurées. Structure de ...

Publié le 15 juin à 05h49

Résolution des exercices SQL NiuKe 255, 253, 256 et LeetCode 1294

Exercice NiuKe 255 : Extraire les prénoms avec un rang impair dans la table employees Description Pour la table employees, affichez les prénoms (first_name) dont le rang, lorsqu'ils sont triés par ordre croissant de first_name, est impair. La table est définie comme suit : CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` d ...

Publié le 14 juin à 21h15

Les types de données dans MySQL : principes et exemples pratiques

Introduction aux types de données Le moteur de stockage influence la structrue des tables, et chaque colonne doit utiliser un type de données approprié. Ces types définissent la nature des valeurs stockées, leur taille et leur précision. Bien que la largeur soit souvent optionnelle, elle peut affecter l'affichage. Aperçu des types courants Num ...

Publié le 14 juin à 20h32

Introduction aux fondamentaux de PHP

PHP est un langage de script open source, principalement exécuté côté serveur, conçu pour le déveolppement web et intégrable directement dans le code HTML. Mise en place de l'environnement Pour commencer, installez un stack serveur adapté à votre système d'exploitation. Des solutions comme XAMPP, WAMP, MAMP ou LAMP fournissent un environnement ...

Publié le 14 juin à 17h09

Principes des index MySQL et optimisation des requêtes

Introduction Les systèmes d'application courants présentent un ratio lecture/écriture d'environ 10:1. Les opérations d'insertion et de mise à jour standard posent rarement des problèmes de performance. En production, ce sont les requêtes complexes qui sont les plus fréquentes et les plus susceptibles de causer des problèmes. L'optimisation des ...

Publié le 14 juin à 16h03

Sécurisation des accès MySQL : Gestion de la complexité et de l'expiration des mots de passe

Lors des audits de sécurité des bases de données, la politique de gestion des mots de passe est un critère fondamental. MySQL intègre nativement des mécanismes pour imposer des règles de robustesse et définir des cycles de vie pour les identifiants. Voici comment configurer ces paramètres pour renforcer la posture de sécurité de votre instance. ...

Publié le 14 juin à 03h52

Système de Gestion de Services de Tutorat Développé avec Spring Boot, Vue.js et Node.js

Pile technologique Backend : Spring Boot (Java) expose une API RESTful, intégrant MyBatis ou JPA pour l'interaction avec la base de données. Frontend : Vue 3 (Composition API) et TypeScript, avec une bibliothèque d'interfaces telle qu'Element Plus ou Vant UI. Couche intermédiaire : Node.js (Express ou NestJS) pour la logique métier spécifique o ...

Publié le 14 juin à 01h05