mybatis手写多对多关联映射


这里在进行多不多关联查询配置时,需要用到一对一以及一对多查询,所以在进行mybatis的多对多关联查询之前先进行一对一以及一对多关联映射的配置,如果掌握了的话可以直接跳过第一和第二步骤
前提:sqlMapConfig.xml中进行mapper的配置
通过mapper元素加载mapper配置文件,可以通过resource属性、class指定接口方式、package指定mapper接口所在包的形式都可以。

<mappers>
		<package name="com.langsin.mapper"/>
	</mappers>

以及四个数据库表:
user表
在这里插入描述
orders表
在这里插入图片描述orderdetail表
在这里插入图片描述items表
在这里插入图片描述
这四张表的关系模型图:
在这里插入图片描述

1.一对一关联查询

1.1resultType实现

1.创建一个com.langsin.mapper包,在mapper包下,创建一个UserMapper.xml文件

<!--UserMapper.xml文件-->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 
					"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 命名空间的作用是对SQL进行分类管理,起到隔离SQL的作用,如果使用mapper代理,namespace有特殊重要作用 -->
<mapper namespace="com.langsin.mapper.UserMapper">
	<!--创建select标签,id对应接口中的方法名,parameterType对应传入参数,
	resultType对应返回值的类型第一个字母小写因为在sqlMapConfig.xml中进行了配置
	-->
	<select id="queryUserOrder" parameterType="int" resultType="resultExtendUser">
		select u.*,o.* from user u join orders o on u.user_id =o.user_id
		where u.user_id = #{value}
	</select>
</mapper>

2.定义mapper接口OrderMapper.java,接口与mapper配置文件在同一个包下,这里的User类和ResultExtendUser都是定义在pojo包下,User类只是和数据库简单的映射。

package com.langsin.pojo;

public class ResultExtendUser extends User{
	private String orderPrice;
	private String orderDate;
	private String userphone;
	public String getUserphone() {
		return userphone;
	}
	public void setUserphone(String userphone) {
		this.userphone = userphone;
	}
	private String useraddress;
	public String getOrderPrice() {
		return orderPrice;
	}
	public void setOrde
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值