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!!

不能保证的话就用****创建

注意在运行插入数据之前保证外键值存在

注意在运行插入数据之前保证外键值存在

注意在运行插入数据之前保证外键值存在
SSM到SpringBoot(校园商铺)7
SSM到SpringBoot(校园商铺)7

测试结果:
SSM到SpringBoot(校园商铺)7

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、运行测试;
SSM到SpringBoot(校园商铺)7

nice!