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を挿入するときは、このファイルをマッパーパッケージに追加する必要はありません。私は愚かだとしか言えず、オンラインでチェックするとき、誰も私ほど気難しい人はいないと言えます。