SparkとH2データベースとSql2oライブラリを使用してJava Mavenを使用してAPIを作成します。Java、Spark、Sql2o、H2:DataSourceからの接続を取得できませんでした - IO例外
これは、完全なエラーメッセージです:
Exceptionorg.sql2o.Sql2oException: データソースから接続を取得できませんでした - IO例外:「にjava.io.IOException:ファイル名、 ディレクトリ名、またはをボリュームラベルの構文が正しくありません "; "C:¥Users¥Claudiu/reviews.db:INIT = RUNSCRIPT from 'classpath:db/init.sql.mv.db" [90031-191] [qtp1133151800-16]エラーspark.webserver.MatcherFilter - ro.sparkmaven.exc.DaoException:ro.sparkmaven.dao.Sql2oCourseDao.add(Sql2oCourseDao.java:28)にコース を追加する際の問題 at ro.sparkmaven.App.lambda $ 0(App.java:37) at ro。 sparkmaven.App $$ラムダ$ 1/1607460018.handle(不明なソース)
これは、メインクラスです:
public class App
{
public static void main(String[] args) {
String connectionString= "jdbc:h2:~/reviews.db:INIT=RUNSCRIPT from 'classpath:db/init.sql";
Sql2o sql2o = new Sql2o(connectionString, "", "");
CourseDao courseDao = new Sql2oCourseDao(sql2o);
Gson gson = new Gson();
post("/courses", "application/json", (req, res) -> {
Course course = gson.fromJson(req.body(), Course.class);
courseDao.add(course);
res.status(201);
res.type("application/json");
return null;
} , gson::toJson);
get("/courses", "application/json", (req, res) -> courseDao.findAll(), gson::toJson);
get("/courses/:id", "application/json", (req, res) -> {
int id;
id = Integer.parseInt(req.params("id"));
//TO DO: What if this not found
Course course = courseDao.findById(id);
return null;
});
after((req,res)->{
res.type("application/json");
});
}
}
これはinit.sqlです:事前に
CREATE TABLE IF NOT EXISTS courses (
id int PRIMARY KEY auto_increment,
name VARCHAR,
url VARCHAR
);
CREATE TABLE IF NOT EXISTS reviews (
id INTEGER PRIMARY KEY auto_increment,
course_id INTEGER,
rating INTEGER,
comment VARCHAR,
FOREIGN KEY(course_id) REFERENCES public.courses(id)
);
ありがとう!
ありがとうございます!親切な卿:D –