Mybatis问题
来源:8-1 商品添加之Dao层的实现
慕侠0844227
2018-03-19
翔仔老师,mybatis有几个问题困扰很久…还得叨扰。
如果没有添加外键约束,是否还可以使用级联,比如entity中用实例类area代替area_id,代码不需要变动?
2.association或collection,里面的result,不需要对应数据库中的所有属性?只需要写要查询的部分属性即可?(如shop中有多个属性,但association中只用了3个)
3.还有在productDao中,有个associton,关联了shop,column对应的是数据库中的owner_id,property却是ownerId,但是shop的entity中没有ownerId,只有一个personInfo的owner对象
4.映射中的column和property到底是什么?有些是本表的属性,有些却对应了外表的属性,column使用主键还是外键?或者都可以?
2回答
-
具体详见源码
<resultMap type="com.imooc.o2o.entity.Shop" id="shopMap"> <id column="shop_id" property="shopId" /> <result column="shop_name" property="shopName" /> <result column="shop_desc" property="shopDesc" /> <result column="shop_addr" property="shopAddr" /> <result column="phone" property="phone" /> <result column="shop_img" property="shopImg" /> <result column="priority" property="priority" /> <result column="create_time" property="createTime" /> <result column="last_edit_time" property="lastEditTime" /> <result column="enable_status" property="enableStatus" /> <result column="advice" property="advice" /> <association property="area" column="area_id" javaType="com.imooc.o2o.entity.Area"> <id column="area_id" property="areaId" /> <result column="area_name" property="areaName" /> </association> <association property="shopCategory" column="shop_category_id" javaType="com.imooc.o2o.entity.ShopCategory"> <id column="shop_category_id" property="shopCategoryId" /> <result column="shop_category_name" property="shopCategoryName" /> </association> <association property="owner" column="user_id" javaType="com.imooc.o2o.entity.PersonInfo"> <id column="user_id" property="userId" /> <result column="name" property="name" /> </association> </resultMap>
product里面就不需要shop相关的信息就不用了,shop里面用到owner就如上面一样嵌套即可。
112018-03-19 -
翔仔
2018-03-19
同学好,
可以的,这个mybatis只是用来体现组合,即对象A是对象B的成员变量,仅用来表达组合关系,和级联没有关系
是的,只需要写用到的那部分,具体详见之后的操作
column对应的是数据库里的列,tb_shop有这列
同上,column跟主外键没关系,你看看上面的只是id标识了是外键,仅此而已
PS:同学我真诚建议你利用课余时间来学一下mybatis,其实上面的问题都是mybatis的基础,学一下即可。此外,我看到同学进度有点慢,感觉同学可以再加快些,有些点不必过于纠结,先会用,留下映像,等完成了再自己系统学习一遍SSM,这样就有一种豁然开朗的感觉并且印象也会更深刻,就跟工作一样,先产出,之后再对感兴趣的点去自己往深处去学,这样比较好:)
032018-03-19
相似问题