springboot+mybatis+mysql 多表联合查询

###springboot+mybatis+mysql 多表查询
这里有两张表 用户表和用户信息表user、info
两个实体类展示他们一对一的关系
通过springboot注解的方式实现多表联合查询
通过userId查询User及其对应的Info信息

	/**
	*User实体
	*/
	public class User{
		private int  id;
		private String name;
		private int infoId;
		private Info infoEntity;//需要把info实体写在这里面,用来存储查询到的info信息
		get{
			...
		}
		set{
			...
		}
	}
	/**
	*Info实体
	*/
	public class Info{
		private int infoId;
		private int cardId;
		private Date birth;
		private float higth;
		private float weight;
		get{
			...省略get,set方法
		}
		set{
			...
		}
	}

现在通过userId查询与之相关的info详细信息
InfoMapper类

	@Mapper
	public interface InfoMapper{
		@@Select("Select * from info where infoId = #{infoId}")
		public Info getInfoEntityByInfoId(int infoid);
	}

UserMapper 类

	@Mapper
	public interface UserMapper{
		@Select("select * from user where id = #{userId}")
		@Results({
			@Result(property="infoEntity",column="infoId",one=@One(select="com.brucewee.demo.Mapper.InfoMapper.getInfoEntityByInfoId"))
		})
		public User getUserWithInfo(int userId);
	}

这样只需要传入userId就能得到User实体及其关联的Info的所有数据
property表示user类中的infoEntity字段,column表示用user中的infoId做getInfoEntityByInfoId中的参数infoId
如果是多行数据 用many=@Many 一对一用one=@One
三张表四张表…都能用这个方式实现联合查询

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值