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&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ドライブにインストールしています。
回答1件
あなたの回答
tips
プレビュー