请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

5回答

翔仔 2020-03-01 02:15:57

https://img1.sycdn.imooc.com//szimg/5e5aaa4b09c2faea13310229.jpg

看看你的sql?shop_img列是不是没写呢

1 回复 有任何疑惑可以回复我~
  • 翔仔 #1
    还有第一句,insert的时候,shop_img的值是null 看看为什么没有赋值
    回复 有任何疑惑可以回复我~ 2020-03-01 02:17:39
纯情的慕哥 2020-02-29 16:33:47

如果你插入得是Null,数据库就是null了,没毛病

1 回复 有任何疑惑可以回复我~
提问者 大尾鲈鳗100 2020-03-01 14:02:47

@Test

public void testAddShop() {

Shop shop = new Shop();

PersonInfo owner = new PersonInfo();

Area area = new Area();

ShopCategory shopCategory = new ShopCategory();

owner.setUserId(1L);

area.setAreaId(2);

shopCategory.setShopCategoryId(1L);

shop.setOwner(owner);

shop.setArea(area);

shop.setShopCategory(shopCategory);

shop.setShopName("测试的店铺1");

shop.setShopDesc("test1");

shop.setShopAddr("test1");

shop.setPhone("test1");

shop.setCreateTime(new Date());

shop.setEnableStatus(ShopStateEnum.CHECK.getState());

shop.setAdvice("审核中");

shop.setShopImg("地址");

File shopImg = new File("C:/Users/Uchiha Itachi/Desktop/o2oimages/icon.jpg");

ShopExecution se = shopService.addShop(shop, shopImg);

assertEquals(ShopStateEnum.CHECK.getState(),se.getState());

}

add里面加了shop.setShopImg("地址"); 后数据库的shop_img就能显示地址 但是日志中的update tb_shop SET 还是缺少 shop_img=? 

//img1.sycdn.imooc.com//szimg/5e5b4fc90973152300000000.jpg

//img1.sycdn.imooc.com/szimg/5e5b4fc909defbcc00000000.jpg

//img1.sycdn.imooc.com//szimg/5e5b4fc90973152300000000.jpg

https://img1.sycdn.imooc.com/szimg/5e5b4fc90973152300000000.jpg

0 回复 有任何疑惑可以回复我~
  • 翔仔 #1
    addShop方法是先insert一条shop记录,然后去操作图片,图片生成成功后,返回图片路径,然后再需要往shop里面去set,之后才更新会数据库才可以
    	private void addShopImg(Shop shop, ImageHolder thumbnail) {
    		// 获取shop图片目录的相对值路径
    		String dest = PathUtil.getShopImagePath(shop.getShopId());
    		String shopImgAddr = ImageUtil.generateThumbnail(thumbnail, dest);
    		shop.setShopImg(shopImgAddr);
    	}
    主要你后面可能没有setShopImg
    回复 有任何疑惑可以回复我~ 2020-03-02 01:27:32
提问者 大尾鲈鳗100 2020-02-29 18:09:49

https://img1.sycdn.imooc.com//szimg/5e5a383e09b4c69110380376.jpg

https://img1.sycdn.imooc.com//szimg/5e5a383e096491b813130714.jpg

https://img1.sycdn.imooc.com/szimg/5e5a383e09e136a808790800.jpg

https://img1.sycdn.imooc.com//szimg/5e5a383f0928fc0307030492.jpg

https://img1.sycdn.imooc.com//szimg/5e5a383f09bbe89009310723.jpg

https://img1.sycdn.imooc.com/szimg/5e5a383f09b5f84c08340901.jpg还是没找到原因


0 回复 有任何疑惑可以回复我~
  • 翔仔 #1
    同学好,这种问题其实调试一下就能解决,调试在工作中非常关键,一定要提升自己调试解决问题的能力,像这里,你可以看看你的控制台在执行了方法之后打印出了什么sql,看看sql里面传入的参数是否匹配,我感觉传入的shop_img应该为null,此时就回头去看看mapper里面有没有传入shop_img 再看看方法参数给Shop设值的时候,有没有设置上shopImg一步步去排查而不是直接贴代码,因为很多时候生看代码是看不出问题的,编程不是黑盒去编程,还包括去调试解决问题。此外,同学还可以设置断点去调试,后续的章节也会教同学如何设置断点调试
    回复 有任何疑惑可以回复我~ 2020-03-01 01:42:45
  • 提问者 大尾鲈鳗100 回复 翔仔 #2
    DEBUGcom.imooc.o2o.dao.ShopDao.updateShop-==> Parameters: 测试的店铺1(String), test1(String), test1(String), test1(String), upload\images\item\shop\64\2020030101575310652.jpg(String), 2020-03-01 01:57:53.116(Timestamp), 0(Integer), 审核中(String), 2(Integer), 1(Long), 64(Long)
    我这个条日志不是说明shop_img有接收到地址吗
    回复 有任何疑惑可以回复我~ 2020-03-01 01:59:41
  • 提问者 大尾鲈鳗100 #3
    addShopImg在最后一张图那 我没有写错的 也有shop.setShopImg(shopImgAddr);
    回复 有任何疑惑可以回复我~ 2020-03-02 11:49:27
提问者 大尾鲈鳗100 2020-02-29 16:44:22

https://img1.sycdn.imooc.com//szimg/5e5a240f09dec67711110818.jpg 

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信