请稍等 ...
×

采纳答案成功!

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

师兄,想问一下一个命名格式

图片描述
图片描述
翔仔,你好,我想问一下在这个insert插入方法中insert into shop(…) values中的#{xxx}里面是不是写的对应的实体类的属性名称啊。然后数据库中的owner_id对应的是shop实体类中的owner.userId。是不是#{xxx}中写上实体类的属性名称就自动和数据库的字段所匹配上了啊

正在回答

1回答

问:我想问一下在这个insert插入方法中insert into shop(…) values中的#{xxx}里面是不是写的对应的实体类的属性名称啊?

答:如图

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

问:然后数据库中的owner_id对应的是shop实体类中的owner.userId?

答:是的,因为数据库中的owner_id已经设置了与tb_person_info表的外键约束,tb_shop表中的owner_id值实际上来自于tb_person_info的user_id字段值。

问:是不是#{xxx}中写上实体类的属性名称就自动和数据库的字段所匹配上了啊?

答:是的,因为在mybatis-config配置文件中,已经开启了驼峰命名转换(<setting name="mapUnderscoreToCamelCase" value="true" />)例如:数据库中的shop_id会转换为实体类中对应的shopId,程序运行时,会从数据库中取出相应字段对应的数据,经过转换后,自动赋值给实体类中的对应属性。

不知道说的对不对,望老师指正!!

0 回复 有任何疑惑可以回复我~
  • 提问者 Simon___ #1
    同学你好,你在最后的回答说有个驼峰命名格式那里,我当时就有个困惑,我认为驼峰命名格式这个功能是用在select中的resultMap中的吧,类似于<resultMap id="shopMap" type="com.shop.entity.Shop">
            <id column="shop_id" property="shopId" />
            <result column="shop_name" property="shopName" />
            .....
    如果数据库字段和java实体类的属性名称满足驼峰模式就自动对应了,
    我觉得Insert和update中只要#{xxx}中的值满足为对于实体类的属性名称即可,驼峰不驼峰感觉没多大关系,希望翔仔哥能解答一下,这个驼峰命名格式到底是用在哪里 的呀
    回复 有任何疑惑可以回复我~ 2019-11-19 20:48:21
  • 翔仔 回复 提问者 Simon___ #2
    同学好,感谢啊顾顾同学的热心回答,同学说的是正解。此外mapUnderscoreToCamelCase用在select语句里面,即select 语句里面的 shop_name被转化成实体类里的shopName。至于update和insert,只要从实体类里获取成员变量的值,按照正常参数传入即可。
    回复 有任何疑惑可以回复我~ 2019-11-20 00:02:42
  • 提问者 Simon___ 回复 翔仔 #3
    老师,那是不是Update和insert方法里面#{xx}传入实体类的属性名称就可以了呀
    回复 有任何疑惑可以回复我~ 2019-11-20 10:19:16
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信