Spring boot+mybatis+mysql实现数据库插入操作

2025-11-05 01:04:55

1、参考之前的案例,该案例中已经实现了mysql数据库的数据信息的单条插入和查询功能

2、实现数据信息的插入功能

在VideoInfoMapper类中增加插入数据的功能函数

package image.dao;

import org.apache.ibatis.annotations.Insert;

import org.apache.ibatis.annotations.Mapper;

import org.apache.ibatis.annotations.Param;

import org.apache.ibatis.annotations.Select;

@Mapper

public interface VideoInfoMapper {

@Select("select * from Video_info where id=#{id}")

VideoInfo findById(@Param("id") int id);

@Insert("insert into video_info(fileName,filePath,author,createDate) values(#{fileName},#{filePath},#{author},sysdate())")

int insertVideoInfo(@Param("fileName") String fileName,@Param("filePath") String filePath,@Param("author")  String author);

}

Spring boot+mybatis+mysql实现数据库插入操作

3、在VideoService类中增加数据插入的函数insertVideoInfo,需要使用到注解@Transactional

package image.dao;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

@Service("videoService")

public class VideoService {

//自动绑定mapper

@Autowired

private VideoInfoMapper videoInfoMapper;

//查询数据

public VideoInfo getVideoInfo(int id)

{

return videoInfoMapper.findById(id);

}

//插入数据

@Transactional

public int insertVideoInfo(String fileName,String filePath,String author)

{

return videoInfoMapper.insertVideoInfo(fileName, filePath, author);

}

}

Spring boot+mybatis+mysql实现数据库插入操作

4、在VideoInfoController 控制器类中,增加数据插入的Restful web service服务接口insertVideo:/video/add

package image;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.bind.annotation.RestController;

import image.dao.VideoInfo;

import image.dao.VideoService;

@RestController

@RequestMapping("/video")

public class VideoInfoController {

final static Logger logger = LoggerFactory.getLogger(VideoInfoController.class);

@Autowired

private VideoService videoService;

@RequestMapping("/info/{id}")

public VideoInfo getVideoInfo(@PathVariable("id") int id)

{

return videoService.getVideoInfo(id);

}

@RequestMapping("/add")

public int insertVideo(@RequestParam String fileName,@RequestParam String filePath,@RequestParam String author)

{

int res =-1;

res=videoService.insertVideoInfo(fileName, filePath, author);

return res;

}

}

Spring boot+mybatis+mysql实现数据库插入操作

5、在 FileUploadController控制器中修改handleFileUploadVideo方法,在上传文件时调用/video/add restful服务接口

   

   @PostMapping("/uploadVideo")

    @ResponseBody 

    public String handleFileUploadVideo(@RequestParam("file") MultipartFile file,

            RedirectAttributes redirectAttributes) {

        System.out.print("handleFileUploadVideo>>>>>>>>>>>");

    storageService.store(file);

   

    // String postUrl = "http://localhost:8080/addVideo";

    String postUrl = "http://localhost:8080/video/add";

MultiValueMap<String,Object> request =new LinkedMultiValueMap<String,Object>();

String filename = StringUtils.cleanPath(file.getOriginalFilename());

request.add("fileName",filename);

request.add("filePath","/img/"+filename);

request.add("author","fantasy");

RestTemplate restTemplate = new RestTemplate();

ResponseEntity<String> rst = restTemplate.postForEntity(postUrl, request, String.class);

System.out.println("Rest result:"+rst);

       return file.getOriginalFilename();

    }

   @PostMapping("/uploadVideo")

    @ResponseBody 

    public String handleFileUploadVideo(@RequestParam("file") MultipartFile file,

            RedirectAttributes redirectAttributes) {

        System.out.print("handleFileUploadVideo>>>>>>>>>>>");

    storageService.store(file);

   

    // String postUrl = "http://localhost:8080/addVideo";

    String postUrl = "http://localhost:8080/video/add";

MultiValueMap<String,Object> request =new LinkedMultiValueMap<String,Object>();

String filename = StringUtils.cleanPath(file.getOriginalFilename());

request.add("fileName",filename);

request.add("filePath","/img/"+filename);

request.add("author","fantasy");

RestTemplate restTemplate = new RestTemplate();

ResponseEntity<String> rst = restTemplate.postForEntity(postUrl, request, String.class);

System.out.println("Rest result:"+rst);

       return file.getOriginalFilename();

    }

Spring boot+mybatis+mysql实现数据库插入操作

6、在页面中端到端实现视频信息的入库、修改和删除等操作

1) 在页面中通过 http://localhost:8080/uploadVideo 页面进行视频文件上传

2)视频文件上传完成后,到mysql数据库中查询video_info表,验证数据是否插入到数据库中

Spring boot+mybatis+mysql实现数据库插入操作

Spring boot+mybatis+mysql实现数据库插入操作

Spring boot+mybatis+mysql实现数据库插入操作

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