IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> mybatis-plus练习demo从swagger接口文档-controller-service-mapper-sql层层关联,找到就是学到哦 -> 正文阅读

[Java知识库]mybatis-plus练习demo从swagger接口文档-controller-service-mapper-sql层层关联,找到就是学到哦

mybatis-plus 代码流程编写

使用swagger接口测试
创建springboot项目
添加相关依赖
sql文件编写
实体类编写
相关配置文件的编写
编写业务逻辑
测试

创建springboot-mybatis-plus项目

项目目录
在这里插入图片描述

添加相关依赖

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

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-extension</artifactId>
            <version>3.1.0</version>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.1.0</version>
        </dependency>

        <!--连接数据将的相关依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-models</artifactId>
            <version>1.5.21</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>

    </dependencies>

sql文件编写

DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
  `user_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
  `password` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密码',
  `name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名',
  `age` int(11) NULL DEFAULT NULL COMMENT '年龄',
  `email` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',
  `birthday` datetime(0) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of tb_user
-- ----------------------------
INSERT INTO `tb_user` VALUES (1, 'zhangsan', '123456', '张三', 18, 'test1@yh.cn', '2019-09-26 11:42:01');
INSERT INTO `tb_user` VALUES (2, 'lisi', '123456', '李四', 20, 'test2@yh.cn', '2019-10-01 11:42:08');
INSERT INTO `tb_user` VALUES (3, 'wangwu', '123456', '王五', 28, 'test3@yh.cn', '2019-10-02 11:42:14');
INSERT INTO `tb_user` VALUES (4, 'zhaoliu', '123456', '赵六', 21, 'test4@yh.cn', '2019-10-05 11:42:18');
INSERT INTO `tb_user` VALUES (5, 'sunqi', '123456', '孙七', 24, 'test5@yh.cn', '2019-10-14 11:42:23');
INSERT INTO `tb_user` VALUES (8, 'string', 'string', 'string', 10, 'string', '2021-09-04 02:56:37');

SET FOREIGN_KEY_CHECKS = 1;

实体类编写

@Data
@TableName("tb_user")
public class TbUser implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户名
     */
    private String userName;

    /**
     * 密码
     */
    private String password;

    /**
     * 姓名
     */
    private String name;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 生日
     */
    private LocalDateTime birthday;


}

相关配置文件的编写

mybatis-plus配置文件

@EnableAutoConfiguration
@Configuration
public class MyBatisPlusConfig {

    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor(){
        return new OptimisticLockerInterceptor();
    }

    @Bean
    public PaginationInterceptor paginationInterceptor(){
        return new PaginationInterceptor();
    }
}

WebMvcConfig配置文件

@Component
public class WebMvcConfig implements WebMvcConfigurer {
    /**
     * 添加静态资源文件,外部可以直接访问地址
     *
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");

        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");

        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

Swagger配置文件

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
    @Bean
    public Docket buildDocket() {
        //指定swagger文档类型
        return new Docket(DocumentationType.SWAGGER_2)
                //生成生成的swagger文档的基础信息
                .apiInfo(buildApiInfo())
                .select()
                // 要扫描的API(Controller)基础包
                .apis(RequestHandlerSelectors.basePackage("com.lifly.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    /**
     * @param
     * @return springfox.documentation.service.ApiInfo
     * @Title: 构建API基本信息
     * @methodName: buildApiInfo
     */
    private ApiInfo buildApiInfo() {
        Contact contact = new Contact("lifly", "", "");
        return new ApiInfoBuilder()
                .title("mybatis-plus测试文档")
                .description("")
                .contact(contact)
                .version("1.0.0").build();
    }
}

application.yml配置文件

server:
  port: 10086
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/huiminpay_merchant_service?useUnicode=true&useSSL=false
  #  url: jdbc:mysql://localhost:3306/huiminpay_merchant_service?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true&useUnicode=true
    username: root
    password: 1234
