ToB企服应用市场:ToB评测及商务社交产业平台

标题: SpringBoot 增删改查+文件上传 [打印本页]

作者: 河曲智叟    时间: 2022-9-3 05:25
标题: SpringBoot 增删改查+文件上传
注:本文所用到的版本
  1. MySql 8.0.28
  2. SpringBoot 2.7.2
复制代码
准备工作 :建表  、pom.xml导入依赖 、application.yml 配置

  1. CREATE TABLE `rna` (
  2.   `id` int NOT NULL AUTO_INCREMENT,
  3.   `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  4.   `card_img` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  5.   `card` varchar(18) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  6.   `sex` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  7.   `phone` varchar(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  8.   `check` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  9.   `check_date` datetime DEFAULT NULL,
  10.   `result` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  11.   PRIMARY KEY (`id`)
  12. ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
复制代码
  1. <dependency>
  2.     <groupId>org.springframework.boot</groupId>
  3.     <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>
  5. <dependency>
  6.     <groupId>org.projectlombok</groupId>
  7.     <artifactId>lombok</artifactId>
  8.     <optional>true</optional>
  9. </dependency>
  10. <dependency>
  11.     <groupId>org.springframework.boot</groupId>
  12.     <artifactId>spring-boot-starter-test</artifactId>
  13.     <scope>test</scope>
  14. </dependency>
  15. <dependency>
  16.     <groupId>mysql</groupId>
  17.     <artifactId>mysql-connector-java</artifactId>
  18. </dependency>
  19. <dependency>
  20.     <groupId>com.alibaba</groupId>
  21.     <artifactId>druid</artifactId>
  22.     <version>1.2.11</version>
  23. </dependency>
  24. <dependency>
  25.     <groupId>org.mybatis.spring.boot</groupId>
  26.     <artifactId>mybatis-spring-boot-starter</artifactId>
  27.     <version>2.2.2</version>
  28. </dependency>
  29. <dependency>
  30.     <groupId>com.github.pagehelper</groupId>
  31.     <artifactId>pagehelper-spring-boot-starter</artifactId>
  32.     <version>1.4.2</version>
  33. </dependency>
  34. <dependency>
  35.     <groupId>commons-fileupload</groupId>
  36.     <artifactId>commons-fileupload</artifactId>
  37.     <version>1.4</version>
  38. </dependency>
复制代码
  1. server:
  2.   port: 8100
  3. spring:
  4.   datasource:
  5.     url: jdbc:mysql://localhost:3306/db03
  6.     username: 你的用户名
  7.     password: 你的密码
  8.     driver-class-name: com.mysql.cj.jdbc.Driver
  9.     type: com.alibaba.druid.pool.DruidDataSource
  10. mybatis:
  11.   mapper-locations: mapper/*.xml
  12.   type-aliases-package: com.lyt.work0721.entity
复制代码
目录结构

上传文件工具类
  1. package com.lyt.util;
  2. import org.springframework.util.ObjectUtils;
  3. import org.springframework.web.multipart.MultipartFile;
  4. import java.io.File;
  5. import java.io.IOException;
  6. import java.text.SimpleDateFormat;
  7. import java.util.Date;
  8. import java.util.UUID;
  9. /**
  10. * @author liuyutao
  11. * @date 2022/07/27
  12. */
  13. public class UploadUtil {
  14.     //上传文件的路径前缀
  15.     public static String uploadPathPrefix = "D:\\upload\\images\";
  16.     public static String upload(MultipartFile uploadFile, String oldPath) {
  17.         String uploadFullPath;//上传文件的完整路径
  18.         String saveSqlPartFilePath;//返回该属性,保存到数据库部分文件路径
  19.         if (ObjectUtils.isEmpty(oldPath)) {
  20.             String originalFilename = uploadFile.getOriginalFilename();//上传文件原始文件名
  21.             assert originalFilename != null;
  22.             String fileType = originalFilename.substring(originalFilename.lastIndexOf("."));//文件类型
  23.             Date date = new Date();
  24.             SimpleDateFormat sdf = new SimpleDateFormat("yyyy\\M\");
  25.             String format = sdf.format(date);
  26.             String uuid = UUID.randomUUID().toString().replace("-", "");
  27.             String saveDiskFileName = uuid + fileType;// 保存到磁盘的文件名
  28.             saveSqlPartFilePath = format + saveDiskFileName;
  29.             uploadFullPath = uploadPathPrefix + format + saveDiskFileName;//上传文件的完整路径:  D:\\upload\\images\\ yyyy\\M\\  uuid文件名
  30.         } else {
  31.             uploadFullPath = uploadPathPrefix + oldPath;
  32.             saveSqlPartFilePath = oldPath;
  33.         }
  34.         File file = new File(uploadFullPath);
  35.         try {
  36.             if (!file.exists()) {
  37.                 file.mkdirs();
  38.             }
  39.             uploadFile.transferTo(file);
  40.         } catch (IOException e) {
  41.             throw new RuntimeException(e);
  42.         }
  43.         return saveSqlPartFilePath;
  44.     }
  45. }
复制代码
SpringBoot 虚拟路径映射
  1. @Configuration
  2. public class WebMvcConfig implements WebMvcConfigurer {
  3.     @Override
  4.     public void addResourceHandlers(ResourceHandlerRegistry registry) {                   registry.addResourceHandler("/upload/**").addResourceLocations("file:D:/upload/images/");
  5.     }
  6. }
复制代码
新增  +  上传文件
  1. @PostMapping("/addRna")
  2. public int uploadCard(@RequestParam("file") MultipartFile file, @RequestPart Rna rna) {
  3.     String cardImg = UploadUtil.upload(file, null);
  4.     rna.setCardImg(cardImg);
  5.     return rnaService.insertSelective(rna);
  6. }
复制代码
思路:
编辑 + 上传文件
  1. @PostMapping("/updateRna")
  2. public int updateRna(@RequestParam("file") MultipartFile file, @RequestPart Rna rna) {
  3.      if (!file.isEmpty()) {
  4.      Rna rnaById = rnaService.selectByPrimaryKey(rna.getId());
  5.      UploadUtil.upload(file, rnaById.getCardImg());
  6.      }
  7.      return rnaService.updateByPrimaryKeySelective(rna);
  8. }
复制代码
查询

删除


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4