LoginSignup
2
2

SpringBoot2.*.*と3.*.*はいろいろと違う

Last updated at Posted at 2024-03-15

MySQLとの依存関係確立に失敗

下記エラーが発生した。

Execution failed for task ':TestappApplication.main()'.
> Could not resolve all files for configuration ':runtimeClasspath'.
   > Could not find mysql:mysql-connector-java:.
     Required by:
         project :

Possible solution:
 - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html

エラー内容

mysql:mysql-connector-javaが見つからない

エラー原因

ググるとまんまの回答があった。
https://teratail.com/questions/f4suoxm30dmg7o

変更前
runtimeOnly 'mysql:mysql-connector-java'

変更後
runtimeOnly 'com.mysql:mysql-connector-j'

試してみると正常に動作し、テーブルも生成されていた。
この結果は良いことなのかChatGPT3.5に聞いてみると、

正しい依存関係の宣言
MySQL Connector/J の依存関係をプロジェクトに追加する際は、以下のように正確なバージョン番号を指定して宣言することが一般的です。
gradle
Copy code

runtimeOnly 'mysql:mysql-connector-java:バージョン'

ここで、バージョン には使用したい MySQL Connector/J のバージョン番号を指定します。これにより、Gradle は指定されたバージョンのライブラリをリポジトリから探してプロジェクトの実行時クラスパスに追加します。
結論
あなたの問題が解決したのは良いニュースですが、com.mysql:mysql-connector-j という依存関係は存在しないため、おそらく他の修正が効果を発揮したか、初めのエラーメッセージの解釈に誤りがあった可能性があります。将来的に依存関係の問題に直面した場合は、依存関係の宣言を再確認し、必要に応じて正しいバージョン番号を含めることをお勧めします。

だめなのかな?
でもテーブルできてるしエラー出てないし、
さらにググると、下記のサイトを見つけた。
https://qiita.com/itawn/items/96c4d1685b4682d5607d
https://qiita.com/hiro_tsutsui/items/b14567f9ea51c38c5c23
https://blog.kinto-technologies.com/posts/2023-12-09-UpgradedSpringBoot2to3
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide
いろいろと情報を残していただいて感謝。
どうやらSpringBootが2から3になった際にかなり変更があったようで、MySQLのJDBCドライバーも変更となったようだ。

MySQL JDBC Driver
The coordinates of the MySQL JDBC driver have changed from mysql:mysql-connector-java to com.mysql:mysql-connector-j. If you are using the MySQL JDBC driver, update its coordinates accordingly when upgrading to Spring Boot 3.0.

私が使用している教材がSpringBoot2.7.8に対し、私がSpring Initializr生成したプログラムがSpringBoot3.2.3であったため、このような現象が発生した。

結果

結果的に対応は正しかった。ChatGPTはソースが最新の情報ではないことがあるということが改めて確認できた。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2