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

  • 一.必要配置
  • 二.CRUD操作
    1. 前端代码
    2. 控制层代码
    3. 服务层代码
    4. 持久层代码

一.必要配置

① 创建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_DBusername: rootpassword: 123456driver-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 {@Autowiredprivate 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 {@AutowiredAddUserMapper addUserMapper;@AutowiredGetUserMapper getUserMapper;@AutowiredDeleteUserMapper deleteUserMapper;@AutowiredUpdateUserMapper updateUserMapper;@Overridepublic void addUser(User user) {addUserMapper.insert(user);}@Overridepublic User getUser(String userName) {return getUserMapper.get(userName);}@Overridepublic void deleteUser(String userName) {deleteUserMapper.delete(userName);}@Overridepublic 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);
}

Springboot入门小项目(CURD)相关推荐

  1. SpringBoot 入门小程序

    SpringBoot 入门小程序CSDN下载 SpringBoot 入门小程序GitHub下载 老规矩,先看项目结构. 有必要参考前面的博客.maven构建web工程 我们构建好maven工程之后,用 ...

  2. python将整数逆序_python练手入门小项目:字符串的妙用

    题目来源:小行:python练手入门小项目详解(一) 1 给任意一个的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. 代码: def reversed_integer(number):ass ...

  3. STM32学习——入门小项目

    博客地址:STM32学习--入门小项目 – Infinite's Blog 这个小项目是来自参加电设时,老师发的STM32入门(进阶)任务,具体的要求如下: 软件设计要求 编写简单I/O程序,能用板上 ...

  4. JavaFX开发桌面,移动端,嵌入式权威指南(一)—— JavaFX桌面入门小项目

    目录 概述 代码 结果 总结 JavaFX应用 舞台和场景 显示图像 显示文字 将文本节点作为组 动画文本向上滚动 概述 JavaFX是用于构建富互联网应用程序的Java库.使用JavaFX开发的应用 ...

  5. SSM入门小项目----学生信息管理系统

    SSM入门小项目----学生信息管理系统 学习了SSM后,自己想动手写个小项目,巩固一下.选择了比较简单的学生信息管理系统,项目比较简单,包括的功能有:登录.学生信息的增删改查.分页(前端实现). 本 ...

  6. html+css入门小项目巩固练习

    html+css入门小项目巩固练习 在B站通过视频复习了之前在学校学习的前端知识,然后在B站找了一个小的实战项目跟着练习,花了半天的时间实现如下: 1.首页 2.关于我们 3.联系我们 码云源码地址: ...

  7. Python入门小项目-摇骰子小游戏

    大家平时微信上没少玩骰子吧,骰子比大小是我们经常玩的一个小游戏也十分的简单,就是不同玩家骰子点数比较大小.我们大学宿舍的时候,就经常比大小决定谁下去拿外卖,那时候费非常想让自己是最大的数,现在看来,以 ...

  8. htmlcss,Hbuilder入门小项目——我的淘宝,相似

    用Hbulider做一个小项目 假设你现在有Hbuilder,我用的是Hbuilder.(没有的亲可以去下载,这是官网网址:http://www.dcloud.io/) 首先你安装好之后的打开页面应该 ...

  9. python入门小项目-新手学Python必看的几个练手小项目,轻松不枯燥哦!

    Python是一种面向对象的解释型编程语言,源代码与解释器CPython遵守GPL协议,Python语法简洁清晰. 语法简洁清晰,那么我们用少量的Python代码能做哪些有趣的东西?温馨提示:文末必看 ...

最新文章

  1. 全球大半网络瘫痪,背后原因竟来自这家无名小公司
  2. ubuntu sublime字体设置
  3. gis属性表怎么导成excel_第022篇:ArcGIS中将属性表直接导出为Excel的方法
  4. win10常见问题处理办法
  5. [APIO2013]机器人(斯坦纳树)
  6. 计算机合计功能,Javascript自动求和,Javascript自动合计
  7. 玩抖音,你喜欢的,都是对自身没好处的
  8. redis 3.0.0 linux下载,CentOS7安装配置redis-3.0.0
  9. 什么是NSAssert?
  10. 记一次部署发现r2dbc连接数据库问题
  11. 亲身体验过13款滚动截屏App,谁才是最好用的iPhone长截屏工具?
  12. 3.黑客常用端口利用总结
  13. rxbus 源码_关于RxBus实现方式的思考
  14. 百科知识 epub文件如何打开
  15. matlab c1083,致命錯誤C1083:不能打開包含文件:'mexutils。沒有這樣的文件或目錄。...
  16. 从 QCon 旧金山 2012中学到的关键经验和教训
  17. 2019年应届生校招技面随笔
  18. 凤凰新闻岳建雄:互联网已经成为传统行业
  19. [翻译] YLGIFImage 高效读取GIF图片
  20. 最近在关注冰岩作坊自己写的一个ftp的搜索

热门文章

  1. IP 地址 与 DNS
  2. js-构造函数及与原理
  3. 关于Windows Build版本号
  4. [成都银行网点]交通银行成都网点地址,电话,成都银行分布,位置(总是找不到银行的支行名字,火大!来个全收录,有不对的地方帮忙评论指出哈)
  5. 卖家新神器:淘宝宝贝复制专家。可以复制淘宝、天猫上的宝贝到自家店里卖。分分钟克隆店铺。谁要,请留言你要克隆的店铺或宝贝地址!
  6. docker安装redis图文教程(详细)
  7. vmware虚拟机系统esxi不能识别不兼容网卡解决方案
  8. 第三方即时通信服务-环信
  9. pywin32\win32com 运行 Word、Excel VBA宏最简单的方法
  10. Adobe收购的Figma,是如何发展起来的