Mybatis中的一对一,一对多、多对多的配置原则示例代码

  

<强>什么是MyBatis ?
  

  

MyBatis是支持定制化SQL,存储过程以及高级映射的优秀的持久层框架.MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集.MyBatis可以对配置和原生地图使用简单的XML或注解,将接口和Java的pojo (Plain Old Java object,普通的Java对象)映射成数据库中的记录。

  

表:market_plan(营销计划(关联了用户))

  

market_plan_product(产品关联营销计划)
  market_plan_label(标签关联营销计划)
  market_plan_ideadata(创意素材关联营销计划)
  user_ideadata_activity(活动关联用户,活动关联创意素材表)
  用户(用户表)

  

<>强配置原则:关联B,将一个的resultMap关联(协会)到B的resultMap中,这样才能在写关联查询sql语句的时候,查询出A、B表中的属性。多张表的关联也是一样的道理!

  

<>强配置xml示例:

        & lt; resultMap id=皍serResultMap”类型=癱om.mchuan.fastmarketplat.b.entity.User”比;   & lt; id列=癠SER_ID”属性=" id "/比;   & lt;结果列=罢驶А笔粜?"帐户"/比;   & lt;结果列=懊啤笔粜?"名称"/比;   & lt;结果列=耙贫笔粜?"移动"/比;   & lt;/resultMap>   & lt; resultMap id=" labelResultMap "   在type=" com.mchuan.fastmarketplat.b.entity.MarketPlanLabel”;   & lt; id属性==癓ABEL_ID”/癷d”列在   & lt;结果属性==靶员稹?靶员稹绷性?   & lt;结果属性=扒颉绷?"区域"/比;   & lt;结果属性==澳炅洹?澳炅洹绷性?   & lt;结果属性==癉EVICE_TYPE”/癲eviceType”列在   & lt;结果属性==癈OMMUNICATION_FEE”/癱ommunicationFee”列在   & lt;结果属性==癆CTION_LABELS”/癮ctionLabels”列在   & lt;结果属性==癗ET_SCENE”/皀etScene”列在   & lt;/resultMap>   & lt; resultMap id=" productResultMap "   在type=" com.mchuan.fastmarketplat.b.entity.MarketPlanProduct”;   & lt; id属性==癙RODUCT_ID”/癷d”列在   & lt;结果属性==癈OVER_AMOUNT”/癱overAmount”列在   & lt;/resultMap>   & lt; resultMap id=" activityResultMap "   在type=" com.mchuan.fastmarketplat.b.entity.UserActivity”;   & lt; id列=癆C_ID”属性=" id "/比;   & lt;结果列=癆CTIVITY_ID”属性=癮ctivityId jdbcType”=罢?比;   & lt;结果列=癈OVER_URL”属性=癱overUrl jdbcType”=癡ARCHAR”/比;   & lt;结果列=癆CTIVITY_URL”属性=癮ctivityUrl jdbcType”=癡ARCHAR”/比;   & lt;结果列=癡IEW_URL”属性=皏iewUrl jdbcType”=癡ARCHAR”/比;   & lt;结果列=癈REATE_TIME”属性=" createTime "/比;   & lt;结果列=癠PDATE_TIME”属性=" updateTime "/比;   & lt;/resultMap>   & lt; resultMap id=" ideaDataResultMap "   在type=" com.mchuan.fastmarketplat.b.entity.MarketPlanIdeaData”;   & lt; id属性==癐DEA_DATA_ID”/癷d”列在   & lt;结果属性==澳谌荨?澳谌荨绷性?   & lt;结果属性==癓INK_URL”/發inkUrl”列在   & lt; !——ideaData关联属性——比;   & lt;协会财产=" userActivity "   将javaType=" com.mchuan.fastmarketplat.b.entity。UserActivity activityResultMap“resultMap=/比;   & lt;/resultMap>   & lt; resultMap id=癇aseResultMap”类型=癱om.mchuan.fastmarketplat.b.entity.MarketPlan”比;   & lt; id列=癷d”属性=" id " jdbcType=罢?比;   & lt;结果列=癙LAN_NAME”属性=皃lanName jdbcType”=癡ARCHAR”/比;   & lt;结果列=霸に恪笔粜?霸に恪眏dbcType=靶∈?比;   & lt;结果列=癆CTUAL_BUDGET”属性=癮ctualBudget”   jdbcType=靶∈?比;   & lt;结果列=癉EMAND_TYPE”属性=癲emandType jdbcType”=癡ARCHAR”/比;   & lt;结果列=癝TART_DATE”属性=" startDate可以"/比;   & lt;结果列=癊ND_DATE”属性=" endDate "/比;   & lt;结果列=癈REATE_STATUS”属性=癱reateStatus”   jdbcType=罢?比;   & lt;结果列=癈REATE_TIME”属性=" createTime "/比;   & lt;结果列=癠PDATE_TIME”属性=" updateTime "/比;   & lt;结果列=白⒁狻笔粜?白⒁狻眏dbcType=" VARCHAR "/比;   & lt;结果列=白刺笔粜?"地位" jdbcType=罢?比;   & lt;结果列=癉ESTPAGE_URL”属性=癲estpageUrl jdbcType”=癡ARCHAR”/比;   & lt;结果列=癐S_AWARD”属性=癷sAward jdbcType”=罢?比;   & lt;结果列=癆WARD_MONEY”属性=癮wardMoney jdbcType”=靶∈?比;   & lt;结果列=肮愀妗笔粜?肮愀妗眏dbcType=" VARCHAR "/比;   & lt;结果列=靶幸怠笔粜?靶幸怠眏dbcType=罢?祝辞            & lt; !——marketPlan关联属性——比;   & lt;协会财产="用户"   将javaType=" com.mchuan.fastmarketplat.b.entity。用户userResultMap“resultMap=/比;   & lt;协会财产=" marketPlanLabel "   将javaType=" com.mchuan.fastmarketplat.b.entity.MarketPlanLabel "   resultMap=" labelResultMap "/比;   & lt;协会财产=" marketPlanProduct "   将javaType=" com.mchuan.fastmarketplat.b.entity.MarketPlanProduct "   resultMap=" productResultMap "/比;   & lt;协会财产=" marketPlanIdeaData "   将javaType=" com.mchuan.fastmarketplat.b.entity.MarketPlanIdeaData "   resultMap=" ideaDataResultMap "/比;   & lt;/resultMap>

Mybatis中的一对一,一对多、多对多的配置原则示例代码