1. 程式人生 > 其它 >mp配合mybatis註解實現多表查詢

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
    }