实验2---mybatis映射文件

mybatis映射文件

1.目的

  • 通过该实验,掌握mybatis映射文件中结果映射resultMap的配置方法。
  • 通过该实验,掌握mybatis映射文件中关联association配置方法和集合collection配置方法。
  • 通过该实验,掌握利用mybatis进行数据库表的增删改查的方法。

2.结果

1 实验任务一:实现订单表的增删改查

订单查询:在3.1需求一第4步中,运行测试用例test包下的cn.smbms.dao.bill里的BillMapperTest,在方法testGetBillList右键运行run as -jUnit Test修改代码,要求查询条件设定 productName ,providerId ,isPayment 等参数。

将自己敲入的相关代码和在控制台查询出的结果截屏,粘贴到这里。

订单增删改:将 第3步中 订单的增删改 中的BillMapper.java,及BillMapper.xml中的内容粘贴到这里,并给出结果截图。

接口:

public interface BillMapper {

    /**
     * 根据条件查询订单表
     *
     * @param productName
     * @param providerId
     * @param isPayment
     * @return
     */
	List<Bill> getBillList(@Param("productName") String productName,
						   @Param("providerId")Integer providerId,
						   @Param("isPayment") Integer isPayment);

	/*
	 * 添加订单的信息
	 * */
	int add(Bill bill);

	/*
	 * 根据订单的编号删除指定的订单的信息
	 * */
	int deleteBillById(@Param("id") int id);

	/*
	 * 修改订单的信息
	 * */
	int   modify(Bill bill);
}

mapper:

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

