0

Windows 8 で XAMPP を使用しています。やりたいことは、サーブレットから MySQL データベースにアクセスすることです。

MySQL Connector J jar ファイルを /xampp/tomcat/lib ディレクトリに含めました。以下は、コンパイルして実行するコードです。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.mysql.jdbc.Driver;

public class Exercise7 extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<html>");
    out.println("<head><title>Servlet - MySQL</title></head>");
    out.println("<body>");

    Connection con = null;
    Statement st = null;
    ResultSet rs = null;

    String url = "jdbc:mysql://localhost:3306/test";
    String user = "root";
    String password = "";

    try {
        con = DriverManager.getConnection(url, user, password);
        st = con.createStatement();
        rs = st.executeQuery("SELECT VERSION()");

        if (rs.next()) {
            out.println(rs.getString(1));
        }

    } catch (SQLException ex) {
        /*Logger lgr = Logger.getLogger(Version.class.getName());
        lgr.log(Level.SEVERE, ex.getMessage(), ex);*/
        out.println("Can't connect");

    } finally {
        try {
            if (rs != null) {
                rs.close();
            }
            if (st != null) {
                st.close();
            }
            if (con != null) {
                con.close();
            }

        } catch (SQLException ex) {
            /*Logger lgr = Logger.getLogger(Version.class.getName());
            lgr.log(Level.WARNING, ex.getMessage(), ex);*/
            out.println("Can't connect");
        }
    }
    out.println("</body></html>");
}
}

ページにアクセスすると、結果として「接続できません」と表示されます。これは明らかに、サーブレットと mysql 間の接続に問題があることを意味します。

4

1 に答える 1