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

Conexão com o Banco de Dados JSP

Este tutorial pressupõe que você já entende como o aplicativo JDBC funciona.

Atenção:

 Baixe o pacote jar (escolha a versão correspondente): https://downloads.mysql.com/archives/c-j/

Baixe o mysql-connector-java-<versão correspondente>-Copie o bin.jar para o diretório lib do tomcat.

MySQL 8A conexão com o banco de dados em versões 0.0 acima é diferente:

  • 1、com.mysql.jdbc.Driver Mude para com.mysql.cj.jdbc.Driver.

  • MySQL 8Versões 0.0 acima não precisam estabelecer conexão SSL, precisa ser desativada explicitamente.

  • Ainda é necessário configurar o CST.

A maneira de carregar o driver e conectar ao banco de dados é a seguinte:

<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"/>

Começando com conceitos básicos, vamos criar uma tabela simples e inserir alguns registros nela.

Criar dados de teste

Vamos criar um teste de dados no MySQL:3Criamos o banco de dados codebox e criamos a tabela websites, com a seguinte estrutura:

CREATE TABLE `websites` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL DEFAULT '' COMMENT 'Nome do site',
  `url` varchar(255) NOT NULL DEFAULT '',
  `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Ranking Alexa',
  `country` char(10) NOT NULL DEFAULT '' COMMENT 'País',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

Inserir alguns dados:

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

A tabela de dados é exibida da seguinte forma:

Operação SELECT

O próximo exemplo nos mostra como usar etiquetas SQL do JSTL para executar a instrução 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>Selecionar operação</title>
</head>
<body>
<!--
nome do driver JDBC e URL do banco de dados 
o nome de usuário e a senha do banco de dados precisam ser configurados conforme necessário
useUnicode=true&characterEncoding=utf-8 prevenir a mistura de caracteres chineses
 -->
<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>
<1>Exemplo de Banco de Dados JSP - Base Tutorial Network</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>Nome do Site</th>
   <th>Endereço do 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>

Acesse este exemplo JSP, o resultado da execução será o seguinte:

    Operação INSERT

Este exemplo nos ensina como usar etiquetas SQL do JSTL para executar a instrução 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>Selecionar operação</title>
</head>
<body>
<!--
nome do driver JDBC e URL do banco de dados 
o nome de usuário e a senha do banco de dados precisam ser configurados conforme necessário
useUnicode=true&characterEncoding=utf-8 prevenir a mistura de caracteres chineses
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf-8"
     user="root" password="123456"/>
<!--
inserir dados
 -->
<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>
<1>Exemplo de Banco de Dados JSP - Base Tutorial Network</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>Nome do Site</th>
   <th>Endereço do 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>

Acesse este exemplo JSP, o resultado da execução será o seguinte:

    Operação de exclusão

Este exemplo nos mostra como usar o tag SQL JSTL para executar a declaração 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>Selecionar operação</title>
</head>
<body>
<!--
nome do driver JDBC e URL do banco de dados 
o nome de usuário e a senha do banco de dados precisam ser configurados conforme necessário
useUnicode=true&characterEncoding=utf-8 prevenir a mistura de caracteres chineses
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf-8"
     user="root" password="123456"/>
<!--
deletar o ID 11 os dados
 -->
<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>
<1>Exemplo de Banco de Dados JSP - Base Tutorial Network</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>Nome do Site</th>
   <th>Endereço do 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>

Acesse este exemplo JSP, o resultado da execução será o seguinte:

Operação de atualização

Este exemplo nos mostra como usar o tag SQL JSTL para executar a declaração 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>Selecionar operação</title>
</head>
<body>
<!--
nome do driver JDBC e URL do banco de dados 
o nome de usuário e a senha do banco de dados precisam ser configurados conforme necessário
useUnicode=true&characterEncoding=utf-8 prevenir a mistura de caracteres chineses
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf-8"
     user="root" password="123456"/>
<!--
modificar o ID para 3 o nome: Base Tutorial Website foi alterado para 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>
<1>Exemplo de Banco de Dados JSP - Base Tutorial Network</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>Nome do Site</th>
   <th>Endereço do 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>

Acesse este exemplo JSP, o resultado da execução será o seguinte: