質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

1回答

1596閲覧

Eclipseでデータベースに接続できません

NAOPI-05

総合スコア132

JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2018/05/26 18:34

JDBCを認識させたいです

Javaでサーブレット・JSPの勉強をしています。学習には翔泳社の「独習Java サーバサイド編」(山田祥寛 著)を用いており、基本的には書籍の内容をそのまま入力しているのですが、JSPからのデータベース接続につまづいている状態です。JDBCの設定がうまくいっていないのか、実行すると「ClassNotFoundException: org.gjt.mm.mysql.Driver」がコンソールに出力されます。ページには「Cannot load JDBC driver class 'org.gjt.mm.mysql.Driver'」という文言が表示されているのも確認できます。XMLファイルから使用するドライバを「com.mysql.jdbc.Driver」に変えてみてもうまくいきません。ちなみにプロジェクト内の「WEB-INF/lib」内にJDBC用のjarファイルは入れてあります。これは、JDBCが認識されていないということなのでしょうか?あるいは、コンテキストファイルの記述が間違っているのでしょうか?

分かる方がいらっしゃいましたら、教えていただけると幸いです。

ソースコード

html

1 2// jsp 3 4<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*, javax.naming.*, javax.sql.*" %> 5<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 6<html> 7<head> 8<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 9<title>データベース接続</title> 10</head> 11<body> 12 13<% 14Context context = new InitialContext(); 15DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/selfjsp"); 16Connection db = ds.getConnection(); //ここでエラー 17db.close(); 18%> 19データベースへの接続に成功しました。 20 21</body> 22</html>

xml

1<?xml version="1.0" encoding="UTF-8"?> 2<Context displayName="Teach Yourself Java" docBase="E:\Eclipse\selfjsp" path="/selfjsp" reloadable="true"> 3<Resource name="jdbc/selfjsp" auth="Container" type="javax.sql.DataSource" username="root" password="/* 設定したPW */" 4driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/selfjsp?useUnicode=true&amp;characterEncoding=UTF-8" 5maxActive="4" maxWait="5000" maxIdle="2" validationQuery="SELECT count(*) FROM book" /> 6</Context>

環境

OS: Windows 10
DB: MySQL Server 8.0
Java: jdk1.8
JDBC: mysql-connector-java-8.0.11
コンテナ: Tomcat 9.0

なお、MySQL以外はDドライブにインストールしています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/05/27 00:52

初版本(古すぎる技術書)かしら?
退会済みユーザー

退会済みユーザー

2018/05/27 01:03

とりあえず MySQL4 との接続の技術書で MySQL8 の勉強をしないでください。 mysql5 系で connecter 6.X が利用できないのでいろいろ変わってると思われます。
退会済みユーザー

退会済みユーザー

2018/05/27 01:16

mysql5 の技術書でも以下同文だな
NAOPI-05

2018/05/27 08:23 編集

はじめまして、使用しているのは第2版です。 とりあえず、書籍と同じ MySQL 5 系と古いJDBCで試してみます。
退会済みユーザー

退会済みユーザー

2018/05/27 08:46

ドライバのクラス名は com.mysql.cj.jdbc.Driver のようです。
NAOPI-05

2018/05/27 08:48

com.mysql.cj.jdbc.Driver も試したのですが失敗してしまいます・・・
退会済みユーザー

退会済みユーザー

2018/05/27 09:25

2版でも5年すぎてるので古いとしか言いようがないですね。 クラスパスの問題とかは調べましたか?
guest

回答1

0

ベストアンサー

driverがわからないときの確認方法

mysql-connector-java-8.0.11.jar!/META-INF/services/java.sql.Driver に 自動読込されるdriverクラスの一覧がありますので確認するか mysql-connector-java/J (8.0) の 公式ドキュメント(WEB) を確認してください。

投稿2018/05/27 01:35

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

NAOPI-05

2018/05/27 13:41

公式ドキュメントからクラスを確認したところ、最新のJDBCには「org.gjt.mm.mysql.Driver」は含まれておりませんでした。最新のに含まれる「com.mysql.cj.jdbc.Driver」を指定しても失敗したので、一つ古いJDBCを試してみたら「org.gjt.mm.mysql.Driver」を使えました。ドライバの確認方法を教えていただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問