[Mybatis]SQLに注釈を付けるときにエラーが発生しました

1.エラー:

アノテーション付きのSQLを挿入するMybatisの演習を行っているときに、このようなエラーを報告しました。

間違いに遭遇するのは普通のことですが、それから私は今日学んだばかりの内容を学び、古いものを見直し、新しいことを学びました。

エラーの質問は次のとおりです。

2.ファイル構造:

BookMapper.java

public interface BookMapper {
    @SelectProvider(type = BookMapperSQL.class,method = "bookSelectById")
    Book bookSelectById(int id);

}

BookMapperSQL .java

public class BookMapperSQL {
    public String bookSelectById(final int id){
        return new SQL().
                SELECT("*")
                .FROM("t_user")
                .WHERE("id=#{id}").toString();

    }
}

次に、ファイルを削除せずにBookMapper.xmlのすべての内容を削除しました。ディレクトリは次のとおりです。

 

Mybatis構成ファイル

パッケージとクラスを使用したこのマッピングは、アノテーション構成を行っているため、効果がありません。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <properties resource="Dd.properties"/>
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
    <typeAliases>
        <package name="org.example.po"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${db.driver}"/>
                <property name="url" value="${db.url}"/>
                <property name="username" value="${db.username}"/>
                <property name="password" value="${db.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
<!--        <mapper class="org.example.mapper.BookMapper"/>-->
        <package name="org.example.mapper"/>
    </mappers>
</configuration>

3.分析:

      上記のファイルから、私の問題のほとんどはマッパーパッケージにあるはずです。次に、パラメータの数が揃っているかどうかを確認しますが、そのようなエラーは発生しません。SQLMapper構成が正しく解析されていないと言われているため、最初はBookMapperSQLの内容かどうかという質問に巻き込まれました。 javaが間違って書かれていて、私は1つ以上勉強しました。何時間も、私はそれを直接再学習して泣きました。

      後で、以前行った宿題を取り、それを修正したので、問題が発生したのではないかと思いました。次に、以前のファイルディレクトリを確認しました

       以前にこの動的プロキシメソッドを実装したときに、pom.xmlファイルがマッパーパッケージで構成および指定されたことを突然思い出しました。

 問題があるのは、指定された場所とファイルの読み込みが原因ですか?だから私はこのコードをコメントアウトしました

、その後正常に実行されます。 

暑いとき、アノテーションを使ってSQLを挿入するときは、このファイルをマッパーパッケージに追加する必要はありません。私は愚かだとしか言えず、オンラインでチェックするとき、誰も私ほど気難しい人はいないと言えます。

おすすめ

転載: blog.csdn.net/m0_56233309/article/details/123561569