请稍等 ...
×

采纳答案成功!

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

正在回答

4回答

翔仔 2018-04-17 20:42:08

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

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

通过这两张图希望同学能够明白queryCategory的含义,如果传入shopCategory为空,默认查询一级类别,即parentId为空的类别,首页大类;点击一级类别查找它下面的二级类别(parentId不为空,则查parentId为该parentId的店铺类别,即二级类别);如果传入一个new shopCategory,则查找所有的parentId不为空的二级类别(截图没给出,主要是创建店铺的时候需要可以选择任意二级类别而非某个特定的一级类别下的二级类别)。这样同学应该清楚了,不清楚的话只能靠你自己梳理下业务了

1 回复 有任何疑惑可以回复我~
  • 提问者 Cris_hu #1
    谢谢老师明白了,那么店铺注册的时候要返回店铺类别数据到前端,所以顺序是先在数据库中查找parentId为空的大类(例如洗剪吹id:001),然后顺着大类的线索往下搜索对应的二级类(把parentid为001的都搜索出来并列出来),假如剪头发是0011,那么再顺着0011寻找parentID为0011的三级类并对应列出
    回复 有任何疑惑可以回复我~ 2018-04-17 20:51:57
  • 翔仔 回复 提问者 Cris_hu #2
    对的,但是这里咱们只有两级,所以没有三级的需求,where里面主要就是刚刚下面说的三种情况。所以写项目的时候,需要先理解好这些业务需求,理解好了之后,写起来就简单了
    回复 有任何疑惑可以回复我~ 2018-04-17 20:53:30
  • 提问者 Cris_hu 回复 翔仔 #3
    嗯嗯,谢谢老师耐心讲解,第一次涉及到这样的非常有实用意义贴近生活的项目,我觉得很棒,思维又开阔了,以前也没写过像样的前端,用的都是静态的
    回复 有任何疑惑可以回复我~ 2018-04-17 20:59:33
翔仔 2018-04-17 19:59:16

出现问题应当先从自己这块分析起来,视频能演示就证明肯定是没有问题的:)

0 回复 有任何疑惑可以回复我~
  • 提问者 Cris_hu #1
    嗯,不过虽然错误解决了但是,这一节有几个地方不理解;一、List<ShopCategory> queryShopCategory(@Param("shopCategoryCondition")ShopCategory shopCategoryCondition);其中@Param("shopCategoryCondition")ShopCategory shopCategoryCondition这部分起到什么作用?;
    二、有点不理解queryShopCategory()函数的用处,
    <where>
        		<if test="shopCategoryCondition.parentId!=null">
        			and parent_id=#{shopCategoryCondition.parentId.shopCategoryId}
        		</if>
        	</where>还有里面的and语句和原语句相比起到什么样的作用
    回复 有任何疑惑可以回复我~ 2018-04-17 20:17:49
  • 提问者 Cris_hu #2
    emmm,简单一点说就是对于shopcategory的父级ShopCategory parent;不是很理解,究竟是啥用的,因为其他属性都能直观的感受的到,无论是在前端显示上还是逻辑理解上
    回复 有任何疑惑可以回复我~ 2018-04-17 20:20:58
  • 翔仔 回复 提问者 Cris_hu #3
    所以还是同学你写的有些问题才会产生的结果和视频一样,并不是所有都相同。同学你第一个问题其实可以上网查的,@Param就代表告诉mybatis你的函数头的参数名是shopCategoryCondition,这样mapper里对应的queryShopCategory就能通过queryShopCategory.shopCategoryId这样子引用。第二个问题希望你能从业务去思考这个问题,我们需要用到的场景是1.取出一级类别(前端首页大类)2.根据1级类别取出其对应的2级类别(前端选择一个大类之后展示该大类里所有的子类)3.取出所有的二级类别(当你创建店铺的时候需要给店铺指定一个二级类别) 理解了这些业务就知道为什么有这个方法了。第三个问题就是刚刚说的第2种情况。。。你理解了业务之后就能明白这些条件查询了
    回复 有任何疑惑可以回复我~ 2018-04-17 20:23:14
