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的接口的方法返回值(操作的行数)判断是否完成修改。

猜你喜欢

转载自blog.csdn.net/sunmeok/article/details/81293963