如何将图片存到数据库
- 创建数据库:
- 生成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
- 使用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字段的