IDEA SpringBoot-Mybatis

上一篇:IDEA——实现增删改查(CRUD)

下一篇:IDEA高效使用教程(插件、实用技巧)最好的idea插件

一、前言二、创建项目



    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目录

说明:

in-boot–帮助我们做相关依赖的版本号管理,所以有些依赖不需要自己写

但是像-plus-boot-这样是不是和-boot无关,里面没有版本号管理,所以需要手动写。

三、目录结构

四、sql 和 .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语句生成用户表,主要有以下四个字段

4.2 修改.yml配置文件

修改 .在文件中转成 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

五、修改程序的启动入口类

作用是扫描里面的,注意路径要和项目中的实际路径一致

@(value = “com. to its own path.”)

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);
    }
}

六、在实体类包中新建.java,使其兼容数据库中的字段一一对应我的包叫pojo,也可以叫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;
}

说明:这里类成员变量对应数据库字段,驼峰自动制作。从方法到下划线的转换

如:数据库->类变量

七、在包中新建接口

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

描述:该类封装了dao层的基本增删改查操作

八、src/main//文件夹下新建映射文件.xml





@ >

说明:这里的路径对应上面的路径

九、在里面新建一个impl和类

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

描述:这个封装了层的基本增删改查

十、在impl里面新建一个类

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 {
}

十一、在里面新建一个类

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,直接调用-Plus封装的接口即可。没什么好说的

十二,用于测试

到这里已经完成了增删改查的操作,接下来我们验证一下上面的代码

1.添加消息

http://localhost:8887/userInfo/add

p>

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

所有三个消息都打印出来

© 版权声明
THE END
喜欢就支持一下吧
点赞12赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容