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

JSP データベース接続

このチュートリアルでは、JDBCアプリケーションの動作方法について既に理解していることを前提としています。

注意:

 jarパッケージのダウンロード(対応バージョンを選択してください):https://downloads.mysql.com/archives/c-j/

ダウンロード後、mysql-connector-java-<対応バージョン>-bin.jarをtomcatのlibディレクトリにコピーしてください。

MySQL 8.0以降のバージョンのデータベース接続は異なります:

  • 1、com.mysql.jdbc.Driver com.mysql.cj.jdbc.Driverに変更してください。

  • MySQL 8.0以降のバージョンではSSL接続を設定する必要はなく、明示的にオフにする必要があります。

  • 最後にCSTを設定する必要があります。

ドライバーとデータベースの接続方法は以下の通りです:

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

基本的な概念から始めて、シンプルなテーブルを作成し、いくつかのレコードをテーブルに追加してみましょう。

テストデータの作成

次に、MySQLでw3codebox データベースを構築し、websites データテーブルを作成し、以下の構造を持っています:

CREATE TABLE `websites` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
  `url` varchar(255) NOT NULL DEFAULT '',
  `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
  `country` char(10) NOT NULL DEFAULT '' COMMENT '国家',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

データをいくつか挿入します:

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

データテーブルは以下のように表示されます:

SELECT操作

次の例では、JSTL SQLタグを使用してSQL SELECT文を実行する方法について教えています:

<%@ page language="java" contentType="text/html;charset=UTF-8"/html; charset=UTF-8-8"
    pageEncoding="UTF-8-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=utf8-8 中国語の乱マークを防ぐ
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf8-8"
     user="root" password="123456"/>
 
<sql:query dataSource="${snapshot}" var="result">
SELECT * from websites;
</sql:query>
<h1>JSP データベース例 - 基礎教程網</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>サイト名</th>
   <th>サイトアドレス</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>

このJSPインスタンスにアクセスし、以下の結果が表示されます:

    INSERT操作

この例では、JSTL SQLタグを使用してSQL INSERT文を実行する方法について教えています:

<%@ page language="java" contentType="text/html;charset=UTF-8"/html; charset=UTF-8-8"
    pageEncoding="UTF-8-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=utf8-8 中国語の乱マークを防ぐ
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf8-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>
<h1>JSP データベース例 - 基礎教程網</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>サイト名</th>
   <th>サイトアドレス</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>

このJSPインスタンスにアクセスし、以下の結果が表示されます:

    DELETE操作

この例では、JSTL SQLタグを使用してSQL DELETE文を実行する方法について説明します:

<%@ page language="java" contentType="text/html;charset=UTF-8"/html; charset=UTF-8-8"
    pageEncoding="UTF-8-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=utf8-8 中国語の乱マークを防ぐ
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf8-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>
<h1>JSP データベース例 - 基礎教程網</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>サイト名</th>
   <th>サイトアドレス</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>

このJSPインスタンスにアクセスし、以下の結果が表示されます:

UPDATE操作

この例では、JSTL SQLタグを使用してSQL UPDATE文を実行する方法について説明します:

<%@ page language="java" contentType="text/html;charset=UTF-8"/html; charset=UTF-8-8"
    pageEncoding="UTF-8-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=utf8-8 中国語の乱マークを防ぐ
 -->
<sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver"
     url="jdbc:mysql://localhost:3306/w3codebox?useUnicode=true&characterEncoding=utf8-8"
     user="root" password="123456"/>
<!--
IDを変更 3 の名前:基本チュートリアルウェブサイトに「w」を変更します3codebox
 -->
<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>JSP データベース例 - 基礎教程網</h1>
<table border="1" width="100%">
<tr>
   <th>ID</th>
   <th>サイト名</th>
   <th>サイトアドレス</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>

このJSPインスタンスにアクセスし、以下の結果が表示されます: