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

JSP-Datenbankverbindung

Diese Anleitung unterstellt, dass Sie bereits die Funktionsweise von JDBC-Anwendungen kennen.

Hinweis:

 jar-Pakete herunterladen (Wählen Sie die entsprechende Version): https://downloads.mysql.com/archives/c-j/

Laden Sie nach dem Herunterladen von mysql-connector-java-<entsprechende Version>-Kopieren Sie bin.jar in das Verzeichnis lib unter Tomcat.

MySQL 8Die Datenbankverbindung ab Version 8.0 ist unterschiedlich:

  • 1,com.mysql.jdbc.Driver ersetzen durch com.mysql.cj.jdbc.Driver.

  • MySQL 8Versionen ab 8.0 benötigen keine SSL-Verbindung und müssen explizit deaktiviert werden.

  • Am Ende muss CST eingestellt werden.

Der Treiber und die Methode zur Datenbankverbindung werden wie folgt geladen:

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

Von den grundlegenden Konzepten aus, lassen Sie uns eine einfache Tabelle erstellen und einige Zeilen in der Tabelle erstellen.

Erstellen Sie Testdaten

Nun erstellen wir in MySQL w3codebox Datenbank, und erstellen Sie die Tabelle websites, deren Struktur wie folgt ist:

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

Einige Daten einfügen:

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

Die Datenbanktabelle wird wie folgt angezeigt:

SELECT-Operation

Nächste Beispiel zeigt uns, wie man mit den JSTL SQL-Tags ein SQL SELECT-Statement ausführt:

<%@ 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 操作</title>
</head>
<body>
<!--
JDBC 驱动名及数据库 URL 
数据库的用户名与密码,需要根据自己的设置
useUnicode=true&characterEncoding=utf-8 防止中文乱码
 -->
<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>JSP-Datenbank-Beispiel< - Grundlagen-Tutorial-Netz</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>Standortname</th>
   <th>Standort-Adresse</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>

Besuchen Sie diese JSP-Instanz, das Ergebnis des Laufens ist wie folgt:

    INSERT-Operation

Dieser Beispiel zeigt uns, wie man mit den JSTL SQL-Tags ein SQL INSERT-Statement ausführt:

<%@ 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 操作</title>
</head>
<body>
<!--
JDBC 驱动名及数据库 URL 
数据库的用户名与密码,需要根据自己的设置
useUnicode=true&characterEncoding=utf-8 防止中文乱码
 -->
<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:update dataSource="${snapshot}" var="result">
INSERT INTO websites (name,url,alexa,country) VALUES ('基础教程网移动站', 'http://m.oldtoolbag.com', 5093, 'CN');
</sql:update>
<sql:query dataSource="${snapshot}" var="result">
SELECT * from websites;
</sql:query>
<1>JSP-Datenbank-Beispiel< - Grundlagen-Tutorial-Netz</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>Standortname</th>
   <th>Standort-Adresse</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>

Besuchen Sie diese JSP-Instanz, das Ergebnis des Laufens ist wie folgt:

    DELETE操作

这个实例告诉我们如何使用JSTL SQL标签来运行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 操作</title>
</head>
<body>
<!--
JDBC 驱动名及数据库 URL 
数据库的用户名与密码,需要根据自己的设置
useUnicode=true&characterEncoding=utf-8 防止中文乱码
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf-8"
     user="root"  password="123456"/>
<!--
删除 ID 为 11 的数据
 -->
<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>JSP-Datenbank-Beispiel< - Grundlagen-Tutorial-Netz</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>Standortname</th>
   <th>Standort-Adresse</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>

Besuchen Sie diese JSP-Instanz, das Ergebnis des Laufens ist wie folgt:

UPDATE操作

这个实例告诉我们如何使用JSTL SQL标签来运行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 操作</title>
</head>
<body>
<!--
JDBC 驱动名及数据库 URL 
数据库的用户名与密码,需要根据自己的设置
useUnicode=true&characterEncoding=utf-8 防止中文乱码
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf-8"
     user="root"  password="123456"/>
<!--
修改 ID 为 3 的名称:基础教程网改为 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>JSP-Datenbank-Beispiel< - Grundlagen-Tutorial-Netz</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>Standortname</th>
   <th>Standort-Adresse</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>

Besuchen Sie diese JSP-Instanz, das Ergebnis des Laufens ist wie folgt: