参照シーン
- エンティティクラスの属性名がデータベースのフィールド名と異なる場合、結果をマッピングに使用できます
- マルチテーブルクエリでは、マッピングを確立してデータベース操作を簡素化できます
- さらに、属性名とフィールド名の不一致の問題を解決するために、sqlステートメントのエイリアスとして使用することもできます(より面倒です)
属性名とフィールド名が一致しません(通常、テーブルを検索するときに無視するのは簡単です)
MyBatisは、舞台裏でResultMapを自動的に作成し、プロパティ名に基づいてJavaBeanのプロパティにマップします。列名と属性名が一致しない場合は、SELECT
ステートメントで列エイリアスマッパーマッピングステートメントを設定できます。
<select id="getUsers" resultType="com.LinXiaoDe.pojo.User">
select * from mybatis_db.user_t
</select>
この場合、不一致があり、pwdとpasswordが一致せず、結果は空です。
解決策1:sqlステートメントのマッピングとして使用する
<select id="getUsers" resultType="com.LinXiaoDe.pojo.User">
select * from mybatis_db.user_t
</select>
------------->
<select id="getUsers" resultType="com.LinXiaoDe.pojo.User">
select id,userName,password as pwd from mybatis_db.user_t
</select>
解決策2:resultMapマッピング
resultMap要素は、MyBatisで最も重要で強力な要素です。これにより、JDBC ResultSetsデータ抽出コードの90%から解放され、場合によっては、JDBCがサポートしていない操作を実行できるようになります。ResultMapの設計アイデアは、単純なステートメントの構成をゼロにすることであり、より複雑なステートメントの場合は、ステートメント間の関係のみを記述する必要があります。
- 将来的には、データベースの名前は一般的に下線が引かれます
<resultMap id="getUserResultMap" type="com.LinXiaoDe.pojo.User">
<id property="id" column="id"/>
<id property="userName" column="userName"/>
<id property="pwd" column="password"/>
</resultMap>
<select id="getUsers" resultMap="getUserResultMap">
select id,userName,password from mybatis_db.user_t
</select>