Springboot入门小项目(CURD)

基于SpringBoot与MyBatis实现简单的CURD操作

一.必要配置

① 创建XX_DB数据库并创建数据表user_tb,定义userName与password字段

在这里插入图片描述
②Idea创建Spring Initializr工程,导入所需依赖
在这里插入图片描述

③导入Druid连接池,在resources文件下创建application.yaml文件来配置数据源
I.Maven中导入连接池依赖

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>druid-spring-boot-starter</artifactId>
     <version>1.1.17</version>
 </dependency>

II.Maven中导入mysql驱动依赖

 <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
 </dependency>

III.Maven中导入第三方类库hutool依赖(生成验证码需要)

 <dependency>
     <groupId>cn.hutool</groupId>
     <artifactId>hutool-all</artifactId>
     <version>5.8.1</version>
</dependency>

VI.yaml文件中进行数据源的配置

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/XX_DB
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver

④文件结构
在这里插入图片描述

二.CURD操作

2.1 添加操作
浏览器输入用户名和密码,数据将保存到mysql数据库中

在这里插入图片描述
在这里插入图片描述

2.2 查询操作
浏览器中输入需要查询的用户名,查询数据库后返回json格式的用户名和密码

在这里插入图片描述
在这里插入图片描述

2.3 修改操作
浏览器中输入用户名和所需修改的密码,数据库中的数据将完成更新

在这里插入图片描述
在这里插入图片描述

2.4 删除操作
浏览器中输入想要删除的用户名,数据库中将删除该用户信息

在这里插入图片描述
在这里插入图片描述

2.5 Springboot实现文件上传
在浏览器中选择文件并提交,文件将上传至服务器中指定位置

在这里插入图片描述
在这里插入图片描述

2.6 Springboot+hutool生成验证码

在这里插入图片描述

1. 前端代码:index.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>CRUD首页</title>
</head>
<body>
  <h2>addUser-Test</h2>
    <form action="/addUser" method="post">
        用户名:<input name="userName" type="text"/>
        密码:<input name="password" type="password"/>
        <input name="submit" type="submit"/>
    </form>
    </br>
  <h2>getUser-Test</h2>
    <form action="/getUser" method="post">
        用户名:<input name="userName" type="text"/>
        <input name="submit" type="submit"/>
    </form>
    </br>
  <h2>deleteUser-Test</h2>
    <form action="/deleteUser" method="post">
        <input name="_method" type="hidden" value="delete"/>
        用户名:<input name="userName" type="text"/>
        <input value="submit" type="submit"/>
    </form>
    </br>
  <h2>updateUser-Test</h2>
    <form action="/updateUser" method="post">
        <input name="_method" type="hidden" value="put"/>
        用户名:<input name="userName" type="text"/>
        密码修改为:<input name="password" type="password">
        <input value="submit" type="submit"/>
    </form>
    </br>
    <h2>文件上传-Test</h2>
    <form method="post" action="/upload" enctype="multipart/form-data">
        <input type="file" name="headerImg"></br>
        <input type="submit" value="提交">
    </form>
    </br>
  </br>
  <h2>验证码-Test</h2>
  <img title = "验证码" src = "/verify" alt="#"/>
</body>
</html>

2 控制层代码:UserController

package com.allin.controller;


import com.allin.pojo.User;
import com.allin.service.IService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;


@RestController
public class UserController {

    @Autowired
    private IService iService;

    @PostMapping("/addUser")
    public User addUser(User user){
        iService.addUser(user);
        return user;
    }

    @PostMapping("/getUser")
    public User getUser(String userName){
        User user = iService.getUser(userName);
        return user;
    }

    @DeleteMapping("/deleteUser")
    public String deleteUser(String userName){
        iService.deleteUser(userName);
        return userName;
    }

    @PutMapping("/updateUser")
    public User UserName(User user){
        User user1 = iService.updateUser(user);
        return user;
    }

    @PostMapping("/upload")
    public String upload(@RequestParam("headerImg")MultipartFile headerImg) throws IOException {
       if(!headerImg.isEmpty()){
            //保存到文件服务器,OSS服务器
            String originalFilename = headerImg.getOriginalFilename();
            headerImg.transferTo(new File("D:\\2022learn\\CRUDTest\\src\\main\\resources\\images\\"+originalFilename));
        }
        return "success";
    }
    
    @GetMapping("/verify")
    public void Verify(HttpServletResponse response) throws IOException {
        //定义图形验证码的长、宽、验证码字符数、干扰线宽度
        ShearCaptcha captcha = CaptchaUtil.createShearCaptcha(400, 100, 4, 4);
        //图形验证码写出,可以写出到文件,也可以写出到流
        //captcha.write("D:/shear.png");
        captcha.write(response.getOutputStream());
        //验证图形验证码的有效性,返回boolean值
        captcha.verify("1234");
    }
}

3 服务层代码:IService、UserService

IService.java
package com.allin.service;

import com.allin.pojo.User;

public interface IService {
    public void addUser(User user);
    public User getUser(String userName);
    public void deleteUser(String userName);
    public User updateUser(User user);
}

UserService.java

package com.allin.service.Impl;

import com.allin.mapper.AddUserMapper;
import com.allin.mapper.DeleteUserMapper;
import com.allin.mapper.GetUserMapper;
import com.allin.mapper.UpdateUserMapper;
import com.allin.pojo.User;
import com.allin.service.IService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


@Service
public class UserService implements IService {

    @Autowired
    AddUserMapper addUserMapper;

    @Autowired
    GetUserMapper getUserMapper;

    @Autowired
    DeleteUserMapper deleteUserMapper;

    @Autowired
    UpdateUserMapper updateUserMapper;

    @Override
    public void addUser(User user) {
        addUserMapper.insert(user);
    }

    @Override
    public User getUser(String userName) {
        return getUserMapper.get(userName);
    }

    @Override
    public void deleteUser(String userName) {
        deleteUserMapper.delete(userName);
    }

    @Override
    public User updateUser(User user) {
        updateUserMapper.update(user);
        return getUserMapper.get(user.getUserName());
    }
}

4 持久层代码

AddUserMapper
@Mapper
public interface AddUserMapper {
    @Insert("insert into user values (#{userName},#{password})")
    @Options(useGeneratedKeys = true,keyProperty = "id")
    public void insert(User user);
}

DeleteUserMapper

@Mapper
public interface DeleteUserMapper {
    @Delete("delete from user where userName = #{userName}")
    public void delete(String userName);
}

GetUserMapper

@Mapper
public interface GetUserMapper {

    @Select("select * from user where userName = #{userName}")
    public User get(String userName);
}

UpdateUserMapper

@Mapper
public interface UpdateUserMapper {
    @Update("update user set password = #{password} where userName = #{userName} ")
    public void update(User user);
}

在这里插入图片描述

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值