SSM到SpringBoot(校园商铺)7
SSM到SpringBoot(校园商铺)
1、Dao层实现店铺新增、更新
//店铺
@Repository
public interface ShopDao {
//新增店铺 返回受影响的字段数
int insertShop(Shop shop);
//更新店铺
int updateShop(Shop shop);
}
2、创建ShopDao.xml
<?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="com.hytxwz.o2o.dao.ShopDao">
<!-- 新增店铺 -->
<insert id="insertShop" parameterType="Shop">
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>
</mapper>
public class ShopDaoTest extends BaseTest {
@Autowired
private ShopDao shopDao;
// 测试新增店铺方法
@Test
public void testInsertShop() {
Shop shop = new Shop();
shop.setPriority(1);
shop.setShopName("shopName");
shop.setShopImg("shopImg");
shop.setShopDesc("shopDesc");
shop.setPhone("7820661");
shop.setShopAddr("shopAddr");
shop.setCreateTime(new Date());
shop.setLastEditTime(new Date());
shop.setAdvice("advice");
shop.setEnableStatus(1);
Area area = new Area();
area.setAreaId(1);
shop.setArea(area);
PersonInfo owner = new PersonInfo();
owner.setUserId(1L);
shop.setOwner(owner);
ShopCategory shopCategory = new ShopCategory();
shopCategory.setShopCategoryId(1L);
shop.setShopCategory(shopCategory);
//effectNum:受影响的行数
int effectNum = shopDao.insertShop(shop);
assertEquals(1, effectNum);
}
}
3、运行测试insertShop()方法:
千万要细心不要写错SQL!!
千万要细心不要写错SQL!!
千万要细心不要写错SQL!!
不能保证的话就用****创建
注意在运行插入数据之前保证外键值存在
注意在运行插入数据之前保证外键值存在
注意在运行插入数据之前保证外键值存在
测试结果:
ok,next;
4、在ShopDao.xml中添加:
<!-- 更新店铺信息 -->
<update id="updateShop" parameterType="Shop">
UPDATE tb_shop
<set>
<if test="shopName != null">shop_name=#{shopName},</if>
<if test="area != null">area_id=#{area.areaId},</if>
<if test="shopCategory != null">shop_category_id=#{shopCategory.shopCategoryId},</if>
<if test="priority != null">priority=#{priority},</if>
<if test="shopImg != null">shop_img=#{shopImg},</if>
<if test="shopDesc != null">shop_desc=#{shopDesc},</if>
<if test="phone != null">phone=#{phone},</if>
<if test="shopAddr != null">shop_addr=#{shopAddr},</if>
<if test="lastEditTime != null">last_edit_time=#{lastEditTime},</if>
<if test="advice != null">advice=#{advice},</if>
<if test="enableStatus != null">enable_status=#{enableStatus}</if>
</set>
<where>
shop_id=#{shopId}
</where>
</update>
5、在ShopDaoTest中书写测试update的方法
// 测试修改店铺方法
@Test
public void testUpdateShop() {
Shop shop = new Shop();
shop.setShopId(4L);
shop.setPriority(2);
shop.setShopName("updateShopName");
//effectNum:受影响的行数
int effectNum = shopDao.updateShop(shop);
assertEquals(1, effectNum);
}
6、运行测试;