mybatis resultMapは、属性名とフィールド名の不一致の問題を解決します

エンティティークラスの属性と列名の不整合を解決する2つのソリューション


最初のタイプ(実行効率が速く、開発効率が低い)

  1. クラスの属性は、id、name、passwordです。
  2. データベースのフィールドは、user_id、user_name、user_passwordです。
  3. データベースからクエリされたデータをUserオブジェクトにカプセル化できるようにするには、エイリアスを使用できます
    。これはマッピングファイルに書き込む必要があります。
<select id="findAll" resultType="com.yixuexi.entity.User">
	select user_id as id,user_name as name,user_password as password from user;
</select>

概要:このソリューションは比較的原始的なものであり、テーブルにフィールドがさらにある場合、開発速度は非常に遅くなります。

2番目のソリューション(実行効率が低く、開発速度が速い)

  1. mybatisの構成を使用する
  2. これをマッピングファイルで直接設定します
<!--id 就是起个名,在使用的时候用这个名就行   type 是哪个实体类-->
<resultMap id="userMap" type="com.yixuexi.entity.User">
	<!--id 是配置主键字段的对应   property 写类中的属性名 column写数据库中对应的字段名-->
	<id property="id" column="user_id"></id>
	<!--result 是非主键字段的对应-->
	<result property="name" column="user_name"></result>
	<result property="password" column="user_password"></result>
</resultMap>

  1. クエリを実行するときは、resultTypeを使用して結果タイプを指定しないでください。resultMapを使用してください。
<select id="findAll" resultMap="userMap">
	select user_id,user_name,user_password from user
</select>

これは、エンティティクラスで照会し、カプセル化することができます。
ご注意

  • resultTypeは使用せず、resultMapのIDを使用してください
  • resultMapのサブタグIDは、主キーフィールドを構成するために使用されます
  • resultMapのサブタグの結果は、非主キーフィールドを構成するために使用されます

次の記事の更新:メイン構成ファイルで参照されるJDBC.propertiesとメイン構成ファイルのいくつかのタグ

おすすめ

転載: blog.csdn.net/m0_46409345/article/details/108649541