上一篇: 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.StdOutImpl logging:
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")
@SpringBootApplication
public 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; @Service
public 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





三条信息全部打印出来了

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

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

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

IDEA SpringBoot-Mybatis-plus 实现增删改查(CRUD)的更多相关文章

  1. 基于SSM之Mybatis接口实现增删改查(CRUD)功能

    国庆已过,要安心的学习了. SSM框架以前做过基本的了解,相比于ssh它更为优秀. 现基于JAVA应用程序用Mybatis接口简单的实现CRUD功能: 基本结构: (PS:其实这个就是用的Mapper ...

  2. Mybatis学习——基本增删改查(CRUD)

    Eclipse+Mybatis+MySql 1.所需jar 2.项目目录 3.源代码 package com.zhengbin.entity; public class Student { priva ...

  3. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  4. Mybatis入门之增删改查

    Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...

  5. SpringBoot操作MongoDB实现增删改查

    本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...

  6. MyBatis -- 对表进行增删改查(基于注解的实现)

    1.MyBatis对数据库表进行增/删/改/查 前一篇使用基于XML的方式实现对数据库的增/删/改/查 以下我们来看怎么使用注解的方式实现对数据库表的增/删/改/查 1.1  首先须要定义映射sql的 ...

  7. Spring Boot 使用Mybatis注解开发增删改查

    使用逆向工程是遇到的错误 错误描述 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): c ...

  8. Mybatis实现简单增删改查

    Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...

  9. springBoot(7)---整合Mybaties增删改查

    整合Mybaties增删改查 1.填写pom.xml <!-- mybatis依赖jar包 --> <dependency> <groupId>org.mybati ...

随机推荐

  1. Ubuntu一键安装LAMP,LNMP

    参考: https://blog.csdn.net/xueyingqi/article/details/50674078 https://www.cnblogs.com/pengzheng/p/363 ...

  2. 【模板】动态 DP

    luogu传送门. 最近学了一下动态dp,感觉没有想象的难. 动态DP simple的DP是这样的: 给棵树,每个点给个权值,求一下最大权独立集. 动态DP是这样的: 给棵树,每个点给个权值还到处改, ...

  3. HMS Core 机器学习服务6.4.0版本更新啦,文本翻译功能增加10种小语种语言类型!

    近日,HMS Core机器学习服务(ML Kit)文本翻译功能在6.4.0版本更新中增加了10种小语种语言类型,分别是马其他语.马其顿.冰岛.乌尔都语.波斯尼亚语.乌克兰语.加泰罗尼亚语.斯洛文尼亚语 ...

  4. Spring bean 和单例bean的线程安全

    Bean的作用域 Spring 3中为Bean定义了5中作用域,分别为singleton(单例).prototype(原型).request.session和global session,5种作用域说 ...

  5. vue渐进式?

    小到可以只使用核心功能,比如单文件组件作为一部分嵌入:大到使用整个工程,vue init webpack my-project来构建项目:VUE的核心库及其生态系统也可以满足你的各式需求(core+v ...

  6. 面试问题之C++语言:volatile关键字的作用

    volatile的作用 volatile关键字是防止在共享的空间发生读取的错误.只保证其可见性,不保证原子性:使用volatile指每次从内存中读取数据,而不是从编译器优化后的缓存中读取数据,简单来讲 ...

  7. 关于 OOP 和设计模式?

    这部分包含 Java 面试过程中关于 SOLID 的设计原则,OOP 基础,如类,对象, 接口,继承,多态,封装,抽象以及更高级的一些概念,如组合.聚合及关联. 也包含了 GOF 设计模式的问题.

  8. js获取元素本身相关值

    Element.getBoundingClientRect()方法返回元素的大小及其相对于视口的位置. getClientRects() 方法返回的一组矩形的集合, 即:是与该元素相关的CSS 边框集 ...

  9. java弹框

    Java弹窗操作 1.任务简介 本博客介绍两种Java弹窗操作的方法,第一个种是通过弹出对话框显示用户输入的信息,第二种是通过用户输入数字的不同打开不同的程序. 2.弹出对话框的操作 1)任务内容编程 ...

  10. 推荐一个用于压缩图片的JS插件:localResizeIMG

    惯例,先贴传送门:https://github.com/think2011/localResizeIMG 首先说到,为嘛要压缩图片,这需求一般出现在需要上传照片(尤其是移动端)的情况下,现在手机拍出来 ...