天天看点

掌握MybatisPlus提升开发效率(一)SpringBoot2.x整合MybatisPlus+Lombok实现第一个接口关于MybatisPlus整合MybatisPlus+LombokMybatisPlus实现的第一个接口

文章目录

  • 关于MybatisPlus
  • 整合MybatisPlus+Lombok
    • 添加依赖
    • 数据库脚本及配置
  • MybatisPlus实现的第一个接口
    • 运行

关于MybatisPlus

正常编写数据库表的crud接口流程:编写实体类->编写Controller类->编写Service接口和类->编写DAO类->编写XML文件

而MybatisPlus已经封装好了⼀些crud方法,不需要再写xml了,直接调用这些方法就行,类似JPA但优于JPA

整合MybatisPlus+Lombok

添加依赖

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis plus和springboot整合-->
<dependency>
	<groupId>com.baomidou</groupId>
	<artifactId>mybatis-plus-boot-starter</artifactId>
	<version>3.4.1</version>
</dependency>
           

数据库脚本及配置

脚本

CREATE TABLE `banner` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `img` varchar(524) DEFAULT NULL COMMENT '图片',
  `url` varchar(524) DEFAULT NULL COMMENT '跳转地址',
  `weight` int(11) DEFAULT NULL COMMENT '权重',
  `version` int(11) DEFAULT '1',
  `deleted` int(11) DEFAULT '0' COMMENT '0是未删除,1是已经删除',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
           

配置文件

server.port=8080
#==============================数据库相关配置========================================
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xdclass?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username =root
spring.datasource.password =root

#配置mybatis plus打印sql⽇志
mybatis-plus.configuration.logimpl=org.apache.ibatis.logging.stdout.StdOutImpl
           

MybatisPlus实现的第一个接口

controllerç±»

@RestController
@RequestMapping("api/v1/banner")
public class BannerController {

    @Autowired
    private BannerService bannerService;

    @RequestMapping("list")
    public JsonData list(){
        List<BannerDO> list = bannerService.list();
        return JsonData.buildSuccess(list);
    }
}
           

modelç±»

@Data
@TableName("banner")//表名映射
public class BannerDO {
    private Integer id;
    private String img;
    private String url;
    private Integer weight;
}
           

@TableName

:映射数据库表名

service接口及实现类

public interface BannerService {
    List<BannerDO> list();
}

@Service
public class BannerServiceImpl implements BannerService {

    @Autowired
    private BannerMapper bannerMapper;

    @Override
    public List<BannerDO> list() {
        return bannerMapper.selectList(new QueryWrapper<>());
    }
}
           

mapper接口

public interface BannerMapper extends BaseMapper<BannerDO> {
}
           

工具类

@Data
/**
 * 会生成一个包含所有变量
 */
@AllArgsConstructor
/**
 * 生成一个无参数的构造方法
 */
@NoArgsConstructor

public class JsonData {

    /**
     * 状态码 0 表示成功,1表示处理中,-1表示失败
     */
    private Integer code;
    /**
     * 数据
     */
    private Object data;
    /**
     * 描述
     */
    private String msg;

    /**
     * 成功,传入数据
     * @return
     */
    public static JsonData buildSuccess() {
        return new JsonData(0, null, null);
    }

    /**
     * 成功,传入数据
     * @param data
     * @return
     */
    public static JsonData buildSuccess(Object data) {
        return new JsonData(0, data, null);
    }

    /**
     * 失败,传入描述信息
     * @param msg
     * @return
     */
    public static JsonData buildError(String msg) {
        return new JsonData(-1, null, msg);
    }

    /**
     * 失败,传入描述信息,状态码
     * @param msg
     * @param code
     * @return
     */
    public static JsonData buildError(String msg, Integer code) {
        return new JsonData(code, null, msg);
    }
}
           

要点:

  1. mapper接口需要继承

    BaseMapper<T>

    (T是对应model类)
  2. service实现类调用已经封装好的方法

    selectList(new QueryWrapper<>())

  3. 不需要写该条查询语句的xml文件
  4. 其他与mybatis使用相同

运行

掌握MybatisPlus提升开发效率(一)SpringBoot2.x整合MybatisPlus+Lombok实现第一个接口关于MybatisPlus整合MybatisPlus+LombokMybatisPlus实现的第一个接口