mybatis出力マッピングresultType&resultMap

  • resultType&resultMapの使用条件
    • テーブルのフィールドがクラスの属性と一致している場合、つまりクラスの属性がテーブルのフィールドに1対1で対応している場合は、resultTypeを使用します。それ以外の場合は、resultMapを使用します。
    • 単純型、単一のPOJOオブジェクト、またはPOJOのリストを出力する場合は、resultMapを使用します。
    • クエリの数を達成するためのコード
      • インターフェイスのメソッド
      /**
       * 查询user的个数
       * @param vo
       * @return
       */
      public int findUserCount(UserQueryVo vo);
      
      • マッピングファイルの構成
      <select id="findUserCount" parameterType="userQueryVo" resultType="int">
          SELECT COUNT(*) FROM user WHERE sex = #{user.sex}
      </select>
      
      • 実装
      @Test
      public void test1(){
          UserMapper userMapper = session.getMapper(UserMapper.class);
          //获取数据
      
          //通过模型的包装类来查询用户
          UserQueryVo query = new UserQueryVo();
      
          User user = new User();
          user.setSex("2");
          query.setUser(user);
          int count = userMapper.findUserCount(query);
          System.out.println("女性的个数为:"+count);
      
      }
      
    • テーブルによって照会された値がクラスの属性値に1対1で対応しなくなった場合は、resultMapを使用します。
      • インターフェイスに対応するメソッドを記述し、マッピングファイルを構成し、対応するメソッドを実装することに加えて、戻りデータresultMapを設定する必要もあります。
        • プロファイルコード
        <resultMap id="userResultMap" type="com.Marsoft.model.User">
            <id property="id" column="id_"></id>
            <result property="username" column="username_"></result>
            <result property="sex" column="sex_"></result>
            <result property="birthday" column="birthday_"></result>
            <result property="address" column="address_"></result>
        </resultMap>
        <select id="findUserByIdResultMap" parameterType="int" resultMap="userResultMap">
            SELECT id id_,
            username username_,
            sex sex_,
            birthday birthday_,
            address address_
            FROM USER WHERE id = #{id};
        </select>
        
        1. resultMapタグのIDは、selectタグのresultMap属性の値です。ここでは、クエリはIDに基づいているため、テーブルの他の属性はresultタグに含まれています。
        2. typeの値は特定のエンティティクラスです
        3. 結果タグのプロパティの値は、エンティティクラスのプロパティに対応します
        • インターフェイスのメソッド
        /**
         * 查询的结果作为resultMap传出
         * @param id
         * @return
         */
        public User findUserByIdResultMap(int id);
        
        • 実装
        @Test
        public void test2(){
            UserMapper userMapper = session.getMapper(UserMapper.class);
            //获取数据
        
            //通过模型的包装类来查询用户
            User user = userMapper.findUserByIdResultMap(1);
            System.out.println(user);
        
        }
        

おすすめ

転載: blog.csdn.net/weixin_45566730/article/details/114638419