mybatis 之引入多个model

时间:2021-06-27 15:05:27

配置hessian:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <settings>
        <!-- 对在此配置文件下的所有cache 进行全局性开/关设置 true,false -->
        <setting name="cacheEnabled" value="true" />
        <!-- 全局性设置懒加载。如果设为‘false’,则所有相关联的都会被初始化加载 true,false -->
        <setting name="lazyLoadingEnabled" value="true" />
        <!-- 当设置为‘true’的时候,懒加载的对象可能被任何懒属性全部加载。否则,每个属性都按需加载 true,false -->
        <setting name="aggressiveLazyLoading" value="true" />
        <!-- 允许和不允许单条语句返回多个数据集(取决于驱动需求),默认true -->
        <setting name="multipleResultSetsEnabled" value="true" />
        <!-- 使用列标签代替列名称。不同的驱动器有不同的作法。参考一下驱动器文档,或者用这两个不同的选项进行测试一下 true,false -->
        <setting name="useColumnLabel" value="true" />
        <!-- 允许JDBC 生成主键。需要驱动器支持。如果设为了true,这个设置将强制使用被生成的主键,有一些驱动器不兼容不过仍然可以执行 true,false -->
        <setting name="useGeneratedKeys" value="false" />
        <!-- 指定MyBatis 是否并且如何来自动映射数据表字段与对象的属性。PARTIAL将只自动映射简单的,没有嵌套的结果。FULL将自动映射所有复杂的结果
            NONE,PARTIAL,FULL -->
        <setting name="autoMappingBehavior" value="PARTIAL" />
        <!-- 配置和设定执行器,SIMPLE执行器执行其它语句。REUSE执行器可能重复使用prepared statements语句,BATCH执行器可以重复执行语句和批量更新
            SIMPLE,REUSE,BATCH -->
        <setting name="defaultExecutorType" value="REUSE" />
        <!-- 设置一个时限,以决定让驱动器等待数据库回应的多长时间为超时 -->
        <setting name="defaultStatementTimeout" value="25000" />
    </settings>

<!-- 引入Model 对象 -->
    <typeAliases>
        <typeAlias alias="HwgActivityInfo" type="com.j1.hwg.model.HwgActivityInfo" />
        <typeAlias alias="HwgSelectGoods" type="com.j1.hwg.model.HwgSelectGoods" />
        <typeAlias alias="HwgHotBrand" type="com.j1.hwg.model.HwgHotBrand" />
        <typeAlias alias="HwgCategoryImage" type="com.j1.hwg.model.HwgCategoryImage" />
        <typeAlias alias="HwgCategoryProduct" type="com.j1.hwg.model.HwgProduct" />
        <typeAlias alias="HwgKeyword" type="com.j1.hwg.model.HwgKeyword" />
        <typeAlias alias="HwgProductEvaluation" type="com.j1.hwg.model.HwgProductEvaluation" />
        <typeAlias alias="HwgProductSaleLimit" type="com.j1.hwg.model.HwgProductSaleLimit" />
        <typeAlias alias="HwgCatalogBrand" type="com.j1.hwg.model.HwgCatalogBrand" />
    </typeAliases>
</configuration>

或者是Model的全路径:

