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
三张表四张表…都能用这个方式实现联合查询

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页