🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

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

Java

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

Eclipse

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

Q&A

解決済

1回答

1665閲覧

Eclipseとmysqlを接続がうまくいかない

machidai

総合スコア15

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

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

Java

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

Eclipse

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

0グッド

0クリップ

投稿2019/10/08 08:35

前提・実現したいこと

Eclipseとmysqlを接続したいのですが、JDBCを読み込む所でエラーが出てしまいます。
EclipseのDBViwerとmysqlは接続できています。(DBViwerからsql文を送信してmysqlにはんえいされていました。)
このような質問が何度かされており、対策法も試したのですが上手くいきません。
よろしくお願いいたします。

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

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=JST at java.sql.DriverManager.getConnection(DriverManager.java:689) at java.sql.DriverManager.getConnection(DriverManager.java:247) at todo.controller.ShowServlet.doGet(ShowServlet.java:44) at javax.servlet.http.HttpServlet.service(HttpServlet.java:635) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)

該当のソースコード

package todo.controller; import java.io.*; import java.sql.*; import java.util.ArrayList; import java.util.HashMap; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class ShowServlet */ @WebServlet("/ShowServlet") public class ShowServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public ShowServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub /*DB処理*/ try { // Class.forName("com.mysql.jdbc.Driver"); String URL = "jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=JST"; String USERNAME = "text"; String PASSWORD = "test"; Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD); Statement statement = connection.createStatement(); /*DBにformからの値を保存するsql*/ String select_memo = "SELECT * FROM memo_data"; /*HashMapを要素としたArrayListを定義する(キーで取り出せるが順番はArraylistのルール?みたいな*/ ArrayList<HashMap<String, String>> record_list = new ArrayList<HashMap<String,String>>(); /*executeQuery()の結果は、そのままだとConnectionのクローズ後では使用できないので、 受け渡し用の変数を作成しその中へレコード情報をコピーする。*/ ResultSet result = statement.executeQuery(select_memo); /* * next()を使う理由 * カーソルを現在の位置から 1 行下に移動します。ResultSet のカーソルは、初 期状態では最初の行の前に位置付けられています。メソッド next の最初の呼び 出しによって、最初の行が現在の行になります。2 番目の呼び出しによって 2 行目が現在の行になり、以降同様に続きます。 */ while (result.next()) { //<String, Integer> というのは,Stringを目印にしてIntegerを記録すると言う意味 HashMap<String, String> record = new HashMap<String, String>(); //配列にキー(ここでいう"title"と値(result.getString("title"))を入れる) record.put("id",result.getString("id")); record.put("title", result.getString("title")); record.put("memo", result.getString("memo")); record.put("create_date", result.getString("create_date")); //配列に上記のsqlから持ってきたものを入れていく。 record_list.add(record); } //System.out.println(record_list); /*手順 * recordという連想配列(HashMap)を作る。 * その連想配列に、record.putでキーと値を入れていく。 * 入れ終わったら連想配列のrecord_listにrecordを入れる。 * それをjspに移動させる。 */ request.setAttribute("record_list", record_list); /*--*/ } catch (SQLException e) { e.printStackTrace(); } String view = "/WEB-INF/view/index.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(view); dispatcher.forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }

試したこと

DBViwerとmysqlがちゃんとつながっているか。(接続確認済み)
Class.forName("com.mysql.jdbc.Driver");を追加するとできるとの回答があったためtryの中に記述しましたが上手くいかず

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

eclipse 2018
tomcat 8
java 8
mysql
DBViwerに入れたjarファイル名:mysql-connector-java-8.0.17.jar

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

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

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

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

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

guest

回答1

0

自己解決

サーバーにjarファイルを入れることで無事接続できました。

投稿2019/10/09 08:40

machidai

総合スコア15

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問