SpringBoot:实战项目TILAS智能学习辅助系统1.2

SpringBootWeb项目

TILAS智能学习辅助系统

@RequestMapping()注解可以抽取资源链接的共性

新增员工

//控制层
@PostMapping("/emps")
    Result insert(@RequestBody Emp emp);

@Override
    public Result insert(Emp emp) {
        empService.insert(emp);
        return Result.success();
    }

//业务层
void insert(Emp emp);

@Override
    public void insert(Emp emp) {
        emp.setCreateTime(LocalDateTime.now());
        emp.setUpdateTime(LocalDateTime.now());
        empMapper.insert(emp);
    }

//持久层
void insert(Emp emp);
 <insert id="insert">
        insert into emp values (#{id},#{username},#{password},#{name},#{gender},#{image},#{job},#{entrydate},#{deptId},#{createTime},#{updateTime})
    </insert>
文件上传
本地存储

前端通过设置enctype="multipart/form-data"传给我们二进制文件参数

我们需要用MultipartFile类型的对象进行接收

传入的文件实际上是暂存在了系统的临时文件中

所以我们需要先将临时文件保存

@Override
    public Result upload(MultipartFile multipartFile) throws IOException {
        String ofn = multipartFile.getOriginalFilename();
        String nfn = UUID.randomUUID() + "." + ofn.split("\\.")[ofn.split("\\.").length - 1];
        multipartFile.transferTo(new File("D:\\documents\\code\\TLIAS\\" + nfn));
        System.out.println(nfn);
        return Result.success(nfn);
    }

multipart/form-data:将文件以二进制形式上传

上传到阿里云存储
@Override
    public Result upload(MultipartFile multipartFile) throws IOException {
        String url = aliOSSUtils.upload(multipartFile);
        System.out.println(url);
        return Result.success(url);
    }
工具类
package com.example.tlias.util;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.UUID;

/**
 * 阿里云 OSS 工具类
 */
@Component
public class AliOSSUtils {

    @Value("${aliyun.oss.endpoint}")
    private String endpoint;
    @Value("${aliyun.oss.accessKeyId}")
    private String accessKeyId;
    @Value("${aliyun.oss.accessKeySecret}")
    private String accessKeySecret;
    @Value("${aliyun.oss.bucketName}")
    private String bucketName;
    /**
     * 实现上传图片到OSS
     */
    public String upload(MultipartFile multipartFile) throws IOException {
        // 获取上传的文件的输入流
        InputStream inputStream = multipartFile.getInputStream();

        // 避免文件覆盖
        String fileName = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd-HH-mm-ss")) + multipartFile.getOriginalFilename();

        //上传文件到 OSS
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        ossClient.putObject(bucketName, fileName, inputStream);

        //文件访问路径
        String url = endpoint.split("//")[0] + "//" + bucketName + "." + endpoint.split("//")[1] + "/" + fileName;
        // 关闭ossClient
        ossClient.shutdown();
        return url;// 把上传到oss的路径返回
    }

}

配置文件注入

使用@Value注解注入
@Value("${aaa.bbb.ccc}")
使用@ConfigurationProperties注解注入封装
@ConfigurationProperties(prefix = "aliyun.oss")
public class AliOSSProperties{
	........
}
yml

较properties来说更为简化,重数据轻格式

server.port=8080#properties

server:#yml
	port: 8000#值前需要加空格

员工修改

数据回显
//控制层
@GetMapping("/{id}")
    Result selectById(@PathVariable Integer id);
    
 @Override
    public Result selectById(Integer id) {
        return Result.success(empService.selectById(id));
    }
//业务层
Emp selectById(Integer id);

@Override
    public Emp selectById(Integer id) {
        return empMapper.selectById(id);
    }

//持久层
@Select("select * from emp where id = #{id}")
    Emp selectById(@Param("id") Integer id);
数据修改
//控制层
@PutMapping("")
    Result update(@RequestBody Emp emp);

 @Override
    public Result update(Emp emp) {
        empService.update(emp);
        return Result.success();
    }

//业务层
void update(Emp emp);

@Override
    public void update(Emp emp) {
        emp.setUpdateTime(LocalDateTime.now());
        empMapper.update(emp);
    }

//持久层
void update(Emp emp);

 <update id="update">
        update emp
        <set>
            <if test="username != ''">
                username = #{username},
            </if>
            <if test="password != ''">
                password = #{password},
            </if>
            <if test="name != ''">
                name = #{name},
            </if>
                gender = #{gender},
                image = #{image},
                job = #{job},
                entrydate = #{entrydate},
                dept_id = #{deptId},
            <if test="create_time = null">
                create_time = now(),
            </if>
                update_time = #{updateTime}
        </set>
        where id = #{id}
    </update>
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值