如何将图片存到数据库
1. 创建数据库:
2. 生成Javabean
- 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
3. 使用ORM Bee对表时行插入数据和查询:
- 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
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字段的