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

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

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

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

Java

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

Q&A

解決済

2回答

5412閲覧

サーブレットからmysqlへ接続する際のURL

tixure55

総合スコア400

MySQL

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

Java

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

0グッド

0クリップ

投稿2015/11/14 06:01

サーブレットからmysqlへ接続する際のURLを指定する必要がありますが、

java

1Connection con = DriverManager.getConnection("jdbc:mysql://localhost/db1?user=root&password=111111");

ここのurl(jdbc:mysql://localhost/db1のところ)はなんのパスを書けばよいのでしょうか?コンソール上に
No suitable driver found for jdbc:mysql://localhost/db1?user=root&password=111111

と出ているので、ドライバがないよということでしょうが、既存のmysqlとドライバを紐付けるにはどうしたらよいでしょうか?

なお、mysql-connector-java-5.1.37-bin.jarはWEB-INF/libに置いています。

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

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

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

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

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

guest

回答2

0

JDBCドライバーのDriverクラスが読み込まれていない状態です。

getConnection()より前に、下記のようにしてDriverクラスをロードしてください。

lang

1try { 2 Class.forName("com.mysql.jdbc.Driver"); 3} catch (ClassNotFoundException e) { 4 throw new RuntimeException(e); 5}

jdbc:mysql://localhost/db1?db1のところは、tixure55さんがcreate databaseで作成したデータベース名を書きます。
ご自身で作成されていなければ、作成した人に聞いてみてください。
それ以外はそのままでOKです。

投稿2015/11/14 06:26

編集2015/11/14 06:28
argius

総合スコア9388

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

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

tixure55

2015/11/14 06:35

回答ありがとうございます、create databaseで作成したデータベース名を書くとこまでは自己解決したのですが、その後に書いたselect文の結果が取得できていないようで、ブラウザ上に表示されません。以前、教えていただいたときに書きましたが、ソースコードは下記の通りです。 import java.io.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import org.apache.catalina.connector.Response; import javax.servlet.*; import javax.servlet.http.*; /** * Servlet implementation class HelloWorld */ @WebServlet("/HelloWorld") public class HelloWorld extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public HelloWorld() { 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 doIt(request, response); response.getWriter().write("Hello, World!"); HttpSession session = request.getSession(); Object obj = session.getAttribute("testdata"); response.setContentType("text/html;charset=Shift-JIS"); PrintWriter out = response.getWriter(); out.println("<html>\n<head>\n<title>HelloWorld!</title>\n</head>\n<body>\n"); out.println("<p>Hello World.</p>\n"); out.println("<p>てすとてすとてすと</p>\n"); out.println("<img src=\"./images/t55_01.png\">\n"); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } private void doIt(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("Shift_JIS"); response.setContentType("text/html; charset=Shift_JIS"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("<title>JDBCTestServlet</title>"); out.println("</head>"); out.println("<body>"); out.println("<p>"); out.println("タイトルに"); out.println("Java"); out.println("という文字列を含む本は"); out.println("</p>"); out.println("<p>"); try { Connection con = DriverManager.getConnection("jdbc:mysql://localhost/data1?user=root&password=111111"); String selectStatement = "select *" + "from books"; PreparedStatement prepStmt = con.prepareStatement(selectStatement); prepStmt.setString(1, "%" + "Java" + "%"); ResultSet rs = prepStmt.executeQuery(); System.out.println(rs); while (rs.next()) { String title = rs.getString("title"); out.println(title); out.println("<br>"); } rs.close(); prepStmt.close(); con.close(); } catch (SQLException e) { e.printStackTrace(); } out.println("</p>"); out.println("</body>"); out.println("</html>"); } } どのあたりがまずいのかがコンソールに出ていないので、切り分けできてない状態です。 お手数ですが、教えていただけないでしょうか。
argius

2015/11/14 06:47

次回からで良いので、 できれば、コードを貼るときは質問欄に追記していただけますでしょうか? コメント欄だと読みにくくなってしまうので... とりあえず気になるのは、Like句を使おうとしている( "%" + "Java" + "%" )のに、 SELECT文にはLike句が書いてませんね。 それで解決しないようでしたら、 System.out.printlnなどが出力された結果から、どの処理まで動いているかとか、推測できますか? またはデバッグ機能を使うなどして、どういう流れになっているか確認してみてください。
tixure55

2015/11/14 08:35

回答ありがとうございました、たしかに質問欄じゃないと見づらいですよね。デバッグ機能はしばらく使ってなかったので、使い方をおさらいしておきたいと思います。
guest

0

自己解決

java

1prepStmt.setString(1, "%" + "Java" + "%");

これをコメントアウトすることで無事ブラウザ上に表示できました。ありがとうございました。

投稿2015/11/14 06:57

tixure55

総合スコア400

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

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

eripong

2015/11/14 07:03

それだと、検索条件が減ってしまいますが、 それでよいのですか? それと、arguisさんの回答によって解決したのでしたら、 argiusさんの回答にベストアンサーをつけた方がよいと思います。
genovese

2015/11/14 07:08

既にeripongさんがコメントしてるのにかぶりますが、 一方的に質問を終わらせたり、 質問を完了させないで放置するのは、 質問者の方々に失礼です。 回答が何かしら手助けになったのなら、ベストアンサーや+評価をつけてあげてください。 解決していなくても、要らなくなった質問は、自己解凍で質問を閉じましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問