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

关于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使用相同

运行

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆浆两块钱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值