请稍等 ...
×

采纳答案成功!

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

mapper中sql语句标签头的设置

老师您好,由于在dao层增加和修改方法存在返回值,为什么在mapper中insert和update都不需要在标签头设置resultType属性来指明返回值类型,并且在dao层增加和修改都有参数,为什么在mapper中update的标签头设置parameterType来指明参数类型而insert的标签头却没有设置,但是最后测试结果却又是正确的。

正在回答

1回答

mybatis其实已经把功能封装的很好了,resultType和parameterType如果一般的引用类型,都会自动转为键值对去映射你写的sql语句,你可以试一下把视频中写的parameterType或resultType删掉,依然可行。

要注意的其实是引用型对象中包含复合型属性的问题,因为可能存在重名的属性,所以我们要设置成如图所示:https://img1.sycdn.imooc.com/szimg/5dfc284709a1b1c605960531.jpg

再指明成parameterType和resultType。

比如如图所示,Shop有个area复合类型属性,如果Shop的id标识符是id,Area中的id标识符也是id,那么mybatis就不知道把值映射到哪个id上去。


如果帮到你,望采纳。

1 回复 有任何疑惑可以回复我~
  • 非常感谢!
    回复 有任何疑惑可以回复我~ 2019-12-20 10:30:06
  • 等你学到6-5,视频会讲不仅有传入一个参数的情况,还有传入多个参数的情况,比如:List<Shop> queryShopList(@Param("shopCondition") Shop shopCondition, @Param("rowIndex") int rowIndex,
                                 @Param("pageSize") int pageSize);
    
    这个时候要通过@Param指定一下,方便xml里面获取值
    回复 有任何疑惑可以回复我~ 2019-12-20 16:02:31
  • 翔仔 #3
    牛逼的慕哥同学,赞
    回复 有任何疑惑可以回复我~ 2019-12-21 00:20:29
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信