IDEASpringBoot-Mybatis-plus实现增删改查(CRUD)

博客 动态
0 217
优雅殿下
优雅殿下 2022-04-22 10:58:17
悬赏:0 积分 收藏

IDEA SpringBoot-Mybatis-plus 实现增删改查(CRUD)

上一篇: IDEA SpringBoot-Mybatis实现增删改查(CRUD)
下一篇:Intellij IDEA 高效使用教程 (插件,实用技巧) 最好用的idea插件大全

一、前言

  • Mybatis:数据持久化框架
  • Mybatis-Plus:对Mybatis进行了增强,它封装了基本的增删改查操作,使我们自己不需要再去写很多重复的代码,大大解放了生产力!

二、创建项目

  • 新建项目时选择Spring Initializer。
  • 也可以选择maven新建,但是不建议新手,因为要自己导入依赖,会给自己搞懵
  • 打开IDEA,选择New Project >>>
    在这里插入图片描述
  • 创建项目文件结构、选择jdk版本
  • 一般选择Java version8
  • 然后下一步 Next
    在这里插入图片描述
  • 选择项目需要的依赖
  • 首先点击web选择spring web,再点击SQL选择MySQL driver 等,然后再一路Finish到新建完成。
    在这里插入图片描述
    查看项目 修改pom.xml文件
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.6.5</version>        <relativePath/> <!-- lookup parent from repository -->    </parent>    <groupId>com.hao</groupId>    <artifactId>demo</artifactId>    <version>0.0.1-SNAPSHOT</version>    <name>demo</name>    <description>demo</description>    <properties>        <java.version>1.8</java.version>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <!--        热部署 可有可无自行选择-->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-devtools</artifactId>        </dependency>        <!--        @Data 注解 省力的插件 自动生成set get 有参无参-->        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>        </dependency>        <!--        mysql-->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>        </dependency>        <!--      mybatis-plus-->        <dependency>            <groupId>com.baomidou</groupId>            <artifactId>mybatis-plus-boot-starter</artifactId>            <version>3.2.0</version>        </dependency>        <!--        jdbc连接池-->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-jdbc</artifactId>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build></project>

创建成功后删除src下面的test目录
说明:
中 spring-boot-starter-parent 帮我们做了SpringBoot相关依赖包的版本号管理,所以有些依赖包不需要我们自己去写
但像 mybatis-plus-boot-starter 它是不属于spring-boot相关的, parent中没有做版本号管理,所以还需要手动写一下。

三、目录结构

在这里插入图片描述

四、sql和application.yml

4.1 导入sql语句

