問題(0 1>パラメータの数)範囲外MyBatisの#パラメータインデックスに、{エラー}

いくつかの理由があります。

その結果、フィールド内の1 MySQLのテーブルの名前は

名前=#{NN}

名前は特別なフィールドで、 `name`の=#{NN}を変更する必要があります

 

2。 

、関連するファジークエリのSQLがある場合Mapper.xmlファイルでMyBatisのでは、真ん中のは文がたったの$を使用することができます含まれているように、#を使用することはできません。

直接文字列を渡すために、同等の$を使用している場合ただし、SQLインジェクションの危険性があります

#{}構文を使用すると、MyBatisのはPreparedStatementのプロパティを生成させ、設定されたパラメータ値のPreparedStatement安全に(例えば?)に応じます。これは安全であるが、より速く、ほとんどの場合、好ましい
連結(「%」、#よう {NN}、「%」) 解決す

$ {name}は単一引用符で、#{name}は単一引用符で

あなたは「%の#{名}%」のように使用するときに、このエラーが報告されます

3.?対応する数の上に設けられたプレースホルダの値が矛盾しません

 

 

おすすめ

転載: blog.csdn.net/zhuchunyan_aijia/article/details/93619741