" ?>
-mapper.dtd" >
<mapper namespace="com.j1.soa.resource.hwg.dao.oracle.HwgCatalogBrandMapper">

     <resultMap id="HwgCatalogBrandMap" type="HwgCatalogBrand">
        <result column="CATALOG_BRAND_ID" property="catalogBrandId" />
        <result column="PRO_CATALOG_ID" property="proCatalogId" />
        <result column="PRODUCT_BRAND_NAME" property="productBrandName" />
        <result column="PRODUCT_BRAND_IMG" property="productBrandImg" />
        <result column="PRODUCT_BRAND_URL" property="productBrandUrl" />
        <result column="PRO_CATALOG_NAME" property="proCatalogName" />
        <result column="CATALOG_BRAND_ORDER" property="catalogBrandOrder" />
    </resultMap>

    <resultMap id="hwgCategoryMap" type="com.j1.hwg.model.HwgCategory">
        <result column="PRO_CATALOG_ID" property="categoryId"/>
        <result column="PRO_CATALOG_NAME" property="categoryName"/>
    </resultMap>

    <!-- 用于分页查询的头部 -->
    <sql id="be_fy">
        select *
        from (select row_.*, rownum rownum_
        from (
    </sql>
    <!-- 用于分页的尾部 -->
    <sql id="ed_fy">
        ) row_

        <if test="endRow != null">
            <![CDATA[
             and rownum <= #{endRow}
             ]]>
        </if>
        )

        <if test="startRow != null">
            <![CDATA[
             and rownum_ >= #{startRow}
             ]]>
        </if>
    </sql>
    <!-- 查询 -->
    <select id="queryHwgCatalogBrandPages" resultMap="HwgCatalogBrandMap" parameterType="HwgCatalogBrand">
        <include refid="be_fy" />
        select
            t.catalog_brand_id,
           t.pro_catalog_id,
           t.product_brand_name,
           t.product_brand_img,
           t.product_brand_url,
           l.pro_catalog_name,
           t.catalog_brand_order
        from hwg_catalog_brand t inner join product_catalog l on  l.pro_catalog_id =t.pro_catalog_id
        <where>
             t.is_delete = 'N'
             <if test="productBrandName != null and productBrandName != ''">
                 and t.PRODUCT_BRAND_NAME like '%'||#{productBrandName}||'%'
             </if>
             ">
                 and t.PRO_CATALOG_ID =#{proCatalogId}
             </if>
        </where>
        order by t.ADD_TIME desc
        <include refid="ed_fy" />
    </select>
    <!-- 查询总数量 -->
    <select id="getHwgCatalogBrandCount" resultType="java.lang.Integer" parameterType="HwgCatalogBrand">
        ) from hwg_catalog_brand t
         <where>
             t.is_delete = 'N'
             <if test="productBrandName != null and productBrandName != ''">
                 and t.PRODUCT_BRAND_NAME like '%'||#{productBrandName}||'%'
             </if>
              ">
                 and t.PRO_CATALOG_ID =#{proCatalogId}
             </if>
        </where>
    </select>

    <!-- 根据主键查询 -->
    <select id="getHwgCatalogBrandById" resultMap="HwgCatalogBrandMap" parameterType="java.lang.Long">
        select t.catalog_brand_id,
           t.pro_catalog_id,
           t.product_brand_name,
           t.product_brand_img,
           t.product_brand_url,
           t.catalog_brand_order
        from hwg_catalog_brand t where t.catalog_brand_id = #{catalogBrandId}
    </select>

    <!-- 根据分类ID查询 -->
    <select id="getHwgCatalogBrandByCatalogId" resultMap="HwgCatalogBrandMap" parameterType="java.lang.Long">
        select t.catalog_brand_id,
        t.pro_catalog_id,
        t.product_brand_name,
        t.product_brand_img,
        t.product_brand_url,
        t.catalog_brand_order
        from hwg_catalog_brand t where t.PRO_CATALOG_ID = #{proCatalogId} AND t.is_delete='N'
        ORDER BY t.CATALOG_BRAND_ORDER
    </select>
    <!-- 保存 -->
    <insert id="save" parameterType="HwgCatalogBrand">
        <selectKey resultType="java.lang.Long" keyProperty="catalogBrandId"  order="BEFORE">
            SELECT HWG_CATALOG_BRAND_ID_SEQ.nextval from dual
        </selectKey>
        insert into HWG_CATALOG_BRAND
        <trim prefix="(" suffix=")" suffixOverrides=",">
            CATALOG_BRAND_ID,
            <if test="proCatalogId != null">
                PRO_CATALOG_ID,
            </if>
            <if test="productBrandName != null">
                PRODUCT_BRAND_NAME,
            </if>
            <if test="productBrandImg != null">
                PRODUCT_BRAND_IMG,
            </if>

            <if test="productBrandUrl != null">
                PRODUCT_BRAND_URL,
            </if>
             <if test="catalogBrandOrder != null">
                catalog_brand_order,
            </if>
            <if test="addUserId != null">
                ADD_USER_ID,
            </if>
            <if test="editTime != null">
                EDIT_TIME,
            </if>
            <if test="addTime != null">
                ADD_TIME,
            </if>
            <if test="editUserId != null">
                EDIT_USER_ID,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            #{catalogBrandId,jdbcType=NUMERIC},
            <if test="proCatalogId != null">
                #{proCatalogId,jdbcType=NUMERIC},
            </if>
            <if test="productBrandName != null">
                #{productBrandName,jdbcType=VARCHAR},
            </if>
            <if test="productBrandImg != null">
                #{productBrandImg,jdbcType=VARCHAR},
            </if>
            <if test="productBrandUrl != null">
                #{productBrandUrl,jdbcType=VARCHAR},
            </if>
            <if test="catalogBrandOrder != null">
                #{catalogBrandOrder,jdbcType=NUMERIC},
            </if>
            <if test="addUserId != null">
                #{addUserId,jdbcType=NUMERIC},
            </if>
            <if test="editTime != null">
                #{editTime,jdbcType=VARCHAR},
            </if>
            <if test="addTime != null">
                #{addTime,jdbcType=VARCHAR},
            </if>
            <if test="editUserId != null">
                #{editUserId,jdbcType=NUMERIC},
            </if>
        </trim>
    </insert>
    <!-- 修改 -->
    <update id="update" parameterType="HwgCatalogBrand">
        update HWG_CATALOG_BRAND
        <set>
            <if test="proCatalogId != null and proCatalogId != ''">
                PRO_CATALOG_ID =#{proCatalogId,jdbcType=NUMERIC},
            </if>
            <if test="productBrandName != null and productBrandName != ''">
                PRODUCT_BRAND_NAME = #{productBrandName,jdbcType=VARCHAR},
            </if>
            <if test="productBrandImg != null and productBrandImg != ''">
                PRODUCT_BRAND_IMG = #{productBrandImg,jdbcType=VARCHAR},
            </if>
            <if test="productBrandUrl != null and productBrandUrl != ''">
                PRODUCT_BRAND_URL = #{productBrandUrl,jdbcType=VARCHAR},
            </if>
            <if test="catalogBrandOrder != null and catalogBrandOrder != ''">
                CATALOG_BRAND_ORDER = #{catalogBrandOrder,jdbcType=NUMERIC},
            </if>
            <if test="addUserId != null and addUserId != ''">
                ADD_USER_ID = #{addUserId,jdbcType=NUMERIC},
            </if>
            <if test="addTime != null and addTime != ''">
                ADD_TIME = #{addTime,jdbcType=VARCHAR},
            </if>
            <if test="editUserId != null and editUserId != ''">
                EDIT_USER_ID = #{editUserId,jdbcType=NUMERIC},
            </if>
            <if test="editTime != null and editTime != ''">
                EDIT_TIME = #{editTime,jdbcType=VARCHAR},
            </if>
            <if test="isDelete != null and isDelete != ''">
                IS_DELETE = #{isDelete,jdbcType=VARCHAR}
            </if>
        </set>
        where catalog_brand_id = #{catalogBrandId,jdbcType=NUMERIC}
    </update>
    <!-- 删除 -->
    <update id="delete"  parameterType="java.util.List">
        update HWG_CATALOG_BRAND set IS_DELETE='Y' where catalog_brand_id
        in
        <foreach item="item" collection="list" separator="," open="(" close=")">
            #{item, jdbcType=NUMERIC}
        </foreach>
      </update>    

      <select id="queryCatalog" resultMap="hwgCategoryMap" parameterType="java.lang.String">
      select c.PRO_CATALOG_ID ,c.PRO_CATALOG_NAME
      from PRODUCT_CATALOG c
      where c.PRO_PARENT_CATALOG IN
      (select c.PRO_CATALOG_ID
      from PRODUCT_CATALOG c,PRODUCT_CATALOG_AUTH a
      where a.PRO_CATALOG_ID=c.PRO_CATALOG_ID 

      and a.AUTH_TYPE=#{value})
      </select>

      <!-- 查询所有楼层 -->
      <select id="getAbroadCategoryInfo" resultType="com.j1.hwg.webmodel.AbroadCategoryInfo" >
        select
          hc.category_id as categoryId, hc.category_name as categoryName
        from
          hwg_category hc
        where
          hc.is_delete='N'
        order by
          hc.category_order
      </select>

</mapper>