翔仔 2018-04-17 19:58:07

同学好,下次建议同学解决问题的时候,不要先想着:我跟老师一样为什么会出问题。其实肯定是不一样才会出问题的,程序说一是一

ShopCategoryDao.java

List<ShopCategory> queryShopCategory(@Param("shopCategoryCondition") ShopCategory shopCategoryCondition);

是不是漏了@Param这个参数

0 回复 有任何疑惑可以回复我~
  • 提问者 Cris_hu #1
    O(∩_∩)O哈哈~我有点不好意思了,最开始提的那个错误其实我也没想到老师你会回的这么快,我一般碰到这类问题卡了一下后会先把问题提出然后顺着问题解决问题,老师你回答这个问题的时候我已经快figure out错误了
    回复 有任何疑惑可以回复我~ 2018-04-17 20:36:53
  • 翔仔 回复 提问者 Cris_hu #2
    正好看到,翔仔希望同学做到的是遇到问题先从自己那边找原因,然后去找解决方案,实在找不到再提问,并提供便于他人定位的信息,这样的话对你以后工作也是大有益处的。凡事先自己看看能否解决 逐步培养起独立解决问题的能力,这是本教程想要达到的目的,授之以渔:)
    回复 有任何疑惑可以回复我~ 2018-04-17 20:39:05
提问者 Cris_hu 2018-04-17 19:47:44

还有控制台的部分信息:

2018-04-17 19:46:27.960 [main] DEBUG org.apache.ibatis.logging.LogFactory - Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.

2018-04-17 19:46:28.048 [main] DEBUG org.apache.ibatis.io.VFS - Class not found: org.jboss.vfs.VFS

2018-04-17 19:46:28.048 [main] DEBUG org.apache.ibatis.io.JBoss6VFS - JBoss 6 VFS API is not available in this environment.

2018-04-17 19:46:28.048 [main] DEBUG org.apache.ibatis.io.VFS - Class not found: org.jboss.vfs.VirtualFile

2018-04-17 19:46:28.049 [main] DEBUG org.apache.ibatis.io.VFS - VFS implementation org.apache.ibatis.io.JBoss6VFS is not valid in this environment.

2018-04-17 19:46:28.049 [main] DEBUG org.apache.ibatis.io.VFS - Using VFS adapter org.apache.ibatis.io.DefaultVFS

2018-04-17 19:46:28.050 [main] DEBUG org.mybatis.spring.SqlSessionFactoryBean - Scanned package: 'com.o2o.entity' for aliases

2018-04-17 19:46:28.090 [main] DEBUG org.mybatis.spring.SqlSessionFactoryBean - Parsed configuration file: 'class path resource [mybatis-config.xml]'

2018-04-17 19:46:28.166 [main] DEBUG org.mybatis.spring.SqlSessionFactoryBean - Parsed mapper file: 'file [C:\o2O\o2oV1\target\classes\mapper\AreaDao.xml]'

2018-04-17 19:46:28.188 [main] DEBUG org.mybatis.spring.SqlSessionFactoryBean - Parsed mapper file: 'file [C:\o2O\o2oV1\target\classes\mapper\ShopCategoryDao.xml]'

2018-04-17 19:46:28.225 [main] DEBUG org.mybatis.spring.SqlSessionFactoryBean - Parsed mapper file: 'file [C:\o2O\o2oV1\target\classes\mapper\ShopDao.xml]'

2018-04-17 19:46:28.440 [main] DEBUG org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession

2018-04-17 19:46:28.451 [main] DEBUG org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6e005dc9] was not registered for synchronization because synchronization is not active

2018-04-17 19:46:28.495 [main] DEBUG org.mybatis.spring.SqlSessionUtils - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6e005dc9]


0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号