Springboot入门小项目(CURD)
2023-09-11 14:21:44 时间
基于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.javapackage 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);
}
相关文章
- 宝塔部署 springboot 项目遇到的 一些bug处理方案
- intellij idea 2021.2 修改一个springboot项目的jdk版本(jdk 15)
- Jenkins:用maven在本地打包部署一个github的springboot项目(Jenkins 2.257)
- Jenkins:用maven在本地打包部署一个github的springboot项目(Jenkins 2.257)
- SpringBoot的端口配置server.port没办法设置成Linux的环境变量
- springboot中使用thymeleaf模板
- Springboot怎么快速集成Redis?
- SpringBoot 项目日志中警告信息的处理
- SpringBoot创建子项目继承父项目报错【<packaging>pom</packaging>】
- Plugin ‘org.springframework.boot:spring-boot-maven-plugin:‘ not found 用IDEA创建springboot项目的时候遇到的一些坑
- 【SpringBoot14】SpringBoot中使用Session共享实现分布式部署
- 基于SpringBoot实现操作GaussDB(DWS)的项目实战
- springboot项目中关于时间类型转换的格式问题
- 编程实践精华总结集锦系列2: SpringBoot/Maven/IDEA/Java/Kotlin/Redis等等
- 在SpringBoot项目中添加logback的MDC
- RabbitMQ---延迟队列,整合springboot
- Springboot扩展点之ApplicationContextInitializer
- SpringBoot中@Mapper和@Repository注解的区别
- IDEA整合SpringBoot-Vue项目
- 【Spring Boot】SpringBoot设计了哪些可拓展的机制?
- springboot+jwt+shiro+vue+elementUI+axios+redis+mysql简易博客项目
- IDEA快速构建SpringBoot项目
- idea创建多模块Springboot项目、导入多模块、删除多模块
- SpringBoot整合Freemarker导出word文档表格
- IntelliJ IDEA 创建 SpringBoot 项目 Maven 打包 jar