SSM到SpringBoot(校园商铺)

1、Dao层实现店铺新增、更新

//店铺
@Repository
public interface ShopDao {

	//新增店铺	返回受影响的字段数
	int insertShop(Shop shop);
	//更新店铺 	
	int updateShop(Shop shop);
	
}

2、创建ShopDao.

<?  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  Test {

	@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. 中添加:

<!-- 更新店铺信息 -->
	<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、运行测试;
\"在这里插入图片描述\"

nice!

收藏 打印