采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
翔仔,你好,我想问一下在这个insert插入方法中insert into shop(…) values中的#{xxx}里面是不是写的对应的实体类的属性名称啊。然后数据库中的owner_id对应的是shop实体类中的owner.userId。是不是#{xxx}中写上实体类的属性名称就自动和数据库的字段所匹配上了啊
问:我想问一下在这个insert插入方法中insert into shop(…) values中的#{xxx}里面是不是写的对应的实体类的属性名称啊?
答:如图
问:然后数据库中的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,程序运行时,会从数据库中取出相应字段对应的数据,经过转换后,自动赋值给实体类中的对应属性。
不知道说的对不对,望老师指正!!
同学你好,你在最后的回答说有个驼峰命名格式那里,我当时就有个困惑,我认为驼峰命名格式这个功能是用在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}中的值满足为对于实体类的属性名称即可,驼峰不驼峰感觉没多大关系,希望翔仔哥能解答一下,这个驼峰命名格式到底是用在哪里 的呀
同学好,感谢啊顾顾同学的热心回答,同学说的是正解。此外mapUnderscoreToCamelCase用在select语句里面,即select 语句里面的 shop_name被转化成实体类里的shopName。至于update和insert,只要从实体类里获取成员变量的值,按照正常参数传入即可。
老师,那是不是Update和insert方法里面#{xx}传入实体类的属性名称就可以了呀
登录后可查看更多问答,登录/注册
SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需
2.0k 47
1.9k 41
2.5k 40
1.9k 39
1.5k 37