如何将图片存到数据库(以mysql为例), 使用ORM Bee更加简单

如何将图片存到数据库

  1. 创建数据库:
  1. 生成Javabean
java 复制代码
public class ImageExam implements Serializable {

	private static final long serialVersionUID = 1596686274309L;

	private Integer id;
	private String name;
//	private Blob image;
	private InputStream image; //将InputStream存入blob
	private byte[] binary1; //存byte[]
	private byte[] binary2blob; //将byte[]存入blob

省略相应的get,set

  1. 使用ORM Bee对表时行插入数据和查询:
java 复制代码
package org.teasoft.exam.bee.osql;

import java.io.File;
import java.io.FileInputStream;
import java.util.List;

import org.teasoft.bee.osql.api.Suid;
import org.teasoft.exam.bee.osql.entity.ImageExam;
import org.teasoft.exam.comm.Printer;
import org.teasoft.honey.osql.shortcut.BF;
import org.teasoft.honey.util.StreamUtil;

/**
 * @author Kingstar
 * @since  2.1.10
 */
public class ByteArrayOrBlobExam {

	public static void main(String[] args) throws Exception {
		Suid suid=BF.getSuid();

		ImageExam imageExam = new ImageExam();

		String filePath = "F://testPic.jpg";
		File imageFile = new File(filePath);
		FileInputStream inputStream = new FileInputStream(imageFile);

		imageExam.setImage(inputStream); //将InputStream存入blob
		
		String str = "Hello, World!";
		byte[] byteArray = str.getBytes();
		imageExam.setBinary1(byteArray);  //存byte[]
		imageExam.setBinary2blob(byteArray); //将byte[]存入blob
		suid.insert(imageExam);
		
		ImageExam imageSelect = new ImageExam();
		imageSelect.setId(473684481);
//		imageSelect.setBinary1(byteArray); //不能用于过滤
		
		List<ImageExam> list=suid.select(imageSelect);
		Printer.printList(list);
		StreamUtil.inputStream2File(list.get(0).getImage(), "F://testPic2.jpg");
		
		
		System.out.println(StreamUtil.byteArray2String(list.get(0).getBinary1()));
		System.out.println(StreamUtil.byteArray2String(list.get(0).getBinary2blob()));

	}

}

获取数据库的图片,并保存到指定位置:

StreamUtil.inputStream2File(list.get(0).getImage(), "F://testPic2.jpg");

此实例也演示了,如何设置inputStream, byte[]到数据库;

另外,inputStream是可以设置到mysql的blob字段的

相关推荐
XYiFfang1 小时前
【mysql】SQL自连接实战:查询温度升高的日期
数据库·sql·mysql
四季豆豆豆4 小时前
办公任务分发项目 laravel vue mysql 第一章:核心功能构建 API
vue.js·mysql·laravel
一个CCD4 小时前
MySQL主从复制之进阶延时同步、GTID复制、半同步复制完整实验流程
android·mysql·adb
R瑾安5 小时前
mysql集群部署(Mysql Group Replication)
数据库·mysql·wpf
没刮胡子5 小时前
mysql分页SQL
数据库·sql·mysql
高级测试工程师欧阳5 小时前
SQLint3 模块如何使用
数据库·python·mysql·oracle
小池先生5 小时前
docker中的mysql变更宿主机映射端口
android·mysql·docker
知其然亦知其所以然6 小时前
别再只会背八股了!一文带你彻底搞懂UNION与UNION ALL的区别
后端·mysql·面试
白鹭14 小时前
Mysql主从同步
linux·运维·数据库·mysql
ホロHoro15 小时前
学习笔记:MYSQL(3)(常用函数和约束)
笔记·学习·mysql