怎么将图片添加到mysql中


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

怎么将图片添加到mysql中

推荐:《mysql视频教程》

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

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

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

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

下面放上代码实例

SONIFY.io SONIFY.io

设计和开发音频优先的产品和数据驱动的解决方案

SONIFY.io 83 查看详情 SONIFY.io

一、数据库

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 j*a.sql.Connection;
import j*a.sql.DriverManager;
import j*a.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 j*a.io.File;
import j*a.io.FileInputStream;
import j*a.io.FileOutputStream;
import j*a.io.IOException;
import j*a.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 j*a.io.FileInputStream;
import j*a.io.InputStream;
import j*a.sql.Connection;
import j*a.sql.PreparedStatement;
import j*a.sql.ResultSet;
import j*a.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.*ailable());
            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中的详细内容,更多请关注其它相关文章!


# 要为  # 网站建设接单平台的介绍  # 杭州关键词排名哪里找  # 山西营销推广网站  # 营销推广管理培训总结  # 网站海外推广建设方案  # 西平河南搜索关键词排名怎么收费  # 龙洞推广营销软件  # 丽水江苏整站营销推广  # 嵩明县关键词排名优化  # 淘宝网站seo分析  # mysql数据库  # 后将  # 要将  # 解决问题  # 很简单  # 中文网  # 相关文章  # 数据库中  # 客户端  # 镜像 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: SQL聚合查询、联接与筛选:GROUP BY 子句的正确使用与常见陷阱  Win10截图远程协助 Win10远程桌面截屏法【场景应用】  苹果电脑如何快速截图并编辑 苹果电脑截屏标注快捷操作  动漫岛在线动漫网 动漫岛动漫在线观看官方入口  《随手记》备份数据方法  汽水音乐在线听歌网页版 汽水音乐在线听歌网页版入口  《新三国志曹操传》游历事件袁尚突围攻略  Highcharts雷达图轴线交点数值标注指南  J*aScript包管理器_Npm与Yarn对比  被称为海蜈蚣的海洋动物是  《气泡星球》兑换码礼包大全  驱动人生:游戏修复指南  C#解析并修改XML后保存 如何确保格式与编码的正确性  Yandex无需登录畅游 俄罗斯搜索引擎最新官网指南  Pydantic 中“schema”字段命名冲突的解决方案  Django模型动态关联检查:高效管理复杂关系  mysql怎么查询数据_mysql基础查询语句使用教程  PSD转AI文件的简单方法  iCloud官方网站 iCloud网页版在线登录入口  TikTok网页版入口快速访问 TikTok官网账号登录方法  sublime怎么快速在浏览器中预览HTML_sublime配置View in Browser教程  《友玩*》创建群聊方法  创客贴登录页面入口 创客贴网页版最新网址链接  热血江湖归来医师加点攻略  歌词怎么展示在|直播|间视频号?有什么注意事项?  在Peewee中处理PostgreSQL记录重复:一站式数据摄取教程  yy漫画官方网站登录入口_yy漫画在线阅读页面地址  J*aScript模拟悬停与点击:自动化网页动态元素交互指南  哔哩哔哩黑名单怎么查看  美发店速赢秘籍  网易云音乐闹钟铃声设置教程  抖音评论无法发送如何修复 抖音评论功能操作指南  优化Flask模板中SQLAlchemy查询迭代标签:处理字符串空格问题  B站怎么快速升级 B站用户等级提升攻略【详解】  偃武诸葛亮阵容搭配推荐  J*aScript与HTML元素交互:图片点击事件与链接处理教程  《下一站江湖2》独孤剑诀习得方法  Yandex浏览器官方入口_Yandex搜索引擎中文版  Leaflet地图弹出窗口图片动态显示:避免缺失图标的专业指南  夸克浏览器资源嗅探怎么用 夸克浏览器网页资源下载技巧【教程】  包子漫画官网链接官方地址 包子漫画在线观看官网首页入口  如何在mysql中使用索引提示_mysql索引提示优化方法  mysql触发器如何编写_mysql触发器编写规范与代码示例讲解  大众点评了却看不到是怎么回事  优化 React onClick 事件处理:函数引用与箭头函数的对比  解决J*aScript动态图片上传中ID重复问题:在同一页面显示多张独立图片  QQ网页版入口导航 QQ网页版在线访问通道  Lar*el 关联查询:同时筛选父表与子表数据的高效策略  抖音作品被限流怎么办 抖音内容优化与流量恢复方法  12306售票时间最新规定 | 网上订票和车站窗口时间一样吗 

 2020-10-28

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.