<强>什么是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中的一对一,一对多、多对多的配置原则示例代码