<mapper namespace="cn.smbms.dao.bill.BillMapper">

    <resultMap id="providerResult" type="Provider">
        <id property="id" column="p_id"/>
        <result property="proCode" column="proCode"/>
        <result property="proName" column="proName"/>
        <result property="proContact" column="proContact"/>
        <result property="proPhone" column="proPhone"/>
    </resultMap>

    <resultMap id="billList" type="Bill">
        <id property="id" column="id"/>
        <result property="billCode" column="billCode"/>
        <result property="productName" column="productName"/>
        <result property="totalPrice" column="totalPrice"/>
        <result property="isPayment" column="isPayment"/>
        <association property="provider" javaType="Provider" resultMap="providerResult"/>
    </resultMap>


    <select id="getBillList" resultMap="billList">
        select b.*, p.id as p_id, p.proCode, p.proName, p.proContact, p.proPhone
        from smbms_bill b
                 join smbms_provider p on b.providerId = p.id
        where b.productName like concat('%', #{productName}, '%')
          and b.providerId = #{providerId}
          and b.isPayment = #{isPayment}
    </select>
<!--    增加订单-->
    <insert id="add">
        insert into smbms_bill (billCode, productName, productDesc, productUnit, productCount,
                                    totalPrice, isPayment, createdBy, creationDate,providerId)
        values (#{billCode}, #{productName}, #{productDesc}, #{productUnit}, #{productCount}, #{totalPrice},
                #{isPayment}, #{createdBy}, #{creationDate},#{providerId})
    </insert>

<!--    修改订单-->
    <update id="modify" parameterType="Bill">
        update smbms_bill
        set
            billCode= #{billCode},
            productName= #{productName},
            productDesc= #{productDesc},
            productUnit=  #{productUnit},
            productCount=  #{productCount},
            totalPrice=  #{totalPrice},
            isPayment=  #{isPayment},
            modifyBy= #{modifyBy},
            modifyDate=  #{modifyDate},
            providerId= #{providerId}
        where id = #{id}
    </update>

    <!--    删除订单-->
    <delete id="deleteBillById">
        delete  from  smbms_bill where id=#{id}
    </delete>
</mapper>

2 实验任务二:供应商增删改及其订单列表查询

根据供应商id查询其订单:在4.1需求二第4步中,运行测试用例test包下的cn.smbms.dao.provider里的ProviderMapperTest,在方法testGetBillListByProviderId右键运行run as -jUnit Test。修改该测试方法中的供应商ID,在控制台查看查询结果,并截图。

将相关代码和在控制台输出的相关结果截屏,粘贴到这里。

供应商增删改:将 第4步中 订单的增删改 中的ProviderMapper.java,及ProviderMapper.xml中的内容粘贴到这里,并给出运行结果截图。

接口:

public interface ProviderMapper {
    /**
     * 查询供应商表记录数
     *
     * @return
     */
    int count();

    /**
     * 查询供应商列表
     *
     * @return
     */
    List<Provider> getProviderList();

    /**
     * 根据供应商名称查询供应商列表(模糊查询)
     *
     * @param proName
     * @return
     */
    List<Provider> getProviderListByProName(String proName);

    /**
     * 增加供应商
     *
     * @param provider
     * @return
     */
    int insert(Provider provider);

    /**
     * 修改供应商信息
     *
     * @param provider
     * @return
     */
    int update(Provider provider);

    /**
     * 根据供应商ID删除供应商信息
     *
     * @param delId
     * @return
     */
    int delete(@Param("id") Integer delId);

    /*
    *获取指定供应商订单列表 collection
    * */
   Provider getBillListByProviderId(@Param("id")Integer providerId);
}

mapper:

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

<mapper namespace="cn.smbms.dao.provider.ProviderMapper">

    <!-- 查询供应商表记录数 -->
    <select id="count" resultType="int">
        select count(1) as count
        from smbms_provider
    </select>

    <!-- 查询供应商列表 -->
    <select id="getProviderList" resultType="cn.smbms.pojo.Provider">
        select *
        from smbms_provider
    </select>

    <!-- 根据供应商名称查询供应商列表(模糊查询) -->
    <select id="getProviderListByProName" resultType="cn.smbms.pojo.Provider" parameterType="String">
        select *
        from smbms_provider
        where proName like CONCAT('%', #{proName}, '%')
    </select>

    <!-- 增加供应商 -->
    <insert id="insert" parameterType="Provider">
        insert into smbms_provider (proCode, proName, proDesc, proContact, proPhone,
                                    proAddress, proFax, createdBy, creationDate)
        values (#{proCode}, #{proName}, #{proDesc}, #{proContact}, #{proPhone}, #{proAddress},
                #{proFax}, #{createdBy}, #{creationDate})
    </insert>

    <!-- 修改供应商信息 -->
    <update id="update" parameterType="Provider">
        update smbms_provider
        set proCode=#{proCode},
            proName=#{proName},
            proDesc=#{proDesc},
            proContact=#{proContact},
            proPhone=#{proPhone},
            proAddress=#{proAddress},
            proFax=#{proFax},
            modifyBy=#{modifyBy},
            modifyDate=#{modifyDate}
        where id = #{id}
    </update>

    <!-- 根据供应商ID删除供应商信息 -->
    <delete id="delete" parameterType="Integer">
        delete
        from smbms_provider
        where id = #{id}
    </delete>


    <!--获取指定供应商订单列表 collection-->
    <resultMap id="providerBillResult" type="Provider">
        <id property="id" column="id"/>
        <result property="proCode" column="proCode"/>
        <result property="proName" column="proName"/>
        <result property="proContact" column="proContact"/>
        <result property="proPhone" column="proPhone"/>
        <collection property="billList" ofType="Bill" resultMap="billResult"/>
    </resultMap>
    <resultMap id="billResult" type="Bill">
        <id property="id" column="b_id"/>
        <result property="billCode" column="billCode"/>
        <result property="productName" column="productName"/>
        <result property="totalPrice" column="totalPrice"/>
        <result property="isPayment" column="isPayment"/>
    </resultMap>
    <select id="getBillListByProviderId" resultMap="providerBillResult" parameterType="int">
        select p.*, b.id as b_id, b.billCode, b.productName, b.totalPrice, b.isPayment
        from smbms_provider p
                left join smbms_bill b on b.providerId = p.id
        where p.id=#{id}
    </select>

</mapper>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简单点了

谢谢大佬

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值