栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

 优质资源分享 
学习路线指引(点击解锁)知识定位人群定位
李 Python实战微信订餐小程序 李进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
Python量化交易实战入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

上一篇: 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=
"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">
 4.0.0
 
 org.springframework.boot
 spring-boot-starter-parent
 2.6.5
  
 
 com.hao
 demo
 0.0.1-SNAPSHOT
 demo
 demo
 
 1.8
 
 
 
 org.springframework.boot
 spring-boot-starter-web
 
 
 
 org.springframework.boot
 spring-boot-devtools
 
 
 
 org.projectlombok
 lombok
 
 
 
 mysql
 mysql-connector-java
 
 
 
 com.baomidou
 mybatis-plus-boot-starter
 3.2.0
 
 
 
 org.springframework.boot
 spring-boot-starter-jdbc
 
 

 
 
 
 org.springframework.boot
 spring-boot-maven-plugin
 
 
 




创建成功后删除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*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

logging:
  level:
    com:
      hao:
        mapper: debug  //这里根据自己的路径添加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
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 {
}


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

八,在src/main/resources/maping文件夹下新建UserInfoMapper的映射文件UserInfoMapper.xml
xml version=
"-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
"com.自己的路径.UserInfoMapper">



说明:这里的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 {
}


说明:这里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 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 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



三条信息全部打印出来了

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/834651.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号