mp配合mybatis注解实现多表查询

接上篇

 

实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("tbl_user")
public class User implements Serializable {
    @TableId
    private Long id;

    private String username;

    private String address;

    private Integer departid;

    @TableField(exist = false)
    private Depart depart;

    private static final long serialVersionUID = 1L;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("tbl_depart")
public class Depart implements Serializable {

    @TableId
    private Long departid;

    private String departname;

    private String departloc;

    private String departdesc;

    private static final long serialVersionUID = 1L;
}

 

写UserDao

public interface UserDao extends BaseMapper<User> {
//    int deleteByPrimaryKey(Integer id);
//
//    @Insert(" insert into tbl_user (username, address, departId ) values (#{username,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR}, #{departid,jdbcType=INTEGER})" )
//    int insert(User record);
//
//    int insertSelective(User record);
//
    @Select("select * from tbl_user inner join tbl_depart using(departId) where id =#{value}")
    @Results({
            @Result(property = "depart", javaType = Depart.class, column = "departid", one = @One(select = "cn.taotao.dao.DepartDao.selectByPrimaryKey"))
            , @Result(property = "departid", column = "departid")})
    User selectByPrimaryKey(Integer id);
//
//    int updateByPrimaryKeySelective(User record);
//
//    int updateByPrimaryKey(User record);
}

写DepartDao

public interface DepartDao extends BaseMapper<Depart> {
//    int deleteByPrimaryKey(Integer departid);
//
//    int insert(Depart record);
//
//    int insertSelective(Depart record);
//
    @Select("select * from tbl_depart where departid=#{value}")
    Depart selectByPrimaryKey(Integer departid);
//
//    int updateByPrimaryKeySelective(Depart record);
//
//    int updateByPrimaryKey(Depart record);
}

写UserServiceImpl

   @Override
    public User selectByPrimaryKey(Integer id) {
        return this.userDao.selectByPrimaryKey(id);
    }

写UserController控制层

 @Autowired
    private UserService userService;

    @RequestMapping("/{id}")
    @ResponseBody
    public User getone(@PathVariable("id") Integer id){

        return this.userService.selectByPrimaryKey(id);
     //  return this.userService.getById(id);  这个是用原生的mp
    }

 

posted @ 2022-05-06 21:20  琴声清幽  阅读(267)  评论(0编辑  收藏  举报