English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Connexion à la base de données JSP

Ce tutoriel suppose que vous connaissez déjà le fonctionnement des applications JDBC.

Attention :

 Téléchargez le fichier jar (choisissez la version correspondante) : https://downloads.mysql.com/archives/c-j/

Téléchargez mysql-connector-java-<correspondant à la version>-Copiez bin.jar dans le répertoire lib de tomcat.

MySQL 8Les connexions à la base de données pour les versions 0.0 et supérieures sont différentes :

  • 1、com.mysql.jdbc.Driver Remplacez par com.mysql.cj.jdbc.Driver.

  • MySQL 8Les versions 0.0 et supérieures n'ont pas besoin de créer une connexion SSL, il faut l'arrêter explicitement.

  • Il faut également configurer le CST à la fin.

Le mode de chargement du pilote et de connexion à la base de données est le suivant :

<sql:setDataSource var="snapshot" driver="com.mysql.cj.jdbc.Driver">
     url="jdbc:mysql://localhost:3306/w3codebox?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
     user="root"  password="12345"/>

Commençons par les concepts de base, créons un tableau simple et insérons quelques enregistrements dans ce tableau.

Créons des données de test

Créons ensuite w3Créons une base de données codebox et créons la table websites, dont la structure est la suivante :

CREATE TABLE `websites` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL DEFAULT '' COMMENT 'Nom du site',
  `url` varchar(255) NOT NULL DEFAULT '',
  `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Classement Alexa',
  `country` char(10) NOT NULL DEFAULT '' COMMENT 'Pays',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

Insérer quelques données :

INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN'), ('3', '基础教程网', 'http://fr.oldtoolbag.com', '5892', ''), ('4', '微博', 'http://weibo.com/', '20', 'CN'), ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');

Le tableau de données s'affiche comme suit :

Opération SELECT

Dans l'exemple suivant, nous voyons comment utiliser les balises SQL JSTL pour exécuter une instruction SELECT SQL :

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
 
<html>
<head>
<title>SELECT opérations</title>
</head>
<body>
<!--
Nom du pilote JDBC et URL de la base de données 
Le nom d'utilisateur et le mot de passe de la base de données doivent être définis en fonction de vos paramètres
useUnicode=true&characterEncoding=utf-8 Prévenir le brouillage des caractères chinois
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf-8"
     user="root"  password="123456"/>
 
<sql:query dataSource="${snapshot}" var="result">
SELECT * from websites;
</sql:query>
<h1>Exemple de base de données JSP - Réseau de tutoriels de base</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>Nom du site</th>
   <th>Adresse du site</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
   <td><c:out value="${row.id}"/></td>
   <td><c:out value="${row.name}"/></td>
   <td><c:out value="${row.url}"/></td>
</tr>
</c:forEach>
</table>
 
</body>
</html>

Accédez à cet exemple JSP, le résultat de l'exécution est le suivant :

    Opération INSERT

Cette instance nous montre comment utiliser les balises SQL JSTL pour exécuter une instruction INSERT SQL :

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
 
<html>
<head>
<title>SELECT opérations</title>
</head>
<body>
<!--
Nom du pilote JDBC et URL de la base de données 
Le nom d'utilisateur et le mot de passe de la base de données doivent être définis en fonction de vos paramètres
useUnicode=true&characterEncoding=utf-8 Prévenir le brouillage des caractères chinois
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf-8"
     user="root"  password="123456"/>
<!--
Insérer des données
 -->
<sql:update dataSource="${snapshot}" var="result">
INSERT INTO websites (name,url,alexa,country) VALUES ('base tutorial website mobile', 'http://m.oldtoolbag.com', 5093, 'CN');
</sql:update>
<sql:query dataSource="${snapshot}" var="result">
SELECT * from websites;
</sql:query>
<h1>Exemple de base de données JSP - Réseau de tutoriels de base</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>Nom du site</th>
   <th>Adresse du site</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
   <td><c:out value="${row.id}"/></td>
   <td><c:out value="${row.name}"/></td>
   <td><c:out value="${row.url}"/></td>
</tr>
</c:forEach>
</table>
 
</body>
</html>

Accédez à cet exemple JSP, le résultat de l'exécution est le suivant :

    Opérations DELETE

Cette exemple nous montre comment utiliser les balises JSTL SQL pour exécuter des instructions SQL DELETE :

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
 
<html>
<head>
<title>SELECT opérations</title>
</head>
<body>
<!--
Nom du pilote JDBC et URL de la base de données 
Le nom d'utilisateur et le mot de passe de la base de données doivent être définis en fonction de vos paramètres
useUnicode=true&characterEncoding=utf-8 Prévenir le brouillage des caractères chinois
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf-8"
     user="root"  password="123456"/>
<!--
Supprimer l'ID de 11 Les données
 -->
<sql:update dataSource="${snapshot}" var="count">
  DELETE FROM websites WHERE Id = ?
  <sql:param value="${11" />
</sql:update>
<sql:query dataSource="${snapshot}" var="result">
SELECT * from websites;
</sql:query>
<h1>Exemple de base de données JSP - Réseau de tutoriels de base</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>Nom du site</th>
   <th>Adresse du site</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
   <td><c:out value="${row.id}"/></td>
   <td><c:out value="${row.name}"/></td>
   <td><c:out value="${row.url}"/></td>
</tr>
</c:forEach>
</table>
 
</body>
</html>

Accédez à cet exemple JSP, le résultat de l'exécution est le suivant :

Opérations UPDATE

Cette exemple nous montre comment utiliser les balises JSTL SQL pour exécuter des instructions SQL UPDATE :

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
 
<html>
<head>
<title>SELECT opérations</title>
</head>
<body>
<!--
Nom du pilote JDBC et URL de la base de données 
Le nom d'utilisateur et le mot de passe de la base de données doivent être définis en fonction de vos paramètres
useUnicode=true&characterEncoding=utf-8 Prévenir le brouillage des caractères chinois
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf-8"
     user="root"  password="123456"/>
<!--
Modifier l'ID en 3 Le nom : base tutorial website est modifié en w3codebox
 -->
<c:set var="SiteId" value="3"/>
 
<sql:update dataSource="${snapshot}" var="count">
  UPDATE websites SET name = 'w3codebox' WHERE Id = ?
  <sql:param value="${SiteId}" />
</sql:update>
<sql:query dataSource="${snapshot}" var="result">
SELECT * from websites;
</sql:query>
<h1>Exemple de base de données JSP - Réseau de tutoriels de base</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>Nom du site</th>
   <th>Adresse du site</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
   <td><c:out value="${row.id}"/></td>
   <td><c:out value="${row.name}"/></td>
   <td><c:out value="${row.url}"/></td>
</tr>
</c:forEach>
</table>
 
</body>
</html>

Accédez à cet exemple JSP, le résultat de l'exécution est le suivant :