Mybatis 常「class java.lang.String」に「XXX」という名前のプロパティのゲッターがありません

Mybatis バージョン: mybatis-3.0.6.jar

1. 入力パラメータが文字列型 (java.lang.String を含む) の場合、
#{xxx} を使用してパラメータを導入します。例外がスローされます。「class java」には「XXX」という名前のプロパティのゲッターがありません。 .lang.文字列'

<select id="getBookingCount" resultType="int" parameterType="string">

select count(*) from TB_EMPC_BOOKING_ORDER T

where (t.state = '1' or t.state = '2')

and t.appointmenttime = #{state}

</select>

2. 解決策 1: #{xxx} を #{_parameter} に変更します

<select id="getBookingCount" resultType="int" parameterType="string">

select count(*) from TB_EMPC_BOOKING_ORDER T

where (t.state = '1' or t.state = '2')

and t.appointmenttime = #{_parameter}

</select>

3. 解決策 2: メソッドで事前に定義できます。

public int  methodName(@Param(value="state") String state ){

  ...

}

4. 理由: Mybatis はデフォルトで OGNL を使用してパラメーターを解析するため、自動的にオブジェクト ツリーを使用して string.xxx 値を取得します。メソッドで定義されていない場合は、例外がスローされ、エラーが報告されます。

5. 他の mybatis バージョンでもこの問題が発生するかどうかはわかりません。まだ試していません。

参考:https://www.cnblogs.com/orac/p/6726323.html

おすすめ

転載: blog.csdn.net/qq_38696286/article/details/120459547