问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql里面怎样插入图片

发布网友 发布时间:2022-04-21 23:32

我来回答

2个回答

懂视网 时间:2022-04-29 20:04

推荐:《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();
 }
}

热心网友 时间:2022-04-29 17:12

新建类型为mediumblob的字段【小图片可以用blob,更大的图片可以用LongBlob】

将图片转为base64格式的数据,存到这个字段中

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
达达配送需要什么条件 达达配送如何使用 达达配送使用方法 ...接电脑上显示ip为192.168.1.107 能上网。 然后中间接个无线路由_百 ... 搜狗拼音这个图标怎样才能把它永久删除 一个力矩的计算问题,如附图求B点,最好能给出步骤,说明原因,物理全搞... 关于杠杆、滑轮的物理问题 中国第一台大型电子计算机 如何种植剪股颖草坪种子 草坪推荐——剪股颖草坪 草坪推荐——细弱剪股颖草坪 请问,吃橙子能减肥吗?橙子的营养价值功效与作用... 吃橙子可以减肥吗? 吃橙子可以减肥么? 胃不好,老是胃胀,胃痛怎么办 胃不好,老是胃胀,胃痛怎么办 第五人格中玩冒险者密码校准区域很短是为什么? 胃痛、胃胀怎么治疗呢? 胃痛、胃胀怎么治疗呢? 第五人格1-32破解机关怎么过 胃痛胃胀是怎么回事? 胃痛胃胀是怎么回事? 第五人格 怎么提高校准范围? 胃痛,胃胀怎么办? 胃痛,胃胀怎么办? 第五人格魔犬奇闻破解密语任务怎么做 经常胃胀气胃痛怎么办 经常胃胀气胃痛怎么办 switch语句本教学设计的理论依据是什么 第五人格刚开始跳过了新手教程,现在开归宿必须要... 我最近老是觉得胃胀胃痛,怎么回事 橙子适合减肥吃吗 如何向MySQL中插入图片文件 mysql数据库怎么导入图片,我是想用php+mysql做一... 吃橙子有什么好处 橙子可以减肥吗 mysql怎么添加图片 橙子减肥吗 怎样把jpg或BMP图片文件导入到MySQL数据库? 吃橙子能减肥吗? navicat for mysql怎么给表格中的某一项插入图片 喝橙子汁对减肥有什么作用? mysql数据库插入图片 女人吃橙子有什么好处 怎么上传图片并插入MYSQL 减肥时可以多吃橙子吗? 请问在mysql中怎么存储图片呢? 有谁知道如何把一图片存放到mysql数据库中 减肥可以吃橙子吗晚上 mysql插入图片 mysql数据库可以存图片吗? 如何将图片储存在MySQL数据库里?