MyBatisは特定のカラム値null,@Paramのみ存在する
特定のカラム値のみnull
mybatisバインドを開始し、ログインロジックを実行しています
mapper.xmlの一部
<select id="findLoginId" parameterType="map" resultType="git.demo.domain.Member">-->
select id, userid, pw from member-->
where userid= #{loginId} and pw= #{loginPw}-->
</select>-->
db上のクエリ文の実行結果ideで実行
原因がさっぱりわからない.パッチワークや新聞漏れのように実験を行うと、pw曲線もずっと漏れてしまいます.
面白いのはdbに良い入力があることです.
これは間違いなくMybatisに問題があると思います.
<resultMap id="memberDTO" type="git.demo.domain.Member">
<result property="id" column="id"/>
<result property="userId" column="userid"/>
<result property="userPw" column="pw"/>
</resultMap>
<select id="findLoginId" resultMap="memberDTO">
select id, userid,pw from member
where userid= #{loginId} and pw= #{loginPw}
</select>
マッパー:xmlのコードを変更しました.これはresultTypeとresultMapの違いから得られた結論である.
正式文書ではresultTypeは、インスタンスタイプのプールパッケージ名を記録してクラスのパスを指定することで自動的にマッピングされます.
resultMapは開発者によって直接POJOクラスにマッピングされるため,無限に利用できる.
これは、自動マッピングと手動マッピングの違いです.
@Param
mybatisでは、2つ以上のデータをパラメータとして渡すためにmapまたは@Paramを使用する必要があります.
これを持たずにマッピングを続行できない場合に挿入した.
Reference
この問題について(MyBatisは特定のカラム値null,@Paramのみ存在する), 我々は、より多くの情報をここで見つけました https://velog.io/@dudwls0505/MyBatis-특정컬럼값만-null-Param의-존재テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol