Spring boot JPA 从数据库中保存获取BLOB(照片)

Spring boot JPA 从数据库中保存获取BLOB(照片)

 

直接贴代码 

依赖


			org.springframework.boot
			spring-boot-starter-data-jpa
		

实体类

package com.b505.bean;

import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Lob;

/**
 * @类名:Company
 * @功能描述:公司表实体类
 */

@Entity
public class Company {

	@Id
	@GeneratedValue

	private int CompanyId;

	private String CompanyName;

	private String CompanyManager;

	private String CompanyPhone;

	private Date CreateDate;

	//@Lob 通常与@Basic同时使用,提高访问速度
	@Lob 
	@Basic(fetch = FetchType.LAZY) 
	@Column(name=" company_logo", columnDefinition="longblob", nullable=true) 
	private byte[] CompanyLogo;


	private String CompanyAddress;

	private String managerQQ;

	private String WhchatID;

	//get set方法省略~~~~~~~

	@Override
	public String toString() {
		return CompanyAddress + CompanyId + CompanyLogo + CompanyManager + CompanyName + CompanyPhone;
	}

}

dao层

package com.b505.dao;

import org.springframework.data.jpa.repository.JpaRepository;

import com.b505.bean.Company;

public interface CompanyDao extends JpaRepository{

}

controller

package com.b505.web;


import java.io.IOException;
import java.util.Date;

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

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.b505.bean.Company;
import com.b505.dao.CompanyDao;

@Controller
public class UserRestController {

	@Autowired
	private CompanyDao companyDao;
/**
*company1 获得页面上input中的name属性对应的值  input z中name属性的值跟实体中name属性是一致的不一致的话   company1不能得到输入的值
照片是使用@RequestParam获得
*/
	
	@RequestMapping("/companysave")
	@ResponseBody
	public void save(Company company1,@RequestParam(name="fileField",required=false) MultipartFile fileField) throws IOException
	{
		Company company = new Company();
		company.setCompanyAddress(company1.getCompanyAddress());
		company.setCompanyManager(company1.getCompanyManager());
		company.setCompanyName(company1.getCompanyName());
		company.setCompanyPhone(company1.getCompanyPhone());
		company.setCreateDate(new Date());
		company.setManagerQQ(company1.getManagerQQ());
		company.setWhchatID(company1.getWhchatID());
		if(fileField==null)
		{
			company.setCompanyLogo(null);
		}else {
			company.setCompanyLogo(fileField.getBytes());
		}
		companyDao.save(company);
	}
	
	/**映射页面
	 */
	@RequestMapping("/login")
	public String login()
	{
		return "login";
	}
}

页面   输入数据点击提交就可是保存数据

Spring boot JPA 从数据库中保存获取BLOB(照片)_第1张图片

页面代码




    
    
    
    
    
    
    
    
    
    
    
    
    
    



添加公司

查看数据库已经存在该数据 照片也保存了

Spring boot JPA 从数据库中保存获取BLOB(照片)_第2张图片

总结:

1.BLOB属性在实体中是哟个byte[]数据库类型表示 ,并使用@blo注解声明持久化

2.在Controller层接受数据 使用@RequestParam注解接受数据   放在MultipartFile文件中   

3.将fileField.getbytes()转化成字节    保存即可

 

小弟新手,欢迎交流

 

 

 

你可能感兴趣的:(spring,boot,JPA,blob)