mybatis-plus:
  type-aliases-package: com.lifly.bean
  mapper-locations: classpath:/mapper/*.xml
logging:
  level:
    com.lifly.mapper: debug


编写业务逻辑

mapper文件

@Repository
public interface UserMapper extends BaseMapper<TbUser> {
}

service接口与实现类

接口

public interface TbUserService {
    /**
     * 添加记录
     * @param tbUser
     * @return
     */
    public int insert(TbUser tbUser);

    /**
     *根据id删除
     * @return
     */
    int deleteById(Long id);

    /**
     * 根据条件删除
     * @return
     */
    int deleteByMap(TbUser tbUser);


    /**
     * 根据id批量删除
     * @param ids
     * @return
     */
    int deleteByIds(List ids);

    //以上为删除操作,以下为更新操作

    /**
     * 更新操作
     * @param tbUser
     * @return
     */
    int update(TbUser tbUser);

    /**
     * 根据id更新
     * @param tbUser
     * @return
     */
    int updateById(TbUser tbUser);

    //以上是更新操作,以下为查询操作

    /**
     * 根据id查询用户
     * @param id
     * @return
     */
    TbUser selectById(Long id);

    /**
     * 根据entity条件,查询一条记录
     * @param tbUser
     * @return
     */
    TbUser selectOne(TbUser tbUser);

    /**
     * 根据id集合查询
     * @param ids
     * @return
     */
    List<TbUser>selectBatchIds(List ids);

    /**
     * 分页查询
     * @param current 当前页码
     * @param size 每页显示的条数
     * @return
     */
    List<TbUser>selectPage(long current, long size);

    /**
     * 查询总记录数
     * @return
     */
    int selectCount();

    /**
     * 查询所有记录
     * @return
     */
    List<TbUser>selectList();

    /**
     * 条件查询
     * @param tbUser
     * @return
     */
    List<TbUser>selectEqList(TbUser tbUser);

    /**
     * 模糊查询
     * @param tbUser
     * @return
     */
    List<TbUser>selectLikeList(TbUser tbUser);

    /**
     * 模糊查询lambda
     * @param tbUser
     * @return
     */
    List<TbUser> selectLike(TbUser tbUser);
}

实现类

@Service
public class TbUserServiceImpl implements TbUserService {

    @Autowired
    private UserMapper userMapper;
    /**
     * 添加记录
     * @param tbUser
     * @return
     */
    @Override
    public int insert(TbUser tbUser) {
        TbUser user = new TbUser();
        user.setId(tbUser.getId());
        user.setAge(tbUser.getAge());
        user.setEmail(tbUser.getEmail());
        user.setName(tbUser.getName());
        user.setPassword(tbUser.getPassword());
        user.setUserName(tbUser.getUserName());
        String s = DateUtil.toDateTime(tbUser.getBirthday());
        user.setBirthday(tbUser.getBirthday());
        int insert = userMapper.insert(user);
        return insert;
    }

    /**
     * 根据id删除
     * @param id
     * @return
     */
    @Override
    public int deleteById(Long id) {
        return userMapper.deleteById(id);
    }

    /**
     * 根据条件删除
     * @param tbUser
     * @return
     */
    @Override
    public int deleteByMap(TbUser tbUser) {
        QueryWrapper<TbUser> wrapper = new QueryWrapper<>();
        if (tbUser.getId() != null){
            wrapper.eq("id",tbUser.getId());
        }
        if (tbUser.getUserName() != null){
            wrapper.eq("user_name",tbUser.getUserName());
        }
        if (tbUser.getPassword() != null){
            wrapper.eq("password",tbUser.getPassword());
        }
        if (tbUser.getName() != null){
            wrapper.eq("name",tbUser.getName());
        }
        if (tbUser.getAge() != null){
            wrapper.eq("age",tbUser.getAge());
        }
        if (tbUser.getEmail() != null){
            wrapper.eq("email",tbUser.getEmail());
        }
        if (tbUser.getBirthday() != null){
            wrapper.eq("birthday",tbUser.getBirthday());
        }
        return userMapper.delete(wrapper);
    }

    /**
     * 根据id批量删除
     * @param ids
     * @return
     */
    @Override
    public int deleteByIds(List ids) {
        return userMapper.deleteBatchIds(ids);
    }

    /**
     * 更新操作
     * @param tbUser
     * @return
     */
    @Override
    public int update(TbUser tbUser) {
        TbUser user = new TbUser();
        user.setAge(tbUser.getAge());
        user.setEmail(tbUser.getEmail());
        user.setName(tbUser.getName());
        user.setPassword(tbUser.getPassword());
        user.setUserName(tbUser.getUserName());
        String s = DateUtil.toDateTime(tbUser.getBirthday());
        user.setBirthday(tbUser.getBirthday());
        //wrapper为where后面的条件表达式
        QueryWrapper<TbUser> wrapper = new QueryWrapper<>();
        wrapper.eq("id",tbUser.getId());
       /* wrapper.eq("user_name",tbUser.getUserName());
        wrapper.eq("password",tbUser.getPassword());
        wrapper.eq("name",tbUser.getName());
        wrapper.eq("age",tbUser.getAge());
        wrapper.eq("email",tbUser.getEmail());
        wrapper.eq("birthday",tbUser.getBirthday());*/
        return userMapper.update(tbUser,wrapper);
    }

    /**
     * 根据id更新
     * @param tbUser
     * @return
     */
    @Override
    public int updateById(TbUser tbUser) {
        return userMapper.updateById(tbUser);
    }