CREATE TABLE `user_info` (	`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '用户id',	`username` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '用户名' COLLATE 'utf8mb4_general_ci',	`password` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '密码' COLLATE 'utf8mb4_general_ci',	`create_time` DATETIME NOT NULL COMMENT '创建时间',	PRIMARY KEY (`id`) USING BTREE);

说明:创建一个数据库,然后运行上述sql语句,生成用户表,主要就下面四个字段

  • id 用户id 自增主键
  • username 用户名
  • password 密码
  • create_time 创建时间

4.2 修改application.yml配置文件

把文件里的application.properties修改成yml格式 yml更加便于管理,看起来也更舒适

server:  port: 8887 #端口号可以自定义spring:  devtools:    #这个就是前面我下的热部署,自行了解    restart:      enabled: true  #开启      additional-paths: src/main/java       exclude: WEB-INF/**  freemarker:    cache: false    datasource:    driver-class-name: com.mysql.cj.jdbc.Driver    username: root #自己的数据库账号    password: 123456  #自己的密码    url: jdbc:mysql:///test?characterEncoding=utf-8&serverTimezone=UTC  #"?"号前面是数据库名称 我的是test   "///"默认为localhost:3306 如果你的不是默认端口自行修改  #配置MP和在控制台打印sql语句mybatis-plus:  mapper-locations: classpath*:/mapper/**/*.xml  configuration:    log-impl: org.apache.ibatis.logging.stdout.StdOutImpllogging:  level:    com:      stxy:        chefu:          business:            mvc:              mapper: debug

五,修改程序的启动入口类DemoApplication

作用是扫描到mapper里面中的类,注意路径要和项目中实际路径一致
@MapperScan(value = "com.对应自己的路径.mapper")

package com.hao;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@MapperScan("com.hao.mapper")@SpringBootApplicationpublic class DemoApplication {    public static void main(String[] args) {        SpringApplication.run(DemoApplication.class, args);    }}

六,在实体类包中新建UserInfo.java,使之与数据库中的字段一一对应 我的包叫pojo 也可以叫entity,dao

package com.hao.pojo;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableId;import com.baomidou.mybatisplus.annotation.TableName;import lombok.Data;import java.time.LocalDateTime;//@Data 就是lombok 的注解 自动生成了set get@Data @TableName(value = "user_info")  //@TableName 对应你的数据库表名public class UserInfo {    @TableId(value = "id",type = IdType.AUTO)  //@TableId 说明这条数据自增长也是对应数据库自增长的    private Integer id;    private String username;    private String password;    private LocalDateTime createTime;}

说明:这里类成员变量和数据库字段对应,Mybatis自动做了驼峰法到下划线的转换
如:数据库 create_time -> 类变量 createTime

七,在mapper包中新建UserInfoMapper接口

package com.hao.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.hao.pojo.UserInfo;public interface UserInfoMapper extends BaseMapper<UserInfo> {}

说明:BaseMapper 类封装了dao层基本的增删改查操作

八,在src/main/resources/maping文件夹下新建UserInfoMapper的映射文件UserInfoMapper.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.自己的路径.UserInfoMapper"></mapper>

说明:这里的namespace和上述的UserInfoMapper路径对应一致

九,在service里新建 impl和UserInfoService 接口类

package com.hao.service;import com.baomidou.mybatisplus.extension.service.IService;import com.hao.pojo.UserInfo;public interface UserInfoService extends IService<UserInfo> {}

说明:这里IService封装了service层基本的增删改查

十,在service里的impl新建UserInfoServiceImpl 类

package com.hao.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import com.hao.mapper.UserInfoMapper;import com.hao.pojo.UserInfo;import com.hao.service.UserInfoService;import org.springframework.stereotype.Service;@Servicepublic class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements UserInfoService {}

十一,在controller里新建 UserInfoController类

package com.hao.controller;import com.hao.pojo.UserInfo;import com.hao.service.UserInfoService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import java.time.LocalDateTime;import java.util.List;@RestController@RequestMapping("/userInfo")public class UserInfoController {    @Autowired    private UserInfoService userInfoService;    //增加    @PostMapping("/add")    public Boolean add(@RequestBody UserInfo userInfo) {        userInfo.setCreateTime(LocalDateTime.now());        return userInfoService.save(userInfo);    }    //删除    @GetMapping("delete/{id}")    public Boolean delete(@PathVariable Integer id) {        return userInfoService.removeById(id);    }    //修改    @PostMapping("/update")    public Boolean update(@RequestBody UserInfo userInfo) {        return userInfoService.updateById(userInfo);    }    //查询    @GetMapping("/get/{id}")    public UserInfo get(@PathVariable Integer id) {        return userInfoService.getById(id);    }    //查询全部    @GetMapping("/list")    public List<UserInfo> list() {        return userInfoService.list();    }}

说明:增删改查接口,基本上不需要自己写sql,直接调用Mybatis-Plus封装好的接口。 没啥好讲的

十二,使用Postman进行测试

到这里就完成了增删改查操作,接下来我们对上面的代码在Postman中进行验证

1.新增一条信息

http://localhost:8887/userInfo/add

在这里插入图片描述
在这里插入图片描述
2.通过用户id删除用户

http://localhost:8887/userInfo/delete/215

在这里插入图片描述
在这里插入图片描述
3.根据用户id更新用户信息

http://localhost:8887/userInfo/update?id=1   

在这里插入图片描述
在这里插入图片描述
这里要注意要用JSON的方式写参数

4.通过用户id获取信息:

http://localhost:8887/userInfo/get/1

在这里插入图片描述
5.打印所有信息

http://localhost:8887/userInfo/list

在这里插入图片描述
在这里插入图片描述
三条信息全部打印出来了

!!!转载请注明出处!!!
!!!转载请注明出处!!!
!!!转载请注明出处!!!

posted @ 2022-04-22 10:14 wnrun 阅读(0) 评论(0) 编辑 收藏 举报
回帖
    优雅殿下

    优雅殿下 (王者 段位)

    2018 积分 (2)粉丝 (47)源码

    小小码农,大大世界

     

    温馨提示

    亦奇源码

    最新会员