springboot+mybatis+mysql 多表联合查询

xiaoxiao2021-02-28  19

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

转载请注明原文地址: https://www.6miu.com/read-2250122.html

最新回复(0)