最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

怎么将图片添加到mysql中

来源:动视网 责编:小采 时间:2020-11-08 22:13:16
文档

怎么将图片添加到mysql中

怎么将图片添加到mysql中:将图片添加到mysql中的方法:首先将数据库存储图片的字段类型设置为blob二进制大对象类型;然后将图片流转化为二进制;最后将图片插入数据库即可。推荐:《mysql视频教程》正常的图片储存要么放进本地磁盘,要么就存进数据库。存入本地很简单,现在我在这里记
推荐度:
导读怎么将图片添加到mysql中:将图片添加到mysql中的方法:首先将数据库存储图片的字段类型设置为blob二进制大对象类型;然后将图片流转化为二进制;最后将图片插入数据库即可。推荐:《mysql视频教程》正常的图片储存要么放进本地磁盘,要么就存进数据库。存入本地很简单,现在我在这里记


推荐:《mysql视频教程》

正常的图片储存要么放进本地磁盘,要么就存进数据库。存入本地很简单,现在我在这里记下如何将图片存进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
 {
 try
 {
 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)
 {
 try
 {
 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;
 try
 {
 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)
 {
 try
 {
 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;
 try
 {
 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)
 {
 try
 {
 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;
 try
 {
 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)
 {
 try
 {
 rs.close();
 }
 catch (SQLException e)
 {
 e.printStackTrace();
 }
 }
 if (ps != null)
 {
 try
 {
 ps.close();
 }
 catch (SQLException e)
 {
 e.printStackTrace();
 }
 }
 
 }
 }
 
 //测试
 public static void main(String[] args)
 {
 //readImage2DB();
 readDB2Image();
 }
}

文档

怎么将图片添加到mysql中

怎么将图片添加到mysql中:将图片添加到mysql中的方法:首先将数据库存储图片的字段类型设置为blob二进制大对象类型;然后将图片流转化为二进制;最后将图片插入数据库即可。推荐:《mysql视频教程》正常的图片储存要么放进本地磁盘,要么就存进数据库。存入本地很简单,现在我在这里记
推荐度:
标签: 图片 如何 数据库
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top