个人精简 xml,实现 mybatis 存取 blob 类型数据(Mysql)

用户头像
小Q
关注
发布于: 2020 年 10 月 16 日

大纲



  相比于网上的其他教程,我觉得我的xml文件是相对简单的。不信看我的Mapper。总而言之,存成BLOB时用Byte[]。从数据库中取出来用String接收就可以了。和其他人分析的不一样。但是我这样成功了。



Controller



package com.qust.shbz.util.controller;





import com.qust.shbz.util.ImgBean;



import com.qust.shbz.util.R;



import com.qust.shbz.util.service.UploadFileService;



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



import org.springframework.stereotype.Controller;



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



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



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



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





import java.util.List;





@Controller



@RequestMapping("/upload")



public class UploadFile {





  @Autowired



  private UploadFileService uploadFileService;





  @RequestMapping(value="/upload", method = {RequestMethod.POST })



  @ResponseBody



  public R upload(@RequestBody List<ImgBean> imgBeans) throws Exception{



      return R.ok("result",uploadFileService.uploadImg(imgBeans));



  }





  @RequestMapping(value="/getTp", method = {RequestMethod.POST })



  @ResponseBody



  public R getTp(String tyshxym){



      List<ImgBean> tp = uploadFileService.getTp(tyshxym);





      return R.ok("result",tp);



  }







}



Service



package com.qust.shbz.util.service.impl;





import com.qust.shbz.util.ImgBean;



import com.qust.shbz.util.service.UploadFileService;



import com.qust.shbz.util.mapper.UploadFileMapper;



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



import org.springframework.stereotype.Service;





import java.util.List;





/**



* @ClassName: UploadFileServiceImpl



* @Description: 上传文件的业务层



* @Author: bws



* @Date: 2019/6/9 22:36



* @Version: 1.0



*/



@Service



public class UploadFileServiceImpl implements UploadFileService {





  @Autowired



  private UploadFileMapper uploadFileMapper;





  @Override



  public int uploadImg(List<ImgBean> imgBeans) {



      int flag = 1;



      int insert = 1;



      for (int i = 0; i < imgBeans.size(); i++) {



          insert = uploadFileMapper.insertImg(imgBeans.get(i));



          if (insert != 1) {



              flag = 0;



          }



      }



      return flag;



  }





  @Override



  public List<ImgBean> getTp(String tyshxym) {



      List<ImgBean> tp = uploadFileMapper.getTp(tyshxym);



      return tp;



  }



}



Mapper



package com.qust.shbz.util.mapper;





import com.github.abel533.mapper.Mapper;



import com.qust.shbz.util.ImgBean;



import org.apache.ibatis.annotations.Insert;



import org.apache.ibatis.annotations.Select;





import java.util.List;





/**



* @ClassName: UploadFileMapper



* @Description: 文件上传数据库操作



* @Author: bws



* @Date: 2019/6/9 22:38



* @Version: 1.0



*/



public interface UploadFileMapper extends Mapper<ImgBean> {





  @Insert({"insert into img(id,name,base64) values(#{id},#{name},#{base64Byte})"})



  public int insertImg(ImgBean imgBean);





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



  public List<ImgBean> getTp(String tyshxym);



}



Bean



package com.qust.shbz.util;





import java.io.UnsupportedEncodingException;



import java.sql.Blob;





/**



* @ClassName: ImgBean



* @Description: 图片上传实体类



* @Author: bws



* @Date: 2019/6/9 21:56



* @Version: 1.0



*/



public class ImgBean {



  //主键,自动递增



  private int key;





  //文件名



  private String name;





  //公司标志,图片属于该公司



  private String id;





  //图片转换的base64字符,取的时候用这个



  private String base64;





  //byte[]形式的base64格式,BLOB,存的时候用这个



  private byte[] base64Byte;





  public String getName() {



      return name;



  }





  public void setName(String name) {



      this.name = name;



  }





  public String getId() {



      return id;



  }





  public void setId(String id) {



      this.id = id;



  }





  public int getKey() {



      return key;



  }





  public void setKey(int key) {



      this.key = key;



  }





  public String getBase64() {



      return base64;



  }





  public void setBase64(String base64) throws UnsupportedEncodingException {



      this.base64 = base64;



      this.base64Byte = base64.getBytes("UTF8");



  }





  public byte[] getBase64Byte() {



      return base64Byte;



  }





  public void setBase64Byte(byte[] base64Byte) {



      this.base64Byte = base64Byte;



  }



}

关注公众号:Java架构师联盟,每日更新技术好文



发布于: 2020 年 10 月 16 日 阅读数: 9
用户头像

小Q

关注

还未添加个人签名 2020.06.30 加入

小Q 公众号:Java架构师联盟 作者多年从事一线互联网Java开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果能为您提供帮助,请给予支持(关注、点赞、分享)!

评论

发布
暂无评论
个人精简xml,实现mybatis存取blob类型数据(Mysql)