手把手教你 springboot整合mybatis-plus

目录

一、引入依赖

二、 数据库相关配置

三、编写实体类

四、编写mapper类

五、使用方法(具体的条件构造器参考https://mp.baomidou.com/guide/wrapper.html)

六、service层


官方网站:https://mp.baomidou.com/guide/

一、引入依赖

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.1.1</version>
    </dependency>

二、 数据库相关配置

spring:
  datasource:
    driver-class-name: 
    url: 
    username: 
    password: 

三、编写实体类

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * ‘@Data’ 为lombok,不了解的可以生成get、set方法代替
 *
 * @author lfg
 * @since 2019-05-11
 */

@Data
@TableName("b_user")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * AUTO 数据库ID自增
     * INPUT 用户输入ID
     * ID_WORKER 全局唯一ID,Long类型的主键
     * ID_WORKER_STR 字符串全局唯一ID
     * UUID 全局唯一ID,UUID类型的主键
     * NONE 该类型为未设置主键类型
     * <p>
     * int为Integer
     * bigInt为Long
     * Integer、Long等必须为封装类,不然会出现问题
     */
    @TableId(type = IdType.ID_WORKER)
    @TableField(value = "user_id")
    private Long userId;

    /**
     * 用户名
     */
    @TableField(value = "user_name")
    private String userName;

    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time")
    private Date updateTime;

*
*略去其他字段
*

}

四、编写mapper类



import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lfg.bonus.dao.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * <p>
 * Mapper接口
 * </p>
 *
 * @author lfg
 * @since 2019-05-09
 */

@Mapper
public interface UserMapper extends BaseMapper<User> {

    /**
     * 多表关联用法
     * 需要分页加Page,不需要分页就去掉,QueryWrapper 为查询的条件,注意sql不需要自己写 where
     * UserEx为user的子类,为了存储user的扩展属性
     * @param page    分页
     * @param wrapper 查询条件
     * @return 用户列表
     */
    @Select("SELECT * FROM b_user u LEFT JOIN b_company c ON u.company_id = c.company_id ${ew.customSqlSegment}")
    Page<UserEx> selectUserPage(Page page, @Param(Constants.WRAPPER) QueryWrapper wrapper);

}

五、使用方法(具体的条件构造器参考https://mp.baomidou.com/guide/wrapper.html

1.单表操作

        User user = userMapper.selectOne(new QueryWrapper<User>()
                .eq("phone","110")
                .eq("user_status", "1"));

2.单表查询+分页

        IPage<User> userIPage = userMapper.selectList(
                new Page<>(1, 10),
                new QueryWrapper<User>().eq("phone", "110"));

3.单表操作+带判断条件的构造器

        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("role_status", "1");
        if (StringUtils.isNotEmpty("123")) {
            queryWrapper.like("user_name", "用户名");
        }
        queryWrapper.orderByDesc("create_time");
        IPage<User> userIPage = userMapper.selectList(
                new Page<>(1, 10),queryWrapper);

4.多表操作

       //UserEx为user的子类,包含了user的扩展属性
        QueryWrapper queryWrapper = new QueryWrapper<>();
        queryWrapper.ne("u.user_status", StatusEnum.DEL.getStatus());
        queryWrapper.eq("c.company_status", StatusEnum.VALID.getStatus());
        IPage<UserEx> userIPage = userMapper.selectUserPage(
                new Page<>(1, 10),queryWrapper);

六、service层

package com.lfg.bonus.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lfg.bonus.dao.entity.User;
import com.lfg.bonus.dao.mapper.UserMapper;
import org.springframework.stereotype.Service;

/**
 * <p>
 * 服务实现类
 * service同mapper一样,可以使用通用方法,
 * 有些批量插入在service层才能调用,mapper没有批量插入
 * </p>
 *
 * @author lfg
 * @since 2019-05-09
 */
@Service
public class UserService extends ServiceImpl<UserMapper, User> {

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值