当前位置:Gxlcms > mysql > 如何往mysql中添加图片

如何往mysql中添加图片

时间:2021-07-01 10:21:17 帮助过:65人阅读

往mysql中添加图片的方法:首先创建一个方法使用FileInputStream读取图片;然后连接数据库并写入sql语句,用PreparedStatement执行sql语句。

本教程操作环境:windows7系统、mysql8.0.22版,该方法适用于所有品牌电脑。

相关免费学习推荐:mysql视频教程

往mysql中添加图片的方法:

1.效果

1d45baf176e69aa8f36f9c6ab3663f1.png

不是存了个字符串哈,可以看左边的数据类型。

2. 获取blob数据

我们创建一个方法使用FileInputStream读取图片,还有ByteArrayOutputStream将读取的数据写入byte[]数组,然后

  1. public static byte[] getImgStr(String path) throws IOException {
  2. FileInputStream fis = new FileInputStream(path);
  3. ByteArrayOutputStream out = new ByteArrayOutputStream();
  4. int len = 0;
  5. byte[] b = new byte[1024];
  6. while ((len = fis.read(b))!= -1){
  7. out.write(b,0,len);
  8. }
  9. //接收out
  10. byte[] array = out.toByteArray();
  11. fis.close();
  12. out.close();
  13. return array;
  14. }

3.连接数据库并写入sql语句

使用Blob创建一个Blob,然后将我们获取的图片数据转换成blob类型,然后用PreparedStatement执行sql语句,因为它支持占位符并且有setBlob方法可以直接将我们的blob地址中的值写入数据库。然后就大功告成了。

  1. public static void main(String[] args) {
  2. /*
  3. 加载驱动
  4. */
  5. try {
  6. Class.forName("com.mysql.cj.jdbc.Driver");
  7. //获取连接
  8. String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
  9. String user= "root";
  10. String password ="123456";
  11. try {
  12. Connection connection = DriverManager.getConnection(url,user,password);
  13. /*
  14. 插入图片
  15. */
  16. byte[] arr = getImgStr("图片地址");
  17. Blob blob = connection.createBlob();
  18. blob.setBytes(1,arr);
  19. String sql = "insert into pictures (name,pic,date) values('张三',?,'2015-01-01')";
  20. PreparedStatement ps = connection.prepareStatement(sql);
  21. ps.setBlob(1,blob);
  22. ps.executeUpdate();
  23. } catch (SQLException e) {
  24. e.printStackTrace();
  25. }
  26. } catch (ClassNotFoundException | IOException e) {
  27. e.printStackTrace();
  28. }
  29. }

相关免费学习推荐:php编程(视频)

以上就是如何往mysql中添加图片的详细内容,更多请关注gxlcms其它相关文章!

人气教程排行