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

发布时间 - 2026-01-10 23:23:37    点击率:

什么是 MyBatis ?

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

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

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

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

配置xml示例:

<resultMap id="userResultMap" type="com.mchuan.fastmarketplat.b.entity.User">
<id column="USER_ID" property="id" />
<result column="ACCOUNT" property="account" />
<result column="NAME" property="name" />
<result column="MOBILE" property="mobile" />
</resultMap>
<resultMap id="labelResultMap"
type="com.mchuan.fastmarketplat.b.entity.MarketPlanLabel">
<id property="id" column="LABEL_ID" />
<result property="gender" column="GENDER" />
<result property="area" column="AREA" />
<result property="age" column="AGE" />
<result property="deviceType" column="DEVICE_TYPE" />
<result property="communicationFee" column="COMMUNICATION_FEE" />
<result property="actionLabels" column="ACTION_LABELS" />
<result property="netScene" column="NET_SCENE" />
</resultMap>
<resultMap id="productResultMap"
type="com.mchuan.fastmarketplat.b.entity.MarketPlanProduct">
<id property="id" column="PRODUCT_ID" />
<result property="coverAmount" column="COVER_AMOUNT" />
</resultMap>
<resultMap id="activityResultMap"
type="com.mchuan.fastmarketplat.b.entity.UserActivity">
<id column="AC_ID" property="id" />
<result column="ACTIVITY_ID" property="activityId" jdbcType="INTEGER" />
<result column="COVER_URL" property="coverUrl" jdbcType="VARCHAR" />
<result column="ACTIVITY_URL" property="activityUrl" jdbcType="VARCHAR" />
<result column="VIEW_URL" property="viewUrl" jdbcType="VARCHAR" />
<result column="CREATE_TIME" property="createTime" />
<result column="UPDATE_TIME" property="updateTime" />
</resultMap>
<resultMap id="ideaDataResultMap"
type="com.mchuan.fastmarketplat.b.entity.MarketPlanIdeaData">
<id property="id" column="IDEA_DATA_ID" />
<result property="content" column="CONTENT" />
<result property="linkUrl" column="LINK_URL" />
<!-- ideaData关联属性 -->
<association property="userActivity"
javaType="com.mchuan.fastmarketplat.b.entity.UserActivity" resultMap="activityResultMap" />
</resultMap>
<resultMap id="BaseResultMap" type="com.mchuan.fastmarketplat.b.entity.MarketPlan">
<id column="ID" property="id" jdbcType="INTEGER" />
<result column="PLAN_NAME" property="planName" jdbcType="VARCHAR" />
<result column="BUDGET" property="budget" jdbcType="DECIMAL" />
<result column="ACTUAL_BUDGET" property="actualBudget"
jdbcType="DECIMAL" />
<result column="DEMAND_TYPE" property="demandType" jdbcType="VARCHAR" />
<result column="START_DATE" property="startDate" />
<result column="END_DATE" property="endDate" />
<result column="CREATE_STATUS" property="createStatus"
jdbcType="INTEGER" />
<result column="CREATE_TIME" property="createTime" />
<result column="UPDATE_TIME" property="updateTime" />
<result column="NOTE" property="note" jdbcType="VARCHAR" />
<result column="STATUS" property="status" jdbcType="INTEGER" />
<result column="DESTPAGE_URL" property="destpageUrl" jdbcType="VARCHAR" />
<result column="IS_AWARD" property="isAward" jdbcType="INTEGER" />
<result column="AWARD_MONEY" property="awardMoney" jdbcType="DECIMAL" />
<result column="ADVERTISER" property="advertiser" jdbcType="VARCHAR" />
<result column="INDUSTRY" property="industry" jdbcType="INTEGER" />
<!-- marketPlan关联属性 -->
<association property="user"
javaType="com.mchuan.fastmarketplat.b.entity.User" resultMap="userResultMap" />
<association property="marketPlanLabel"
javaType="com.mchuan.fastmarketplat.b.entity.MarketPlanLabel"
resultMap="labelResultMap" />
<association property="marketPlanProduct"
javaType="com.mchuan.fastmarketplat.b.entity.MarketPlanProduct"
resultMap="productResultMap" />
<association property="marketPlanIdeaData"
javaType="com.mchuan.fastmarketplat.b.entity.MarketPlanIdeaData"
resultMap="ideaDataResultMap" />
</resultMap>

以上所述是小编给大家介绍的 Mybatis 中的一对一,一对多,多对多的配置原则示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# mybatis  # 一对一  # 一对多  # 多对多  # Mybatis中一对多(collection)和一对一(association)的组合查询使用  # Mybatis实现一对一、一对多关联查询的方法(示例详解)  # 关于mybatis一对一查询一对多查询遇到的问题  # Mybatis使用@one和@Many实现一对一及一对多关联查询  # springboot整合mybatis-plus基于注解实现一对一(一对多)查询功能  # mybatis 一对一、一对多和多对多查询实例代码  # Mybatis中的高级映射一对一、一对多、多对多  # mybatis中一对一、一对多的<association> 配置使用  # 小编  # 在此  # 给大家  # 几乎所有  # 以对  # 所述  # 给我留言  # 感谢大家  # 存储过程  # 多张  # 库中  # 疑问请  # 有任何  # 是一样的  # MOBILE  # LABEL_ID  # MarketPlanLabel  # labelResultMap 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  三星、SK海力士获美批准:可向中国出口芯片制造设备  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  微信小程序 canvas开发实例及注意事项  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  如何在阿里云完成域名注册与建站?  Android使用GridView实现日历的简单功能  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  如何确保西部建站助手FTP传输的安全性?  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用  如何在宝塔面板中创建新站点?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  个人网站制作流程图片大全,个人网站如何注销?  活动邀请函制作网站有哪些,活动邀请函文案?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  Laravel如何使用查询构建器?(Query Builder高级用法)  python中快速进行多个字符替换的方法小结  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  如何彻底卸载建站之星软件?  Laravel观察者模式如何使用_Laravel Model Observer配置  免费视频制作网站,更新又快又好的免费电影网站?  MySQL查询结果复制到新表的方法(更新、插入)  Mybatis 中的insertOrUpdate操作  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  Python文件操作最佳实践_稳定性说明【指导】  简单实现Android文件上传  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  jquery插件bootstrapValidator表单验证详解  linux top下的 minerd 木马清除方法  如何实现javascript表单验证_正则表达式有哪些实用技巧  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  新三国志曹操传主线渭水交兵攻略  Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能  微信公众帐号开发教程之图文消息全攻略  Laravel如何优化应用性能?(缓存和优化命令)  如何快速启动建站代理加盟业务?  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  如何用已有域名快速搭建网站?  高防服务器如何保障网站安全无虞?  Android Socket接口实现即时通讯实例代码  如何打造高效商业网站?建站目的决定转化率  如何在腾讯云服务器快速搭建个人网站?