質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Spring MVC

Spring MVCとは、Javaを用いてWebアプリケーションを開発できるフレームワーク。アーキテクチャにMVCを採用しており、画面遷移と入出力パラメータの受け渡しの基本的な機能の他、ユーザーの送信したパラメータに対する入力チェックなどさまざまな機能を持ちます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

解決済

spring boot起動時にschema.sqlが実行されないのでアドバイスいただきたいです。。

dsf_sd23
dsf_sd23

総合スコア1

Spring MVC

Spring MVCとは、Javaを用いてWebアプリケーションを開発できるフレームワーク。アーキテクチャにMVCを採用しており、画面遷移と入出力パラメータの受け渡しの基本的な機能の他、ユーザーの送信したパラメータに対する入力チェックなどさまざまな機能を持ちます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

1回答

0評価

0クリップ

571閲覧

投稿2022/06/11 13:54

spring boot起動時にschema.sqlが実行されないのでアドバイスいただきたいです。。

ファイルの内容

application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/task spring.datasource.username=root spring.datasource.password= spring.thymeleaf.prefix=file:src/main/resources/templates/ spring.mvc.hiddenmethod.filter.enabled=true spring.jpa.hibernate.ddl-auto=none spring.datasource.initialization-mode=always spring.datasource.sql-script-encoding=UTF-8

schema.sql

create database if not exists task;

エラー内容

Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set

試したこと


spring.datasource.initialization-mode=alwaysspring.sql.init.enabled=trueに変えて実行してみる
参考
https://qiita.com/t-yama-3/items/9574f34ccc18de30d625

結果
上記エラー内容と変わらず、schema.sqlが実行されない



spring.sql.init.mode=alwaysをapplication.propertieisに追加してみる
参考
https://zenn.dev/rajiku/articles/b70999251195d9

結果
上記エラーに加えて以下のエラーが追加される

Caused by: org.springframework.jdbc.datasource.init.UncategorizedScriptException: Failed to execute database script; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLSyntaxErrorException: Unknown database 'task'

結果
schema.sqlは実行されてない



spring.datasource.schema=classpath:schema.sqlを追加してみる
参考
https://qiita.com/niwasawa/items/af6c5485c1c71d55d7dd

結果
上記エラー内容と変わらず、schema.sqlが実行されない

ちなみに

当たり前かとは思いますが、手動でmysqlに入ってテーブル等を作成すれば
問題なく、実行できています。

もし、わかる方がいらっしゃったら、アドバイスいただけたら幸いです。
あと、足りない情報等もございましたら、ご指摘ください。

よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

neko_the_shadow

2022/06/12 13:18

spring.datasource.url=jdbc:mysql://localhost:3306/task このURLを見る限りですと、taskというデータベースに接続しようとしていますが、そもそもtaskというデータベースはそもそも存在しますか?
dsf_sd23

2022/06/12 13:49

質問ありがとうございます! いえ、存在してないです。 なので、手動でmysqlに入ってデータベース、テーブル等を作成すれば 問題なく、実行できています。 しかし、自分の想定では、 1 sprin bootが起動する 2 schema.sqlが実行される 3 2によって、mysqlにtask データベースが作成される と思っていたので、 そもそも認識が間違っているのでしょうか。。?
dsf_sd23

2022/06/12 13:53

つまりやりたいこととしては 手動で、mysqlでデータベースを作成しなくても schema.sql起動時にschema.sqlが実行されて、データベース、テーブルが作成され 作成されたtaskデータベースに接続された状態で起動がされる ってことができるのかなって思って色々調べてたら、 spring bootは起動時に、schema.sqlやdata.sqlを特定のディレクトリ配下に置いとくと それを実行することができるというのを知ったので、今回試したらうまくいかず、 質問させていただいた、という経由です
neko_the_shadow

2022/06/13 05:25

schema.sqlはspring.datasource.urlを参照していますが、このurlが存在しないDBを指定しているという状態です。DBは別の手段で先に作る必要があると思います。
dsf_sd23

2022/06/13 07:06

なるほどです、ありがとうございます! shcma.sqlは、create databaseとかやるとdatabaseも起動時に作成してくれるのかなって勘違いしていたけど、 そもそもschema.sqlはspring.datasource.urlを参照をするから、それ以前の問題でしたね。。 色々と整理できました、ありがとうございました!

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Spring MVC

Spring MVCとは、Javaを用いてWebアプリケーションを開発できるフレームワーク。アーキテクチャにMVCを採用しており、画面遷移と入出力パラメータの受け渡しの基本的な機能の他、ユーザーの送信したパラメータに対する入力チェックなどさまざまな機能を持ちます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。