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

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

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

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

JSP

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

Java

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

解決済

DBの情報をWebで表示されない

mobame
mobame

総合スコア20

JDBC

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

JSP

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

Java

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。

1回答

0評価

0クリップ

358閲覧

投稿2022/03/29 02:47

前提・実現したいこと

Webページで社員登録のテーブルを一覧表示したい

社員登録のテーブルの情報を、表示させたいのに、DBの接続エラーで表示されません
どのようにすればいいかご教授いただけないでしょうか。

発生している問題・エラーメッセージ

イメージ説明

DB接続エラーの為、一覧表示できません java.lang.IllegalStateException: java.lang.IllegalStateException: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver at employee_registration.AccountDao1.selectAll(AccountDao1.java:63) at employee_registration.SelectServlet1.doGet(SelectServlet1.java:30) at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalStateException: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver at employee_registration.AccountDao1.getConnection(AccountDao1.java:28) at employee_registration.AccountDao1.selectAll(AccountDao1.java:47) ... 24 more Caused by: java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1308) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1142) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at employee_registration.AccountDao1.getConnection(AccountDao1.java:24)

該当のソースコード

AccountBeans

public class AccountBeans { private String user_no; //no格納用変数 private String user_name; //名前格納用変数 private String post_cd; //役職格納用変数 public String getUser_no(){ return user_no; } public void setUser_no(String user_no){ this.user_no = user_no; } public String getUser_name(){ return user_name; } public void setUser_name(String user_name){ this.user_name = user_name; } public String getPost_cd(){ return post_cd; } public void setPost_cd(String post_cd){ this.post_cd = post_cd; } }

AccountDao1

public class AccountDao1 { //接続用の情報をフィールドに定数として定義 private static String RDB_DRIVE = "org.mariadb.jdbc.Driver"; private static String URL = "jdbc:mariadb://localhost:3306/"; private static String USER = "root"; private static String PASS = "comp0121"; //データベース接続を行うメソッド public static Connection getConnection(){ try{ Class.forName(RDB_DRIVE); Connection con = DriverManager.getConnection(URL, USER, PASS); return con; }catch(Exception e){ throw new IllegalStateException(e); } } //データベースから全てのアカウント情報の検索を行うメソッド //戻り値としてArrayList<AccountInfo>型の変数を利用 public ArrayList<AccountBeans> selectAll(){ //変数宣言 Connection con = null; Statement smt = null; //return用オブジェクトの生成 ArrayList<AccountBeans> list = new ArrayList<AccountBeans>(); //SQL文 String sql = "SELECT * FROM registration.mst_user"; try{ con = getConnection(); smt = con.createStatement(); //SQLをDBへ発行 ResultSet rs = smt.executeQuery(sql); //検索結果を配列に格納 while(rs.next()){ AccountBeans accountbeans =new AccountBeans(); accountbeans.setUser_no(rs.getString("user_no")); accountbeans.setUser_name(rs.getString("user_name")); accountbeans.setPost_cd(rs.getString("post_cd")); list.add(accountbeans); } }catch(Exception e){ throw new IllegalStateException(e); }finally{ //リソースの開放 if(smt != null){ try{smt.close();}catch(SQLException ignore){} } if(con != null){ try{con.close();}catch(SQLException ignore){} } } return list; } }

SelectServlet1

public class SelectServlet1 extends HttpServlet{ public void doGet(HttpServletRequest request ,HttpServletResponse response) throws ServletException ,IOException{ String error = ""; try{ //配列宣言 ArrayList<AccountBeans> list = new ArrayList<AccountBeans>(); //オブジェクト宣言 AccountDao1 objDao = new AccountDao1(); //全検索メソッドを呼び出し list = objDao.selectAll(); //検索結果を持ってlist.jspにフォワード request.setAttribute("list", list); }catch (IllegalStateException e) { error ="DB接続エラーの為、一覧表示はできませんでした。"; }catch(Exception e){ error ="予期せぬエラーが発生しました。<br>"+e; }finally{ request.setAttribute("error", error); request.getRequestDispatcher("/list1.jsp").forward(request, response); } } }

list1

<%@page contentType="text/html; charset=UTF-8"%> <%@page import="java.util.ArrayList,employee_registration.AccountBeans"%> <% ArrayList<AccountBeans> list = (ArrayList<AccountBeans>)request.getAttribute("list"); String error = (String)request.getAttribute("error"); %> <html> <head> <title>社員登録</title> </head> <body> <div style="text-align:center"> <h2 style="text-align:center">社員登録</h2> <hr style="height:3; background-color:#ffdacc" /> <br> <%= error %> <table style="margin:0 auto"> <tr> <th style="background-color:#ff7f50; width:100">No</th> <th style="background-color:#ff7f50; width:100">名前</th> <th style="background-color:#ff7f50; width:100">役職</th> </tr> <% if(list != null){ for(int i=0;i<list.size();i++){ %> <tr> <td style="text-align:center; width:100"><%= list.get(i).getUser_no() %></td> <td style="text-align:center; width:250"><%= list.get(i).getUser_name() %></td> <td style="text-align:center; width:100"><%= list.get(i).getPost_cd() %></td> </tr> <% } } %> </table> <br> </div> </body> </html>

web.xml

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>example</display-name> <servlet> <servlet-name>SelectServlet1Mapping</servlet-name> <servlet-class>employee_registration.SelectServlet1</servlet-class> </servlet> <servlet-mapping> <servlet-name>SelectServlet1Mapping</servlet-name> <url-pattern>/SelectServlet1</url-pattern> </servlet-mapping> </web-app>

試したこと

DBにログイン出来る

補足情報(FW/ツールのバージョンなど)

Eclipse Eclipse 4.5 Mars・jdk1.8.0_241・MariaDB Connector/J 2.5.2・MariaDB 5.5.62

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

m.ts10806

2022/03/29 03:09

エラーからわかることは沢山あると思います。 特に今回の場合、そこまで特殊ではなく過去によく出てきている印象です。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

JDBC

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

JSP

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

Java

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

MariaDB

MariaDBは、MySQL派生のオープンソースなリレーショナルデータベースシステムです。 また、MySQLとほぼ同じデータベースエンジンに対応しています。