JAVA ENTREPRISE EDITION Dr.
KONAN Hyacinthe
- TP -
JSP et les bases de données
7.1. Introduction.................................................................................................................................................2
7.2. Premier exemple JSP - "Java inside HTML"...............................................................................................3
7.3. Revisitez les servlets Java...........................................................................................................................7
7.4. Deuxième exemple JSP - Écho des paramètres de requête HTML............................................................10
7.5. Éléments de script JSP..............................................................................................................................12
7.5.1 Commentaire JSP <% - commentaires -%>..............................................................................................13
7.5.2 Expression JSP <% = Expression Java%>..................................................................................................14
7.5.3 Scriptlet JSP <% instruction (s) Java%>....................................................................................................15
7.5.4 Directive JSP <% @ page | inclure ...%>..................................................................................................16
7.6. Exemple de base de données JSP..............................................................................................................18
Page : 1
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
7.1. Introduction
JavaServer Page (JSP) est la réponse de Java aux populaires Active Server Pages (ASP) de Microsoft. JSP,
comme ASP, fournit un moyen simplifié et rapide de générer des contenus Web dynamiques.
Il vous permet de mélanger du HTML statique avec du HTML généré dynamiquement - de la manière dont la
logique métier et la présentation sont bien séparées.
Les avantages de JSP sont:
Séparation des contenus statiques et dynamiques : JSP permet de séparer les contenus statiques des contenus
dynamiques. Le contenu dynamique est généré via la logique de programmation et inséré dans le modèle
statique. Cela simplifie grandement la création et la maintenance des contenus Web.
Réutilisation des composants et des bibliothèques de balises: Le contenu dynamique peut être fourni par des
composants réutilisables tels que JavaBean, Enterprise JavaBean (EJB) et des bibliothèques de balises (vous
n'avez pas à réinventer les roues).
La puissance et la portabilité de Java
Les JSP sont compilées en interne dans des servlets Java. Autrement dit, tout ce qui peut être fait à l'aide de JSP
peut également être accompli à l'aide de servlets Java. Cependant, il est important de noter que les servlets et les
JSP sont des technologies complémentaires, PAS de remplacement les unes des autres.
Le servlet peut être considéré comme "HTML à l'intérieur de Java", ce qui est mieux pour
implémenter la logique métier (car il est dominant Java).
JSP, d'autre part, est "Java à l'intérieur de HTML", ce qui est mieux pour créer une présentation -
car il est dominant HTML.
Dans une application type Model-Vue-Controleur (MVC), les servlets sont souvent utilisés pour le contrôleur
(C), ce qui implique une logique de programmation complexe. Les JSP sont souvent utilisés pour la vue (V),
qui traite principalement de la présentation. Le modèle (M) est généralement implémenté en utilisant JavaBean
ou EJB.
Serveur Apache Tomcat
Les JSP, comme les servlets, sont des programmes côté serveur exécutés à l'intérieur d'un serveur HTTP. Pour
prendre en charge JSP / servlet, un serveur HTTP compatible Java est requis. Tomcat Server est l'implémentation
de référence officielle (RI) pour le servlet Java et JSP, fournie gratuitement par Apache ([Link]
un logiciel open-source.
7.2. Premier exemple JSP - "Java inside HTML"
Commençons par un exemple JSP simple. Créer une application web dynamique appelée "JSP". Saisir le code
JSP suivant et enregistrez-le sous "[Link]" (le type de fichier ".jsp" est obligatoire) dans votre répertoire
webcontent.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"[Link]
<html>
<head><title>PREMIER JSP</title></head>
<body>
<%
double num = [Link]();
if (num > 0.95)
{
%>
<h2> Vous aurez de la chance aujourd’hui! </h2><p>(<%= num %>)</p>
<%
Page : 2
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
}
else
{
%>
<h2> Eh bien, la vie continue ... </h2><p>(<%= num %>)</p>
<%
}
%>
<a href="<%= [Link]() %>"><h3> Réessayer </h3></a>
</body>
</html>
Cliquer droit sur la JSP [Link] puis Run as / Run on Server
Si le nombre aléatoire généré est inférieur ou égal à 0.95 (num <= 0.95) alors il affiche :
Eh bien, la vie continue ...
Si le nombre aléatoire généré est strictement supérieur à 0.95 (num > 0.95) alors il affiche :
Vous aurez de la chance aujourd’hui!
Depuis votre navigateur, choisissez l'option "Afficher la source" pour vérifier le message de réponse. Il devrait
s'agir de l'un des suivants en fonction du nombre aléatoire généré.
<html>
<head><title>PREMIER JSP</title></head>
<body>
<h2> Eh bien, la vie continue ... </h2><p>(0.6565011148640159)</p>
<a href="/JSP/[Link]"><h3> Réessayer </h3></a>
</body>
</html>
Il est important de noter que le client n'est pas en mesure de "visualiser" le script JSP d'origine (sinon, vous
risquez d'être exposé à la sécurité), mais simplement le résultat généré par le script.
Page : 3
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
Explications
1) Un script JSP est une page HTML standard contenant des programmes Java. Rappelez-vous que JSP
est "Java à l'intérieur de HTML" (alors que le servlet est "HTML à l'intérieur de Java"). Les
instructions Java sont encadrées par <% ...%> (appelé scriptlet JSP) ou <%= ... %> (appelé
expression JSP).
2) Le scriptlet JSP <% ...%> est utilisé pour inclure des instructions Java.
3) L'expression JSP <%= ...%> est utilisée pour évaluer une seule expression Java et afficher son
résultat.
4) La méthode [Link]() est utilisée pour récupérer l'URL de la page en cours. Ceci est
utilisé dans la balise d'ancrage <a> pour rafraîchir la page afin d'obtenir un autre nombre aléatoire.
En arrière plan
Lors du premier accès à une JSP, Tomcat convertit la JSP en servlet; La partie pertinente du servlet généré est
extraite comme suit (avec quelques simplifications):
// HTML à l'intérieur de Java
[Link]("<html>\r\n ");
double num = [Link]();
if (num > 0.95) {
[Link]("<h2> Vous aurez de la chance aujourd’hui! ");
[Link]("</h2><p>(");
[Link]( num );
[Link](")</p>\r\n");
}
else
{
[Link]("\r\n ");
[Link]("<h2> Eh bien, la vie continue ... ");
[Link]("</h2><p>(");
[Link](num);
[Link](")</p>\r\n ");
}
[Link]("<a href=\"");
[Link]( [Link]());
[Link]("\">");
[Link]("<h3> Réessayer </h3></a>\r\n");
[Link]("</html>\r\n");
Explication
1) Les instructions HTML sont écrites dans le cadre de la réponse via [Link](), comme "il est".
2) Les scriptlets JSP <% ...%> sont conservés, tels quels, dans le servlet converti en tant que logique du
programme.
3) 3. Les expressions JSP <% = ...%> sont placées dans un [Link](). Par conséquent, l'expression
sera évaluée et le résultat de l'évaluation sera écrit dans le cadre du message de réponse.
Comparez le script JSP et le servlet généré en interne, vous devez comprendre que le servlet est "HTML dans
Java", alors que JSP est "Java dans HTML".
Les accès ultérieurs à la même JSP seront beaucoup plus rapides, car ils seront redirigés directement vers le
servlet converti et compilé (aucune conversion JSP en servlet et compilation de servlet ne sont à nouveau
nécessaires), sauf si la JSP a été modifiée.
7.3. Revisitez les servlets Java
Un servlet Java typique (comme illustré ci-dessous) contient trois types de méthodes : init(), destroy() et une ou
plusieurs méthodes service() telles que doGet () et doPost ().
init() s'exécute lorsque le servlet est chargé.
destroy() s'exécute lorsque le servlet est déchargé.
service() s'exécute une fois par requête HTTP.
Page : 4
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
Les méthodes service () prennent deux arguments :
request et
response,
Correspondant respectivement aux messages de requête et de réponse HTTP. Un PrintWriter appelé est créé
pour écrire la réponse sur le réseau.
import [Link].*;
import [Link].*;
import [Link].*;
public class ...Servlet extends HttpServlet {
// S'exécute lorsque le servlet est chargé sur le serveur.
public void init() {
......
}
// S'exécute sur un thread chaque fois qu'il y a une requête HTTP GET
// Prendre 2 arguments, correspondant à la requête et à la réponse HTTP
public void doGet (
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
// Définir le type MIME pour le message de réponse
[Link]("text/html");
// Écrire sur le réseau
PrintWriter out = [Link]();
// La logique de votre servlet ici
[Link]("<html>");
[Link]( ...... );
[Link]("</html>");
}
// S'exécute en tant que thread chaque fois qu'il y a une requête HTTP POST
public void doPost (
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
// faire la même chose que la requête HTTP GET
doGet(request, response);
}
// S'exécute lorsque le servlet est déchargé du serveur.
public void destroy() {
......
}
// Autres variables et méthodes d'instance
}
Page : 5
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
Le servlet Java produit des codes HTML en appelant les méthodes [Link](). Vous devez coder en dur toutes
les balises HTML (et ne pouvez utiliser aucun outil de création Web WYSIWYG). Toute modification de la
présentation de la page Web (telle que la couleur d'arrière-plan et la taille de la police) nécessite un recodage et
une recompilation du programme de servlet. Servlet, en un mot, est "HTML dans Java", alors que JSP est "Java
dans HTML".
7.4. Deuxième exemple JSP - Écho des paramètres de requête HTML
Entrez le script JSP suivant et enregistrez-le sous "[Link]" dans le répertoire Webcontent de votre application
Web.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"[Link]
<html>
<head>
<title> Affichage des paramètres de requête HTML </title>
</head>
<body>
<h3>Choisir un enseignant :</h3>
<form method="get">
<input type="checkbox" name="author" value="KONAN HYACINTHE">Konan
<input type="checkbox" name="author" value="MEYER JEAN MARC">Meyer
<input type="checkbox" name="author" value="ALLANI JULES">Allani
<input type="submit" value="Envoyer">
</form>
<%
String[] authors = [Link]("author");
if (authors != null) {
%>
<h3>Vous avez selectionné l’(es) enseignant(s) :</h3>
<ul>
<%
for (int i = 0; i < [Link]; ++i) {
%>
<li><%= authors[i] %></li>
<%
}
%>
</ul>
<a href="<%= [Link]() %>">RETOUR</a>
<%
}
%>
</body>
</html>
Page : 6
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
Parcourez la page JSP créée et étudiez le servlet généré.
Explications
1) Cette page HTML a un formulaire avec 3 cases à cocher. La paire "nom = valeur" des cases à cocher
est "author = un tel". Aucun attribut "action" n'est spécifié, l'"action" par défaut est la page en
cours (c'est-à-dire que la requête sera envoyée à la même page).
2) Le scriptlet JSP vérifie si le paramètre de requête "author" existe pour décider s'il faut générer
dynamiquement les codes inclus. Le paramètre "author" est absent lorsque la page est chargée pour la
première fois. Une fois que le client remplit le formulaire (en cochant les cases) et soumet le
formulaire, "author" sera présent dans la requête HTTP, et soumis à la même page pour traitement
(avec l'attribut "action" de <form> par défaut).
3) Le [Link]() est utilisé pour récupérer toutes les valeurs du paramètre de
requête. Les valeurs sont renvoyées en écho à l'aide d'une liste non ordonnée.
7.5. Éléments de script JSP
JSP fournit les éléments de script suivants:
Commentaire JSP : <%- commentaires ->
Expression JSP : <%= Expression Java %>
Scriptlet JSP : <% Instruction (s) Java %>
Directive JSP : <%@ page | inclure ...%>
Pour simplifier l'accès aux messages de requête et de réponse HTTP, JSP a prédéfini les variables suivantes:
request : correspond au message de requête HTTP.
response : correspond au message de réponse HTTP.
out : correspond au flux de sortie du message de réponse HTTP.
D’autres tels que session, page, application, pageContext, sortent du cadre de ce cours.
7.5.1 Commentaire JSP <% - commentaires -%>
Les commentaires JSP <% - comments -%> sont ignorés par le moteur JSP. Par example,
<% - tout sauf une balise de fermeture ici sera ignoré ->
Notez que le commentaire HTML est <!- comments ->. L'expression JSP dans le commentaire HTML sera
évaluée. Par example,
<!- Commentaires HTML ici <%= [Link] () %> autres commentaires ->
7.5.2 Expression JSP <% = Expression Java %>
L'expression JSP peut être utilisée pour insérer une seule expression Java directement dans le message de
réponse. Cette expression sera placée dans une méthode [Link](). Par conséquent, l'expression sera évaluée et
Page : 7
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
imprimée dans le cadre du message de réponse. Toute expression Java valide peut être utilisée. Il n'y a pas de
point-virgule à la fin de l'expression. Pour des exemples:
<p> La racine carrée de 5 est <%= [Link](5) %> </p>
<h5><%= item[10] %> </h5>
<p> L'heure actuelle est : <%= new [Link]() %></p>
Les expressions JSP ci-dessus seront converties en:
[Link]("<p> La racine carrée de 5 est ");
[Link]( [Link](5) );
[Link]("</p>");
[Link]("<h5>");
[Link]( item[10] );
[Link]("</h5>");
[Link]("<p> L'heure actuelle est : ");
[Link]( new [Link]() );
[Link]("</p>");
Vous pouvez utiliser les variables prédéfinies, telles que request, dans les expressions. Par exemples:
<p>You have choose author <%= [Link]("author") %></p>
<%= [Link]() %>
<%= [Link]("Host") %>
7.5.3 Scriptlet JSP <% instruction (s) Java %>
Les scriptlets JSP vous permettent d'effectuer des opérations plus complexes que l'insertion d'une seule
expression Java (avec l'expression JSP). Les scriptlets JSP vous permettent d'insérer une séquence arbitraire
d'instructions Java valides dans la méthode service() du servlet converti. Toutes les instructions Java d'un
scriptlet doivent se terminer par un point-virgule. Par example:
<%
String author = [Link]("author");
if (author != null && )) {
%>
<p>Vous avez choisi l’enseignant : <%= author %></p>
<%
}
%>
Dans le servlet converti, ce qui précède sera inséré dans la méthode service() comme suit:
String author = [Link]("author");
if (author != null && )) {
[Link]("<p> Vous avez choisi l’enseignant : ");
[Link]( author );
[Link]("</p>");
}
Notez que les codes Java à l'intérieur d'un scriptlet sont insérés exactement tels qu'ils sont écrits et utilisés
comme logique de programmation. Les codes HTML sont passés à une méthode [Link] () et écrits dans le
cadre du message de réponse.
Page : 8
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
7.5.4 Directive JSP <% @ page | inclure ...%>
Les directives JSP fournissent des instructions au moteur JSP. La syntaxe de la directive JSP est:
<%@ directive_name
attribute1="value1"
attribute2="value2"
......
attributeN="valueN" %>
La directive "page" JSP
La directive "page" vous permet d'importer des classes et de personnaliser les propriétés de la page. Pour des
exemples,
<%-- import package [Link].* -->
<%@ page import="[Link].*" %>
<%-- Set the output MIME type -->
<%@ page contentType="image/gif" %>
<%-- Set an information message for getServletInfo() method -->
<%@ page info="Hello-world example" %>
La directive "include" JSP
La directive "include" vous permet d'inclure un (des) autre (s) fichier (s) au moment où la page JSP est compilée
dans un servlet. Vous pouvez inclure des fichiers JSP ou des fichiers HTML statiques. Vous pouvez utiliser la
directive include pour inclure la barre de navigation, la déclaration de copyright, le logo, etc. sur toutes les pages
JSP. La syntaxe est:
<%@ include file="url" %>
Par exemple :
<%@ include file="[Link]" %>
......
<%@ include file="[Link]" %>
7.6. Exemple de base de données JSP
Créons une boutique en ligne.
La Base de données
Nom de la Base de données: ebookshop
Table : books
id title author price qty
(INT) (VARCHAR(50)) (VARCHAR(50)) (FLOAT) (INT)
1001 JAVA KONAN 11.11 11
1002 ARCHITECTURE DES ORDINATEURS MEYER 22.22 22
1003 DEVELOPPEMENT WEB KONAN 33.33 33
1004 ALGEBRE ALLANI 44.44 44
1005 C SHARP BANDAMA 55.55 55
Requête - "[Link]"
Page : 9
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
Créons la page de requête appelée "[Link]".
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"[Link]
<html>
<head>
<title>Demande de livre</title>
</head>
<body>
<h1>Une autre librairie electronique </h1>
<h3>Choisissez un (des) Auteur(s) :</h3>
<form method="get">
<input type="checkbox" name="author" value="KONAN">KONAN
<input type="checkbox" name="author" value="MEYER">MEYER
<input type="checkbox" name="author" value="ALLANI">ALLANI
<input type="submit" value="Query">
</form>
<%
String[] authors = [Link]("author");
if (authors != null) {
%>
<%@ page import = "[Link].*" %>
<%
//CHARGE LE DRIVER [Link]
[Link]("[Link]");
//INITIALISATION DE LA CONNECTION A LA BASE DE DONNEES
Connection db = [Link](
"jdbc:mysql://localhost:3306/" +
"ebookshop", "root", "");
Statement stmt = [Link]();
//CONSTRUCTION DE LA REQUETTE
String sqlStr = "SELECT * FROM books WHERE author IN (";
sqlStr += "'" + authors[0] + "'"; // Premier auteur
for (int i = 1; i < [Link]; ++i) {
// Les auteurs suivants ont besoin d'une virgule au début
sqlStr += ", '" + authors[i] + "'";
}
sqlStr += ") AND qty > 0 ORDER BY author ASC, title ASC";
// pour debuggage
[Link]("Query statement is " + sqlStr);
ResultSet rset = [Link](sqlStr);
%>
<hr>
<form method="get" action="[Link]">
<table border=1 cellpadding=5>
<tr>
<th>Order</th><th>Author</th><th>Title</th><th>Price</th><th>Qty</
th>
</tr>
<%
while ([Link]()) {
int id = [Link]("id");
%>
<tr>
Page : 10
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
<td><input type="checkbox" name="id" value="<%= id %>"></td>
<td><%= [Link]("author") %></td>
<td><%= [Link]("title") %></td>
<td>$<%= [Link]("price") %></td>
<td><%= [Link]("qty") %></td>
</tr>
<%
}
%>
</table>
<br>
<input type="submit" value="Order">
<input type="reset" value="Clear">
</form>
<a href="<%= [Link]() %>"><h3>Back</h3></a>
<%
[Link]();
[Link]();
[Link]();
}
%>
</body>
</html>
Explications
1.) Cette page HTML a un formulaire avec 3 cases à cocher. La paire "nom = valeur" des cases à cocher est
"author = so_and_so". Aucun attribut "action" n'est spécifié, par conséquent, il est défini par défaut sur la page
actuelle. Le script de traitement est contenu dans la même page.
2.) La méthode [Link] ("author") est utilisée pour vérifier si le paramètre de requête "author"
existe. "auteur" est absent lors de la première référence de la page.
3.) La <% @ page ..%> contient une directive JSP "page" pour importer le package [Link].
4.) Le scriptlet exécute l'opération de requête de base de données. Les étapes sont:
a) Établir une connexion à la base de données via un objet [Link];
b) Allouez un objet [Link] sous la connexion;
c) Préparez une chaîne SQL SELECT;
d) Exécutez SQL SELECT à l'aide de la méthode executeQuery(). Le résultat de la requête est renvoyé
dans un objet de [Link];
e) Traitez le ResultSet ligne par ligne via [Link]();
f) Libérez des ressources et fermez la connexion.
Le résultat de la requête est tabulé dans un tableau HTML. Notez le mélange de HTML et de Java dans la
production du tableau.
Notez que JSP effectue la présentation beaucoup mieux et plus proprement que servlet.
La présentation peut être modifiée facilement avec JSP. Les pages JSP peuvent être créées et modifiées à l'aide
d'un outil de création Web WYSIWYG et recharger pour voir l'effet sur la présentation.
Alors que, dans le cas d'un servlet, vous devez coder explicitement toutes les balises HTML à l'intérieur du
programme de servlet et recompiler le programme.
Commande - "[Link]"
Écrivons le "[Link]" pour traiter la commande, en mettant à jour les enregistrements appropriés dans la base
de données.
Page : 11
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "[Link]
<html>
<head>
<title>Vente de livre</title>
</head>
<body>
<h1>Une autre librairie electronique</h1>
<h2>Merci pour votre achat...</h2>
<%
String[] ids = [Link]("id");
if (ids != null) {
%>
<%@ page import = "[Link].*" %>
<%
//CHARGE LE DRIVER [Link]
[Link]("[Link]");
//INITIALISATION DE LA CONNECTION A LA BASE DE DONNEES
Connection db = [Link](
"jdbc:mysql://localhost:3306/"+
"ebookshop", "root", "");
Statement stmt = [Link]();
String sqlStr;
int recordUpdated;
ResultSet rset;
%>
<table border=1 cellpadding=3 cellspacing=0>
<tr>
<th>Author</th><th>Title</th><th>Price</th><th>Qty In Stock</th>
</tr>
<%
for (int i = 0; i < [Link]; ++i) {
// Soustrayez la quantité disponible de un
sqlStr = "UPDATE books SET qty = qty - 1 WHERE id = " + ids[i];
recordUpdated = [Link](sqlStr);
// effectuer une requête pour confirmer
sqlStr = "SELECT * FROM books WHERE id =" + ids[i];
rset = [Link](sqlStr);
while ([Link]()) {
%>
<tr>
<td><%= [Link]("author") %></td>
<td><%= [Link]("title") %></td>
<td>$<%= [Link]("price") %></td>
<td><%= [Link]("qty") %></td>
</tr>
<% }
[Link]();
}
[Link]();
[Link]();
}
%>
</table>
<a href="[Link]"><h3>RETOUR</h3></a>
</body>
</html>
Page : 12
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
Page : 13
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
QCM JDBC
QUESTION 1. Lequel des énoncés suivants est correct à propos de JDBC?
A L’API JDBC est une API pour accéder à différentes bases de données relationnelles.
B Vous l’utilisez pour accéder à des bases de données relationnelles sans intégrer une dépendance à un
type de base de données spécifique dans votre code.
C JDBC signifie Java DataBase Connectivity.
D Tout les réponses sont vraies
Réponse D
L’API JDBC (Java DataBase Connectivity) est une API permettant d’accéder à différentes bases de données
relationnelles. Vous l’utilisez pour accéder à des bases de données relationnelles sans incorporer une dépendance
à un type de base de données spécifique dans votre code.
Voir aussi : Introduction à JDBC
QUESTION 2. Lequel des énoncés suivants est correct à propos de JDBC?
A L’API JDBC fournit l’abstraction et les pilotes JDBC fournissent l’implémentation.
B De nouveaux pilotes peuvent être connectés à l’API JDBC sans changer le code client.
C Les deux A et B sont vrais.
D Aucune de ces réponses n’est vraie.
Réponse C
L’API JDBC fournit l’abstraction et les pilotes JDBC fournissent l’implémentation. De nouveaux pilotes
peuvent être connectés à l’API JDBC sans modifier le code client.
QUESTION 3. Lequel des types de pilotes JDBC suivants doit être utilisé lorsqu’un pilote de type 3 ou de type
4 n’est pas encore disponible pour votre base de données?
A Type 1
B Type 2
C Type 3
D Type 4
Réponse B
Les pilotes de type 2 sont utiles dans les situations où un pilote de type 3 ou de type 4 n’est pas encore disponible
pour votre base de données.
Voir aussi : Les types de pilotes JDBC – Java
QUESTION 4. Lequel des éléments suivants est généralement utilisé pour modifier les bases de données?
A execute()
B executeUpdate()
C executeQuery()
D Aucune de ces réponses n’est vraie.
Réponse B
La méthode executeUpdate() est utilisé pour modifier les bases de données. Généralement pour:
Créer une base de données
Créer une table
Supprimer une base de données
Supprimer une table d’une base de données
Mise à jour de données en base de données – UPDATE
Suppression de données en base de données – DELETE
La sortie sera sous la forme d’un entier qui indique le nombre de lignes affectées par la requête.
Page : 14
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
QUESTION 5. Lequel des éléments suivants gère une liste de pilotes de base de données dans JDBC?
A DriverManager
B JDBC driver
C Connection
D Statement
Réponse A
La classe DriverManager gère la liste des pilotes de base de données dans JDBC.
Voir aussi : La classe DriverManager | JDBC – Java
QUESTION 6. Lequel des énoncés suivants est correct à propos de la classe Statement de JDBC?
A Statement encapsule une instruction SQL qui est transmise à la base de données pour être analysée et
compilée.
B Statement encapsule une instruction SQL qui est transmise à la base de données pour être planifiée et
exécutée.
C Les deux A et B sont vrais.
D Aucune de ces réponses n’est vraie.
Réponse C
Statement encapsule une instruction SQL qui est transmise à la base de données pour être analysée, compilée,
planifiée et exécutée.
QUESTION 7. Lequel des énoncés suivants est plus efficace que Statement en raison de la précompilation de
SQL?
A Statement
B PreparedStatement
C CallableStatement
D Aucune de ces réponses n’est vraie.
Réponse B
PreparedStatement est plus efficace que Statement en raison de la précompilation de SQL.
QUESTION 8. Lequel des éléments suivants présente l’avantage d’utiliser PreparedStatement en Java?
A Ralentissement des performances
B Encourage l’injection SQL
C Empêche l’injection SQL
D Utilise plus de mémoire
Réponse C
PreparedStatement en Java améliore les performances et empêche également l’injection SQL.
QUESTION 9. Que fait setAutoCommit (false)?
A Valide la transaction après chaque requête
B Valide explicitement la transaction
C Ne valide pas automatiquement la transaction après chaque requête
D Ne valide jamais la transaction
Réponse C
setAutoCommit(false) ne valide pas automatiquement la transaction après chaque requête. Cela économise
beaucoup de temps d’exécution et améliore ainsi les performances.
Page : 15
JAVA ENTREPRISE EDITION Dr. KONAN Hyacinthe
QUESTION 10. Lequel des éléments suivants est utilisé pour appeler une procédure stockée?
A Statement
B PreparedStatement
C CallableStatment
D CalledStatement
Réponse C
CallableStatement est utilisé dans JDBC pour appeler une procédure stockée à partir d’un programme Java.
QUESTION 11. Lequel des méthodes suivants est utilisé pour limiter le nombre de lignes renvoyées?
A getMinRows(int i)
B setMinRows(int i)
C getMaxrows(int i)
D setMaxRows(int i)
Réponse D
La méthode setMaxRows (int i) est utilisée pour limiter le nombre de lignes que la base de données renvoie à
partir de la requête.
QUESTION 12. Lequel des méthodes suivants est utilisé pour annuler une transaction JDBC?
A removeTransaction()
B rollback()
C commit()
D roll()
Réponse B
La méthode rollback() est utilisée pour annuler une transaction. Il annulera toutes les modifications apportées par
la transaction.
QUESTION 13. Lequel des éléments suivants est la méthode de traitement par lots JDBC?
A deleteBatch()
B setBatch()
C removeBatch()
D addBatch()
Réponse D
addBatch() est une méthode de traitement par lots JDBC. Le traitement par lots est plus rapide que l’exécution
d’une instruction à la fois.
Page : 16