There is no getter for property named '*' in 'class Java.lang.String'
,此錯誤之所以出現,是因為mybatis在對parameterType="String"
的sql語句做了限制,假如你使用<when test="username != null">
這樣的條件判斷時,就會出現該錯誤
在使用mybaitis傳參數的時候,如果僅傳入一個類型為String的參數,那么在 xml文件中應該使用_parameter來代替參數名。
正確的寫法
<!-- 用於查詢運單號是否存在 -->
- <span style="font-size:18px;"> <!-- 用於查詢運單號是否存在 -->
- <select id="isCargoBillNoExist" resultType="java.lang.Integer">
- select count(1)
- from t_entry_cargo_receiver_info
- where 1=1
- <if test="_parameter != null" >
- and cargo_bill_no = #{_parameter,jdbcType=VARCHAR}
- </if>
- </select></span>
錯誤的寫法:
- <span style="font-size:18px;"> <!-- 用於查詢運單號是否存在 -->
- <select id="isCargoBillNoExist" resultType="java.lang.Integer">
- select count(1)
- from t_entry_cargo_receiver_info
- where 1=1
- <if test="id != null" >
- and cargo_bill_no = #{id,jdbcType=VARCHAR}
- </if>
- </select></span>
也可以在mapper的接口中,給這個方法的參數加上@Param(value=“id”),這樣就能在.xml中使用#{id,jdbcType=VARCHAR} 了。
如:
- public Object getObjById(@Param("id)String id);
這樣也是可以的。