将图片添加到mysql中的方法

46次阅读
没有评论

共计 3578 个字符,预计需要花费 9 分钟才能阅读完成。

自动写代码机器人,免费开通

丸趣 TV 小编给大家分享一下将图片添加到 mysql 中的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

将图片添加到 mysql 中的方法:首先将数据库存储图片的字段类型设置为 blob 二进制大对象类型;然后将图片流转化为二进制;最后将图片插入数据库即可。

正常的图片储存要么放进本地磁盘,要么就存进数据库。存入本地很简单,现在我在这里记下如何将图片存进 mysql 数据库

如果要图片存进数据库   要将图片转化成二进制。

1. 数据库存储图片的字段类型要为 blob 二进制大对象类型

2. 将图片流转化为二进制

下面放上代码实例

一、数据库

CREATE TABLE `photo` (`id` int(11) NOT NULL,
 `name` varchar(255) DEFAULT NULL,
 `photo` blob,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

二、数据库链接

/**
package JdbcImgTest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
 * @author Administrator
public class DBUtil
 // 定义数据库连接参数
 public static final String DRIVER_CLASS_NAME = com.mysql.jdbc.Driver 
 public static final String URL = jdbc:mysql://localhost:3306/test 
 public static final String USERNAME = root 
 public static final String PASSWORD = root 
 // 注册数据库驱动
 static
 Class.forName(DRIVER_CLASS_NAME);
 catch (ClassNotFoundException e)
 System.out.println( 注册失败!e.printStackTrace();
 // 获取连接
 public static Connection getConn() throws SQLException
 return DriverManager.getConnection(URL, USERNAME, PASSWORD);
 // 关闭连接
 public static void closeConn(Connection conn)
 if (null != conn)
 conn.close();
 catch (SQLException e)
 System.out.println( 关闭连接失败!e.printStackTrace();
 // 测试
/* public static void main(String[] args) throws SQLException
 System.out.println(DBUtil.getConn());
}

三、图片流

package JdbcImgTest;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
 * @author Administrator
public class ImageUtil
 // 读取本地图片获取输入流
 public static FileInputStream readImage(String path) throws IOException
 return new FileInputStream(new File(path));
 // 读取表中图片获取输出流
 public static void readBin2Image(InputStream in, String targetPath)
 File file = new File(targetPath);
 String path = targetPath.substring(0, targetPath.lastIndexOf( /));
 if (!file.exists())
 new File(path).mkdir();
 FileOutputStream fos = null;
 fos = new FileOutputStream(file);
 int len = 0;
 byte[] buf = new byte[1024];
 while ((len = in.read(buf)) != -1)
 fos.write(buf, 0, len);
 fos.flush();
 catch (Exception e)
 e.printStackTrace();
 finally
 if (null != fos)
 fos.close();
 catch (IOException e)
 e.printStackTrace();}

四、转码存储

package JdbcImgTest;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
 * @author Administrator 测试写入数据库以及从数据库中读取
public class ImageDemo
 // 将图片插入数据库
 public static void readImage2DB()
 String path = D:/Eclipse/eclipseWorkspace/TestProject/Img/mogen.jpg 
 Connection conn = null;
 PreparedStatement ps = null;
 FileInputStream in = null;
 in = ImageUtil.readImage(path);
 conn = DBUtil.getConn();
 String sql = insert into photo (id,name,photo)values(?,?,?) 
 ps = conn.prepareStatement(sql);
 ps.setInt(1, 1);
 ps.setString(2, Tom 
 ps.setBinaryStream(3, in, in.available());
 int count = ps.executeUpdate();
 if (count 0)
 System.out.println( 插入成功!else
 System.out.println( 插入失败!catch (Exception e)
 e.printStackTrace();
 finally
 DBUtil.closeConn(conn);
 if (null != ps)
 ps.close();
 catch (SQLException e)
 e.printStackTrace();
 // 读取数据库中图片
 public static void readDB2Image()
 String targetPath = C:/Users/Jia/Desktop/mogen.jpg 
 Connection conn = null;
 PreparedStatement ps = null;
 ResultSet rs = null;
 conn = DBUtil.getConn();
 String sql = select * from photo where id =? 
 ps = conn.prepareStatement(sql);
 ps.setInt(1, 1);
 rs = ps.executeQuery();
 while (rs.next())
 InputStream in = rs.getBinaryStream( photo 
 ImageUtil.readBin2Image(in, targetPath);
 catch (Exception e)
 e.printStackTrace();
 finally
 DBUtil.closeConn(conn);
 if (rs != null)
 rs.close();
 catch (SQLException e)
 e.printStackTrace();
 if (ps != null)
 ps.close();
 catch (SQLException e)
 e.printStackTrace();
 // 测试
 public static void main(String[] args)
 //readImage2DB();
 readDB2Image();}

看完了这篇文章,相信你对将图片添加到 mysql 中的方法有了一定的了解,想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计3578字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)