mybatis plus多表联查,加模糊查、分页,不写sql xml

来了来了,我又带着代码来了

mybatis plus多表联查,加模糊查、分页,不写sql xml_第1张图片
这几天看了老猿老师的mybatis plus课程,学了一点点皮毛马上就用起来了,发现几乎所有的方法都是对单表的操作,刚好工作需要用到多表联查,网上找了没有理想的方法,自己瞎几把搞出来这个办法,打死不写sql系列,废话不多说,直接上代码!


测试方法

    @Test
    public void dome() {
        Page<User> userPage = new Page<>(0, 2);//设置分页(起始行下标,每页行数)
        
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        
        queryWrapper.like("u.name", "小");//模糊查询条件
        
        IPage<User> iPage = userMapper.selectPage(userPage, queryWrapper);//分页查询方法
        
        List<User> users = iPage.getRecords();//获取结果
        
        //打印输出
        for (User user : users) {
            System.out.println(user.toString());
        }
    }

实体类

@Data
@TableName(value = "user AS u LEFT JOIN car AS c ON u.car_id = c.id")
public class User {
//value="数据库字段名"

    @TableId(value = "u.id")
    private Integer id;//编号

    @TableField(value = "u.name")
    private String name;//姓名

    @TableField(value = "u.sex")
    private String sex;//性别

    @TableField(value = "u.age")
    private Integer age;//年龄

    @TableField(value = "u.car_id")
    private Integer carId;//拥有车编号

    @TableField(value = "c.name")
    private String carName;//车名
}

mapper接口

public interface UserMapper extends BaseMapper<User> {
}

最后生成的sql是这个样子的

SELECT u.id AS id,u.name AS name,u.sex AS sex,u.age AS age,u.car_id AS carId,c.name AS carName
 FROM user AS u
 LEFT JOIN car AS c
 ON u.car_id = c.id
 WHERE u.name LIKE '%小%'
 LIMIT 0,2;

欢迎

评论

指点

就问你6不6!!

mybatis plus多表联查,加模糊查、分页,不写sql xml_第2张图片

你可能感兴趣的:(mybatis,plus,java,多表联查,写sql会死,分页)