mybatis编写mapper.xml时的一些疑惑

mybatis编写mapper.xml时的一些疑惑

  1. 今天在写一个需求时,在写sql的时候遇到了极大的问题。一直在报错,
    修改后的代码如下:
 <select id="getEnterCommunity" parameterType="FydjCommper" resultType="FydjCommunityActivities">
        select
        f.fydjca_Actname as fydjcaActname,f.fydjca_Actstime as fydjcaActstime,f.fydjca_Actetime as fydjcaActetime,f.fydjca_Ecname as fydjcaEcname
        from
        fydj_Community_Activities f
        left join
        FYDJ_SINGNMANAGE t
        on
        t.fydjsm_emuuid = f.fydjca_uuid
        where 1 = 1
        <if test="fydjcaUuid!=null and fydjcaUuid!=''">
            and t.fydjsm_useruuid=#{fydjcaUuid,jdbcType=VARCHAR}
        </if>
    </select>
  1. 我犯了第一个错是,我的fydjcaUuid是另一个表中的数据,我在parameterType直接填写了与resultType相同的参数FydjCommunityActivities实体类,但是从页面上传递过来的参数是FydjCommper表中的字段,所以要换成FydjCommper。
  2. 第二个错误是我直接在select片段下面这样书写了:
    f.fydjca_Actname,f.fydjca_Actstime,f.fydjca_Actetime ,f.fydjca_Ecname
    并没有根据实体类中的参数赋值,当然会报错,切记,下次不可犯同样的错误。
  3. 刚好我sql编写的能力较差,尝试用where条件进行查询,和左连接的结果一样,纯属练习,代码如下:
 SELECT *
     FROM (select f.fydjca_Actname  as fydjcaActname,
                  f.fydjca_Actstime as fydjcaActstime,
                  f.fydjca_Actetime as fydjcaActetime,
                  f.fydjca_Ecname   as fydjcaEcname
     from fydj_Community_Activities f, FYDJ_SINGNMANAGE t
     where 1 = 1
            and t.fydjsm_emuuid = f.fydjca_uuid
     <if test="fydjcaUuid!=null and fydjcaUuid!=''">
            and t.fydjsm_useruuid=#{fydjcaUuid,jdbcType=VARCHAR}
     </if>
发布了33 篇原创文章 · 获赞 2 · 访问量 4754

猜你喜欢

转载自blog.csdn.net/qq_36778310/article/details/102411703