0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【学習記録】SpringBootとMyBatisを学習中に発生したエラー【今日のエラー】

0
Posted at

今回発生したエラーまとめ


1. MySQLログインエラー

エラー内容

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

エラーの読み方

部分 意味
ERROR 1045 エラーコード
Access denied アクセスを拒否された
using password: YES パスワードを使ってログインしようとした

原因

パスワードが間違っている

解決方法

パスワードなしでログインを試す

mysql -u root

ログインできた場合、rootユーザーにパスワードが設定されていない状態。
パスワードを設定する場合は以下を実行。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

2. Maven Wrapperエラー

エラー内容

./mvnw: line 117: ./.mvn/wrapper/maven-wrapper.properties: No such file or directory
cannot read distributionUrl property in ./.mvn/wrapper/maven-wrapper.properties

エラーの読み方

部分 意味
line 117 mvnw ファイルの117行目でエラーが発生
No such file or directory ファイルまたはフォルダが見つからない
maven-wrapper.properties 見つからなかったファイルの名前

原因

.mvn/ フォルダが存在しなかった。
Finderでファイルをコピーした際に、.(ドット)で始まる隠しフォルダが漏れてしまった。

解決方法

元のフォルダから .mvn/ をコピーする。

cp -r /Users/kaoru/Downloads/demo/.mvn /Users/kaoru/Desktop/MybatisSample/

今後の対策

Finderではなくターミナルの cp -r コマンドでコピーすると隠しファイルも漏れない。


3. Lombokのコンパイルエラー

エラー内容

COMPILATION ERROR :
シンボルを見つけられません
  シンボル:   メソッド getId()
  場所: タイプ com.example.demo.entity.UserInfo の変数 user

エラーの読み方

部分 意味
COMPILATION ERROR コンパイル(Javaをコンピュータが実行できる形式に変換)中のエラー
シンボルを見つけられません 指定したメソッドやクラスが見つからない
メソッド getId() getId() というメソッドが見つからない
タイプ UserInfo の変数 user UserInfo クラスの user という変数に対して使おうとした

原因

Lombokが正しく動作していなかった。
getId() などのメソッドはLombokの @Data が自動生成するが、
pom.xml<build> にLombokの除外設定がなかったため動作しなかった。

解決方法

pom.xml<build> に以下を追加する。

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludes>
                    <exclude>
                        <groupId>org.projectlombok</groupId>
                        <artifactId>lombok</artifactId>
                    </exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
</build>

なぜこの設定が必要か

Lombokはコンパイル時だけ使うツール。
実行時(jar)には含める必要がないため、除外設定をすることでLombokが正しく認識される。

Lombok(ロンボク)とは
Javaのソースコードを短く書けるようにするライブラリです。

Javaのクラスには、フィールド(変数)ごとに次のようなメソッドを自分で書くことが多いです。

getter(値を取り出す)… getName() など
setter(値を入れる)… setName() など
equals / hashCode(同じかどうか比較する)
toString(文字列にして表示する)
行数が増えて、同じようなコードが何度も並ぶのが普通です。

Lombokは、その「決まりきったコード」を自動で生成してくれる仕組みです。


エラーを読む際の基本方針

1. 最後の方のエラーを見る(根本原因が書かれていることが多い)
2. キーワードを拾う
   - No such file / Not found / Cannot find → ファイルがない
   - Access denied                          → 権限・パスワードが違う
   - COMPILATION ERROR                      → Javaのコードに問題がある
   - シンボルを見つけられません              → クラスやメソッドが見つからない
   - Connection refused                     → 接続できない
3. 「どのファイルの何行目か」を確認する
4. 「何が」「どうなったか」を英語から読み取る

Spring Boot 3系特有の注意点(仕様変更)

記事がSpring Boot 2系向けの場合、以下の変更が必要。

変更前(2系) 変更後(3系)
javax.validation jakarta.validation
mysql:mysql-connector-java com.mysql:mysql-connector-j
MyBatis 2.x.x MyBatis 3.x.x

具体例

// 変更前
import javax.validation.constraints.NotEmpty;

// 変更後
import jakarta.validation.constraints.NotEmpty;

参考: Spring Boot 3.0 Migration Guide

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?