SSM项目之商铺系统-DAO层之新增店铺和更新店铺(五)

新增店铺:

第一步:建立DAO层接口并且实现新增店铺功能的接口

 

第二步:建立ShopDao的xml映射文件并且实现了相应的功能

 

    <!--useGeneratedKeys开启了返回自增主键 的值,这样直接将表中主键值存入了相应的实体类中的属性
             keyColumn指定数据表中主键的列名
             keyProperty指定实体类中对应主键的属性名
    -->
    <insert id="insertShop" useGeneratedKeys="true" keyColumn="shop_id" keyProperty="shopId">
        INSERT INTO
        tb_shop(owner_id,area_id,shop_category_id,shop_name,shop_desc,shop_addr,phone,shop_img,priority,create_time
        ,last_edit_time,enable_status,advice)
        VALUES (
        #{owner.userId},#{area.areaId},#{shopCategory.shopCategoryId},#{shopName},#{shopDesc},#{shopAddr},#{phone},#{shopImg}
        ,#{priority},#{createTime},#{lastEditTime},#{enableStatus},#{advice}
        )

    </insert>

 我们插入了一个商铺的所有信息

接下来完成测试:

public class ShopDaoTest extends BaseTest {
    @Autowired
    private ShopDao shopDao;
    @Test
    public void testInsertShop(){
        Shop shop=new Shop();
        PersonInfo personInfo=new PersonInfo();
        ShopCategory shopCategory=new ShopCategory();
        Area area =new Area();
        personInfo.setUserId(1L);//long型后面加L
       shopCategory.setShopCategoryId(1L);
        area.setAreaId(2);
        shop.setOwner(personInfo);
        shop.setArea(area);
        shop.setShopName("测试的店铺");
        shop.setShopCategory(shopCategory);
        shop.setShopAddr("test");
        shop.setPhone("test");
        shop.setShopDesc("test");
        shop.setShopImg("test");
        shop.setCreateTime(new Date());
        shop.setAdvice("审核中");
        shop.setEnableStatus(1);
      int effect =shopDao.insertShop(shop);
        Assert.assertEquals(1,effect);
    }

测试思路:

我们新建一个shop实体类,手动装配所有shop的信息,通过shopDao的接口实现类(这里用的接口因为我们用autowired装配害会,他会自己装配实现类)的插入方法插入这个shop,我们查看通过返回值(操作影响的行数)判断是否成功插入。

 

更新店铺 :

第一步:建立DAO层接口并建立相应的方法

第二步:配置相应的mapper配置文件

思路:

我们用到了动态sql语句,因为我们每次更新并不是更新每条记录,所以我们判断每个传入的属性是否为空,为空则不需要更新,不为空我们则需要更新,注意:最后一个<if />语句不需要“,”。最后限定条件为shop_id。

测试:

第一步建立相应的test类

测试代码:

public class ShopDaoTest extends BaseTest {
    @Autowired
    private ShopDao shopDao; 
@Test
    public void testUpdateShop(){
        Shop shop=new Shop();
        shop.setShopId(6L);
        shop.setShopName("测试更新的店铺");
        shop.setShopAddr("test更新");
        shop.setPhone("test更新");
        shop.setShopDesc("test更新");
        shop.setShopImg("test更新");
        shop.setLastEditTime(new Date());
        shop.setAdvice("test更新审核中");

        int effect =shopDao.updateShop(shop);
        Assert.assertEquals(1,effect);
    }
}

测试思路

自己建立一个shop实例并且完成相应的属性赋值,通过shopDao的接口的方法返回值(操作的行数)判断是否完成修改。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值