Les données sont des informations. Une donnée est un fait unique, comme votre prénom. Une base de données est une collection organisée de données. Dans le monde réel, un classeur est un type de base de données. Il contient des dossiers, chacun contenant des feuilles de papier. Les dossiers sont organisés d’une certaine manière, souvent par ordre alphabétique. Chaque feuille de papier est comme une donnée. De la même façon, les dossiers sur votre ordinateur sont comme une base de données. Les dossiers fournissent l’organisation, et chaque fichier est une donnée.
Une base de données relationnelle est une base de données organisée en tables, qui sont constituées de lignes et de colonnes. Vous pouvez considérer une table comme une feuille de calcul. Il existe deux façons principales d’accéder à une base de données relationnelle depuis Java :
- Java Database Connectivity (JDBC) : Accède aux données sous forme de lignes et de colonnes. JDBC est l’API couverte dans ce chapitre.
- Java Persistence API (JPA) : Accède aux données via des objets Java en utilisant un concept appelé object-relational mapping (ORM). L’idée est que vous n’avez pas à écrire beaucoup de code, et vous obtenez vos données dans des objets Java.
Une base de données relationnelle est accessible via le Langage de Requête Structurée (SQL). SQL est un langage de programmation utilisé pour interagir avec les enregistrements de la base de données. JDBC fonctionne en envoyant une commande SQL à la base de données, puis en traitant la réponse.
En plus des bases de données relationnelles, il existe un autre type de base de données appelé base de données NoSQL. Ces bases de données stockent leurs données dans un format autre que des tables, comme clé/valeur, stockage de documents et bases de données basées sur des graphes.
Dans les sections suivantes, nous présentons une petite base de données relationnelle que nous utiliserons pour les exemples de ce chapitre et présentons le SQL pour y accéder. Nous couvrons également quelques termes de vocabulaire que vous devez connaître.
Exécution des Exemples du Chapitre
Dans la plupart des chapitres de ce livre, vous devez écrire du code et essayer de nombreux exemples. Ce chapitre est différent. C’est toujours agréable d’essayer les exemples, mais vous pouvez probablement réussir juste en lisant ce chapitre et en maîtrisant les questions de révision.
Bien que nous devions utiliser une base de données pour les exemples, nous avons choisi la base de données HyperSQL. C’est une petite base de données en mémoire. En fait, vous n’avez besoin que d’un seul fichier JAR pour l’exécuter. Pour de vrais projets, nous aimons MySQL et PostgreSQL.
Les instructions pour télécharger et configurer la base de données pour les exemples du chapitre se trouvent sur :
www.selikoff.net/ocp17
Pour l’instant, vous n’avez pas besoin de comprendre le code sur le site Web. Il s’agit simplement de vous aider à démarrer. En bref, il se connecte à la base de données et crée deux tables. À la fin de ce chapitre, vous devriez comprendre comment créer une Connection
et une PreparedStatement
de cette manière.
Il existe de nombreux tutoriels pour installer et démarrer avec n’importe laquelle de ces bases de données. La configuration d’une base de données dépasse le cadre de ce livre, mais n’hésitez pas à poser des questions dans la section base de données/JDBC de CodeRanch. Vous pourriez même obtenir une réponse des auteurs.
Identification de la Structure d’une Base de Données Relationnelle
Notre base de données d’exemple comporte deux tables. L’une contient une ligne pour chaque espèce présente dans notre zoo. L’autre contient une ligne pour chaque animal. Ces deux tables sont liées car un animal appartient à une espèce. Ces relations sont la raison pour laquelle ce type de base de données est appelé base de données relationnelle.
Comme vous pouvez le voir, nous avons deux tables. L’une s’appelle exhibits
et l’autre s’appelle names
. Chaque table a une clé primaire, qui nous donne un moyen unique de référencer chaque ligne. Après tout, deux animaux peuvent avoir le même nom, mais ils ne peuvent pas avoir le même ID. Dans notre exemple, il se trouve que la clé primaire n’est qu’une seule colonne. Dans certaines situations, c’est une combinaison de colonnes appelée clé composée. Par exemple, un identifiant d’étudiant et une année pourraient constituer une clé composée.
Il y a deux lignes et trois colonnes dans la table exhibits
et cinq lignes et trois colonnes dans la table names
.
Table: exhibits | ||
---|---|---|
id integer | name varchar(255) | num_acres numeric |
1 | Éléphant d’Afrique | 7.5 |
2 | Zèbre | 1.2 |
id integer | species_id integer | name varchar(255) |
---|---|---|
1 | 1 | Elsa |
2 | 2 | Zelda |
3 | 1 | Ester |
4 | 1 | Eddie |
5 | 2 | Zoe |
Écriture de Requêtes SQL de Base
La chose la plus importante que vous devez savoir sur SQL est qu’il existe quatre types d’instructions pour travailler avec les données des tables. Elles sont appelées CRUD (Create, Read, Update, Delete). Les mots-clés SQL ne correspondent pas à l’acronyme, alors faites attention au mot-clé SQL pour chacun dans le tableau suivant.
Opération | Mot-clé SQL | Description |
---|---|---|
Create | INSERT | Ajoute une nouvelle ligne à la table |
Read | SELECT | Récupère des données de la table |
Update | UPDATE | Modifie zéro ou plusieurs lignes dans la table |
Delete | DELETE | Supprime zéro ou plusieurs lignes de la table |
Contrairement à Java, les mots-clés SQL ne sont pas sensibles à la casse. Cela signifie que select
, SELECT
et Select
sont tous équivalents. Comme les types primitifs de Java, SQL possède un certain nombre de types de données. La plupart sont explicites, comme INTEGER
. Il y a aussi DECIMAL
, qui fonctionne beaucoup comme un double
en Java. Le plus étrange est VARCHAR
, qui signifie “caractère variable”, et qui est comme un String
en Java. La partie variable signifie que la base de données ne doit utiliser que l’espace nécessaire pour stocker la valeur.
Bien que vous n’ayez pas besoin de savoir comment les écrire, nous présentons les quatre instructions SQL de base dans le tableau suivant, car elles apparaissent dans de nombreuses questions.
Mot-clé SQL | Explication |
---|---|
| Ajoute une nouvelle ligne avec les valeurs fournies. Par défaut, dans l’ordre dans lequel les colonnes ont été définies dans la table. |
| Lit les données de la table avec une clause WHERE optionnelle pour limiter les données retournées. Dans SELECT , peut utiliser * pour renvoyer toutes les colonnes, lister des colonnes spécifiques à renvoyer, ou même appeler des fonctions comme COUNT(*) pour renvoyer le nombre de lignes correspondantes. |
| Définit la valeur de la colonne avec une clause WHERE optionnelle pour limiter les lignes mises à jour. |
| Supprime les lignes avec une clause WHERE optionnelle pour limiter les lignes supprimées. |