    /**
     * 根据id查询数据
     * @param id
     * @return
     */
    @Override
    public TbUser selectById(Long id) {
        return userMapper.selectById(id);
    }

    /**
     * 根据entity条件,查询一条记录
     * @param tbUser
     * @return
     */
    @Override
    public TbUser selectOne(TbUser tbUser){
        QueryWrapper<TbUser> wrapper = new QueryWrapper<>();
        if (tbUser.getId()!=null /*||
                tbUser.getUserName()!=null||
                tbUser.getPassword()!=null||
                tbUser.getName()!=null||
                tbUser.getAge()!=null||
                tbUser.getEmail()!=null||
                tbUser.getBirthday()!=null*/) {
            wrapper.eq("id", tbUser.getId());
          /*  wrapper.eq("user_name",tbUser.getUserName());
            wrapper.eq("password",tbUser.getPassword());
            wrapper.eq("name",tbUser.getName());
            wrapper.eq("age",tbUser.getAge());
            wrapper.eq("email",tbUser.getEmail());
            wrapper.eq("birthday",tbUser.getBirthday());*/
        }
        return userMapper.selectOne(wrapper);
    }

    /**
     * 根据id集合查询
     * @param ids
     * @return
     */
    @Override
    public List<TbUser> selectBatchIds(List ids) {

        return userMapper.selectBatchIds(ids);
    }

    /**
     * 分页查询
     * @param current 当前页码
     * @param size 每页显示的条数
     * @return
     */
    @Override
    public List<TbUser> selectPage(long current, long size) {
        QueryWrapper<TbUser> wrapper = new QueryWrapper<>();
        Page<TbUser> page = new Page<>(current, size);
        System.out.println("当前页码:"+current);
        System.out.println("显示的条数:"+size);
        IPage<TbUser> userIPage = userMapper.selectPage(page, wrapper);
        System.out.println("总页数:"+userIPage.getPages());
        System.out.println("总总记录数数:"+userIPage.getTotal());
        List<TbUser> records = userIPage.getRecords();
        for (TbUser record : records) {
            System.out.println(record);
        }
        return records;
    }

    /**
     * 查询总记录数
     * @return
     */
    @Override
    public int selectCount() {
        QueryWrapper<TbUser> wrapper = new QueryWrapper<>();
        return userMapper.selectCount(wrapper);
    }

    /**
     * 查询所有记录
     * @return
     */
    @Override
    public List<TbUser> selectList() {
        QueryWrapper<TbUser> wrapper = new QueryWrapper<>();
        return userMapper.selectList(wrapper);
    }

    /**
     * 多条件查询
     * @param tbUser
     * @return
     */
    @Override
    public List<TbUser> selectEqList(TbUser tbUser) {
        QueryWrapper<TbUser> wrapper = new QueryWrapper<>();
        wrapper.eq("password",tbUser.getPassword())
                .ge("age",tbUser.getAge());
        return userMapper.selectList(wrapper);
    }

    /**
     * 模糊查询
     * @param tbUser
     * @return
     */
    @Override
    public List<TbUser> selectLikeList(TbUser tbUser) {
        QueryWrapper<TbUser> wrapper = new QueryWrapper<>();
        if (tbUser.getId()!=null){
            wrapper.like("id",tbUser.getId());
        }
        if (tbUser.getBirthday()!=null){
            wrapper.like("birthday",tbUser.getBirthday());
        }
        if (tbUser.getAge()!=null){
            wrapper.like("age",tbUser.getAge());
        }
        if (tbUser.getEmail()!=null){
            wrapper.like("email",tbUser.getEmail());
        }
        if (tbUser.getName()!=null){
            wrapper.like("name",tbUser.getName());
        }
        if (tbUser.getPassword()!=null){
            wrapper.like("password",tbUser.getPassword());
        }
        if (tbUser.getUserName()!=null){
            wrapper.like("user_name",tbUser.getUserName());
        }
        return userMapper.selectList(wrapper);
    }

    /**
     * lambda表达式实现模糊查询
     * @param tbUser
     * @return
     */
    @Override
    public List<TbUser> selectLike(TbUser tbUser) {
        LambdaQueryWrapper<TbUser> wrapper = new LambdaQueryWrapper<>();
        if (tbUser.getId()!=null){
            wrapper.like(TbUser::getId,tbUser.getId());
        }
        if (tbUser.getBirthday()!=null){
            wrapper.like(TbUser::getBirthday,tbUser.getBirthday());
        }
        if (tbUser.getAge()!=null){
            wrapper.like(TbUser::getAge,tbUser.getAge());
        }
        if (tbUser.getEmail()!=null){
            wrapper.like(TbUser::getEmail,tbUser.getEmail());
        }
        if (tbUser.getName()!=null){
            wrapper.like(TbUser::getName,tbUser.getName());
        }
        if (tbUser.getPassword()!=null){
            wrapper.like(TbUser::getPassword,tbUser.getPassword());
        }
        if (tbUser.getUserName()!=null){
            wrapper.like(TbUser::getUserName,tbUser.getUserName());
        }
        return userMapper.selectList(wrapper);
    }
}

