現在 Java にて、 API を使い DB からデータを読み込むプログラムを作っています。

しかし、うまく動作しないため困っています。 自分で調べたりしているのですがよくわかりません。どなたかお助け願います。

以下を実行すると「例外発生: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver」とでて、実行結果は「{"prefecture":""}」と表示されるだけになります。 まだ Java をはじめて半月くらいなのであまり詳しくないため質問に至りました。

よろしくお願いします。

1: PreResouce.java

package com.sample.rest;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import com.sample.rest.data.Prefecture;

@Path("pref")
@Produces(MediaType.APPLICATION_JSON)
public class PrefResouce {

    @GET
    @Path("{cd}")
    public Prefecture getPaef(@PathParam("cd") Integer cd) {

        Prefecture pref = new Prefecture();

        try {
            Class.forName("com.mysql.jdbc.Driver");

            String url = "jdbc:mysql://localhost/SampleDB040";
            String user = "testuser";
            String password = "*****";

            Connection conn = DriverManager.getConnection(url, user, password);
            Statement stmt = conn.createStatement();
            String sql = "select * from t01prefecture";
            ResultSet rs = stmt.executeQuery(sql);

            rs.close();
            stmt.close();
            conn.close();
            while (rs.next()) {
                int prefCd = rs.getInt("pref_cd");
                String prefName = rs.getString("pref_name");  // 都道府県
                int areaCd = rs.getInt("area_cd");  // 東西
                int contCd = rs.getInt("cont_cd");  // 地方
                int helzCd = rs.getInt("helz_cd");  // 電気周波数

                pref.setPrefCd(prefCd);
                pref.setPrefName(prefName);
                pref.setAreaCd(areaCd);
                pref.setContCd(contCd);
                pref.setHelzCd(helzCd);
            }
        } catch (Exception e) {
            System.out.println("例外発生:" + e);
        }
        return pref;

    }

}

2: Prefecture.java

package com.sample.rest.data;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class Prefecture {
    private Integer prefCd;
    private String prefName;
    private Integer areaCd;
    private Integer contCd;
    private Integer helzCd;
    public Integer getPrefCd() {
        return prefCd;
    }
    public void setPrefCd(Integer prefCd) {
        this.prefCd = prefCd;
    }
    public String getPrefName() {
        return prefName;
    }
    public void setPrefName(String prefName) {
        this.prefName = prefName;
    }
    public Integer getAreaCd() {
        return areaCd;
    }
    public void setAreaCd(Integer areaCd) {
        this.areaCd = areaCd;
    }
    public Integer getContCd() {
        return contCd;
    }
    public void setContCd(Integer contCd) {
        this.contCd = contCd;
    }
    public Integer getHelzCd() {
        return helzCd;
    }
    public void setHelzCd(Integer helzCd) {
        this.helzCd = helzCd;
    }
}

3: ApplicationConfig.java

package com.sample.rest;

import java.util.HashSet;
import java.util.Set;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

@ApplicationPath("/api")
public class ApplicationConfig extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> resources = new HashSet<>();
        resources.add(PrefResouce.class);
        return resources;
    }
}