私はJAVA RESTful APIにはかなり新しく、今は作成しようとしています。私はいくつかのチュートリアルを見ましたが、その人はデータベースを使用していなかったので、実行時にarraylistまたはsthにのみデータを格納していました。安心なjava api(JAX-RS、Jersey)内でmysql dbを使用するには?
データベース接続を作成してから単純なクエリを作成しようとしましたが、Javaアプリケーションとして実行しているときにうまく動作しますが、Webアプリケーション内で使用しようとすると接続できません私のDBに渡して例外をスローします。
例外:ここ
SEVERE: Servlet.service() for servlet [Jersey Web Application] in context
with path [/restapi] threw exception [java.lang.IllegalStateException:
Cannot connect the database!] with root cause
java.sql.SQLException: No suitable driver found for
jdbc:mysql://localhost:3306/restapi?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
は、Javaアプリケーションとして動作します私のコード、ですが、Webアプリケーションではありません:
public class AuthService {
private String url = "jdbc:mysql://localhost:3306/restapi?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
public List<User> getAllUsers() {
List<User> users = new ArrayList<User>();
try (Connection conn = DriverManager.getConnection(url, "blabla", "blabla")) {
Statement stmt = conn.createStatement();
String sql;
sql = "SELECT * FROM users";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int id = rs.getInt("id");
String login = rs.getString("login");
String first = rs.getString("firstname");
String last = rs.getString("lastname");
users.add(new User(id, login, first, last));
}
} catch (SQLException e) {
throw new IllegalStateException("Cannot connect the database!", e);
}
return users;
}
おそらくこれは、接続するための正しい方法ではありません(私はたぶんすべてのクエリのDBに接続したくないので)DBに、しかしそれは今私にとっては重要ではありません。
(。答えのための私の英語のため申し訳ありませんが、おかげで)
"javaアプリケーション"と "webapp"の区別はできますか? mysqlのためのいくつかのサポートライブラリが欠けているように見えます。おそらく、ジャージーのビルドプロセスは、それらを何か別の方法で組み込む必要がありますか? –