整合篇:零基础学习与使用MyBatis-Plus

配套资料,免费下载
链接:https://pan.baidu.com/s/1jA217UgqXpONi_fV-aOzqw
提取码:bm2g
复制这段内容后打开百度网盘手机App,操作更方便哦

注意:学习MyBatis-Plus请参考我的另外一篇文章:https://caochenlei.blog.csdn.net/article/details/108809902

1、创建工程

image-20210105100829029

image-20210105141204275

image-20210105141238698

image-20210105141302774

image-20210105141325332

image-20210105141410522

2、导入依赖

导入数据库连接池场景启动器:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.4</version>
</dependency>

导入mybatis-plus场景启动器:

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

修改默认数据库连接驱动为5.x:

<properties>
    <java.version>1.8</java.version>
    <mysql.version>5.1.49</mysql.version>
</properties>

3、修改配置

创建包结构:

  • com.caochenlei.integrationmybatis.entity
  • com.caochenlei.integrationmybatis.vo
  • com.caochenlei.integrationmybatis.mapper
  • com.caochenlei.integrationmybatis.service
  • com.caochenlei.integrationmybatis.controller

创建数据库:

DROP DATABASE IF EXISTS `test`;

CREATE DATABASE `test`;

USE `test`;

DROP TABLE IF EXISTS `t_user`;

CREATE TABLE `t_user` (
  `uid` INT(11) NOT NULL AUTO_INCREMENT,
  `uname` VARCHAR(20) NOT NULL,
  `ugender` VARCHAR(20) NOT NULL,
  `uage` INT(11) NOT NULL,
  PRIMARY KEY (`uid`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;

INSERT INTO `test`.`t_user` (`uname`, `ugender`, `uage`) VALUES ('张三', '男', '18'); 
INSERT INTO `test`.`t_user` (`uname`, `uage`) VALUES ('李四', '女', '19'); 
INSERT INTO `test`.`t_user` (`uname`, `uage`) VALUES ('王五', '20'); 

配置数据源:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: 123456
    #druid控制台访问地址:http://localhost:8080/druid
    druid:
      filters: stat,wall
      stat-view-servlet:
        enabled: true
        login-username: admin
        login-password: admin
      web-stat-filter:
        enabled: true
        urlPattern: /*
        exclusions: '*.css,*.js,*.gif,*.jpg,*.png,*.ico,/druid/*'

mybatis-plus:
  #配置 mybatis 配置文件位置
  config-location: classpath:mybatis/mybatis-config.xml
  #配置 mybatis 映射文件位置
  mapper-locations: classpath:mybatis/mapper/*.xml

4、增删改查

com.caochenlei.integrationmybatis.vo.Result

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {
    private Boolean success;
    private Object data;
    private String message;
}

com.caochenlei.integrationmybatis.entity.User

@Data
@TableName("t_user")
public class User{
    @TableId(type = IdType.AUTO)
    private Integer uid;
    @TableField("uname")
    private String uname;
    @TableField("ugender")
    private String ugender;
    @TableField("uage")
    private Integer uage;
}

com.caochenlei.integrationmybatis.mapper.UserMapper

@Mapper
public interface UserMapper extends BaseMapper<User> {

}

src\main\resources\mybatis\mapper\UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC
        "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.caochenlei.integrationmybatis.mapper.UserMapper">

</mapper>

src\main\resources\mybatis\mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

</configuration>

com.caochenlei.integrationmybatis.service.UserService

public interface UserService extends IService<User> {

}

com.caochenlei.integrationmybatis.service.impl.UserServiceImpl

@Service
@Transactional
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    
}

com.caochenlei.integrationmybatis.controller.UserController

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    //查找一个用户
    @GetMapping("/users/{id}")
    public Result findOne(@PathVariable Integer id) {
        User user = userService.getById(id);
        return new Result(true, user, "操作成功");
    }

    //查找所有用户
    @GetMapping("/users")
    public Result findAll() {
        List<User> users = userService.list();
        return new Result(true, users, "操作成功");
    }

    //添加一个用户
    @PostMapping("/users")
    public Result save(@RequestBody User user) {
        boolean flag = userService.save(user);
        if (flag) {
            return new Result(true, 1, "操作成功");
        } else {
            return new Result(false, 0, "操作失败");
        }
    }

    //删除一个用户
    @DeleteMapping("/users/{id}")
    public Result delete(@PathVariable Integer id) {
        boolean flag = userService.removeById(id);
        if (flag) {
            return new Result(true, "操作失败");
        }
    }

    //修改一个用户
    @PutMapping("/users")
    public Result update(@RequestBody User user) {
        boolean flag = userService.updateById(user);
        if (flag) {
            return new Result(true, "操作失败");
        }
    }
}

5、测试接口

  • 查找一个用户

image-20210105132405881

  • 查找所有用户

image-20210105132432424

  • 添加一个用户

image-20210105132611731

  • 删除一个用户

image-20210105132510396

  • 修改一个用户

image-20210105132646691

原文地址:https://caochenlei.blog.csdn.net

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


本篇文章为大家展示了如何解决Spring Cloud 服务冲突问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、背景...
本篇内容主要讲解“spring cloud服务的注册与发现怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“spri...
本篇内容介绍了“Dubbo怎么实现Spring Cloud服务治理 ”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处...
本篇内容主要讲解“SpringCloud相关面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringCloud相...
如何分析Spring Cloud Ribbon、Spring Cloud Feign以及断路器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希
这篇文章主要讲解了“springcloud微服务的组成部分有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“s...
这篇文章主要讲解了“SpringCloud的OpenFeign项目怎么创建”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习...
本篇内容主要讲解“spring cloud oauth3整合JWT后获取用户信息不全怎么办”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带...
怎样解析微服务架构SpringCloud,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。...
这篇文章主要介绍spring cloud中API网关的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、服务网关简介1、外观模式客户端...
本篇内容介绍了“Spring Cloud微服务的相关问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处...
本文小编为大家详细介绍“spring cloud config整合gitlab如何搭建分布式的配置中心”,内容详细,步骤清晰,细节处理妥当,希望这篇“spring cloud config整合gi...
config的用途?将cloud中各微服务的配置文件外部集中化,实行统一管理。尤其在一个服务负载时,配置的集中管理将显得非常方便。 spring cloud config 的使用* co...
前言·课程简介 最近挺多童鞋在公众号(itmuch_com)上催更Spring Cloud系列教程,故有此系列。以下是几点说明/规划/答疑: 问:为什么基于Finchley,而非Greenw...
【前面的话】书接上文,本文的某些知识依赖我的上一篇文章:SpringCloud之Eureka,如果没有看过可以先移步去看一下。另外在微服务架构中,业务都会被拆分成一个...
Spring Cloud Config Server提供了微服务获取配置的功能,这些配置文件(application.yml或者application.properties)通常维护在git或者数据库中,而且支持通过...
前言 随着服务化编程思想的不断流行,越来越多的公司、企业、开发人员使用微服务技术。目前流行的两大微服务技术:dubbo\SpringCloud。这篇文章不会去对dubbo和S...
1. 微服务简介1.1 什么是微服务架构微服务架构是系统架构上的一种设计风格将大系统拆分成N个小型服务这些小型服务都在各自的线程中运行小服务间通过HTTP协议进
最近,开源社区发生了一件大事,那个全国 Java 开发者使用最广的开源服务框架 Dubbo 低调重启维护,并且 3 个月连续发布了 4 个维护版本。我上次在写放弃Dubbo...
【前面的话】SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式...