controller控制器

@Api(value = "用户接口API接口",description = "主要实现了用户的增删改查等操作")
@RestController
@RequestMapping("/user")
public class TbUserController {

    @Autowired
    private TbUserService tbUserService;

    @ApiOperation("用户添加")
    @PostMapping("/insert")
    public int insert(@RequestBody TbUser tbUser){
        return tbUserService.insert(tbUser);
    }

    @ApiOperation("根据id删除用户信息")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",value="主键ID",dataType = "long",required = true)
    })
    @GetMapping("/delete/{id}")
    public int deleteById(@PathVariable("id") Long id){
       return tbUserService.deleteById(id);
    }

    @ApiOperation("根据实体类条件删除用户")
    @GetMapping("/deleteByMap/")
    public int deleteByMap(TbUser tbUser){
        return tbUserService.deleteByMap(tbUser);
    }

    @ApiOperation("根据id批量删除")
    @GetMapping("/deleteByIds/{ids}")
    public int deleteByIds(@PathVariable("ids") List<Long>ids){
       return tbUserService.deleteByIds(ids);
    }

    @ApiOperation("更新数据")
    @PostMapping("/update/")
    public int update(@RequestBody TbUser tbUser){
        return tbUserService.update(tbUser);
    }

    @ApiOperation("根据id更新数据")
    @PostMapping("/deleteById/")
    public int deleteById(@RequestBody TbUser tbUser){
        return tbUserService.updateById(tbUser);
    }

    /**
     * 根据id查询数据
     * @param id
     * @return
     */
    @ApiOperation("根据id查询数据")
    @GetMapping("/selectById/{id}")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id",value="主键ID",dataType = "long",required = true)
    })
    public TbUser selectById(@PathVariable("id") Long id){
        return tbUserService.selectById(id);
    }
    @ApiOperation("根据entity条件,查询一条记录")
    @GetMapping("/selectOne/")
    public TbUser selectOne(TbUser tbUser){
        return tbUserService.selectOne(tbUser);
    }

    @ApiOperation("根据id集合查询数据")
    @GetMapping("/selectBatchIds/{ids}")
    public List<TbUser> selectBatchIds(@PathVariable("ids") List ids){
        return tbUserService.selectBatchIds(ids);
    }

    @ApiOperation("分页查询")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "current",value = "当前页",dataType = "long",required = true),
            @ApiImplicitParam(name="size",value = "显示的总数",dataType = "long",required = true)
    })
    @GetMapping("/selectPage/{current}/{size}")
    public List<TbUser>selectPage(@PathVariable("current") long current,
                                  @PathVariable("size") long size){

        return tbUserService.selectPage(current,size);
    }

    /**
     * 查询总记录数
     * @return
     */
    @ApiOperation("查询总记录数")
    @GetMapping("/selectCount")
    public Integer selectCount(){
        Integer i = tbUserService.selectCount();
        System.out.println(i);
        return i;
    }

    @ApiOperation("查询所有记录")
    @GetMapping("/selectList")
    public List<TbUser>selectList(){
       return tbUserService.selectList();
    }

    @ApiOperation("查询密码是?年龄大于?")
    @GetMapping("/selectEqList/")
    public List<TbUser>selectEqList(TbUser tbUser){
       return tbUserService.selectEqList(tbUser);
    }


    @ApiOperation("模糊查询")
    @GetMapping("/selectLikeList/")
    public List<TbUser>selectLikeList(TbUser tbUser){
       return tbUserService.selectLikeList(tbUser);
    }

    @ApiOperation("lambda实现模糊查询")
    @GetMapping("selectLike/")
    public List<TbUser>selectLike(TbUser tbUser){
        return tbUserService.selectLike(tbUser);
    }
}

启动类

@SpringBootApplication
@MapperScan("com.lifly.mapper")
public class MybatisPlus {

    public static void main(String[] args) {
        SpringApplication.run(MybatisPlus.class,args);
    }
}

最终运行启动类,直接访问localhost:10086/swagger-ui.html即可
最终的访问界面如下图所示
在这里插入图片描述
整个项目我会放到gitee上,https://gitee.com/doublelifly/mybatis-plus-project,同时也会上传到csdn上仅供学习,不作其它用途

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-09 11:36:30  更:2021-09-09 11:37:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/31 7:28:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码