Tomcat下でJDBCを使ってMySQLに接続する(Mac)

サーバサイドJavaという本を読み始めて数日経ちました.

独習Java サーバサイド編 第2版

独習Java サーバサイド編 第2版

JDBCを使ってMySQLとの接続をする部分で少しハマったので、補助的な意味合いで簡単にまとめておこうと思います. 本の中ではWindows用に書かれていて、初めのほうにあるインストールの方法あたりを読まずに進めていたのでなんだかハマったような感じです.

初めに実行環境ですが、

Mac OS X Yosemite 10.10
Java version "1.8.0_31"
Tomcat version "8.0.18.0"
(2015/02/17日現在)

です.

なお、JavaTomcatはインストール済みが前提です.

ドライバをインストールする.

デフォルトのJDBCでは個々のデータベース(MySQLPostgreSQL等)と接続することはできないので、個別に接続するデータベース用のドライバをインストールする必要があります.

今回はMySQLと接続するので、Connector/Jというドライバをインストールします. 以下のサイトからConnector/Jを選択し、「Platform Independent」から"mysql-connector-java-5.1.34.tar.gz"をダウンロードします.

http://dev.mysql.com/downloads/connector/

f:id:st_dsk:20150217200134p:plain

ダウンロードしたファイルを展開し、以下のディレクトリにコピーします.

・"/usr/share/java/"
・"/Library/Tomcat/lib/"

context.xmlファイルを編集する.

JDBCを使用するアプリケーションのcontext.xmlに以下のように記述します. (上述したサーバサイドJavaを参考にしています)

 <Context displayName="Teach Yourself Java" path="/selfjsp"
    docBase="/selfjsp" reloadable="true">
 
   <Resource name="jdbc/selfjsp" auth="Container" type="javax.sql.DataSource" username="username" password="password" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/selfjsp?useUnicode=true&a    mp;characterEncoding=UTF-8" maxActive="4" maxWait="5000" maxIdle="2" validationQuery="SELECT count(*) FRO    M member" />

 </Context>

MySQLに接続する.

jspで接続を確認します.

 <%@ page contentType="text/html; charset=UTF-8" import="java.sql.*,javax.naming.*,javax.sql.*" %>
 <!DOCTYPE>
 <html>
    <head>
        <meta charset="UTF-8" />
        <title>データベースへの接続</title>
    </head>
    <body>
        <%
            Context context = new InitialContext();
            DataSource ds = (DataSource)context.lookup("java:comp/env/jdbc/selfjsp");
            Connection db = ds.getConnection();
            db.close();
        %>
        データベースへの接続に成功しました。
     </body>
 </html>

以上です.

こうやってまとめてみると、ただ単にドライバを追加して接続させてるだけでした.(笑)