精华内容
下载资源
问答
  • /* * create a BLOB record in Mysql database. * */ //PreparedStatement st = null; //File file = new File("d:\\tom.jpg"); //InputStream in = new BufferedInputStream(new FileInputStream(file)); //String...

    package com;

    import java.io.IOException;

    import java.io.OutputStream;

    import java.sql.Blob;

    import java.sql.Connection;

    import java.sql.DriverManager;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    import java.sql.Statement;

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    public class GetImage extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

    Connection con = null;

    try {

    Class.forName("com.mysql.jdbc.Driver").newInstance();

    String URL = "jdbc:mysql://localhost:3306/test?user=root&password=root";

    con = DriverManager.getConnection(URL);

    Statement stmt = con.createStatement();

    /*

    * create a BLOB record in Mysql database.

    * */

    //PreparedStatement st = null;

    //File file = new File("d:\\tom.jpg");

    //InputStream in = new BufferedInputStream(new FileInputStream(file));

    //String sql = "insert into image(Image) values(?)";

    //st = con.prepareStatement(sql);

    //st.setBinaryStream(1, in, (int) file.length());

    //int i = st.executeUpdate();

    //in.close();

    /*

    * Retrieve the image from database

    * */

    String sql = "select * from image where Id = 2";

    ResultSet rs = stmt.executeQuery(sql);

    if (rs.next()) {

    Blob b = rs.getBlob("Image");

    long size = b.length();

    byte[] bs = b.getBytes(1, (int) size);

    response.setContentType("image/jpeg");

    OutputStream outs = response.getOutputStream();

    outs.write(bs);

    outs.flush();

    rs.close();

    }

    }catch(Exception e){

    e.printStackTrace();

    } finally {

    try {

    con.close();

    } catch (SQLException e) {

    e.printStackTrace();

    }

    }

    }

    }

    web.xml中的配置信息:

    GetImage

    com.GetImage

    GetImage

    /GetImage.jsp

    前台jsp中的code:

    GetImage.jsp

    SQL脚本:

    CREATE TABLE `image` (

    `Id` int(11) NOT NULL auto_increment,

    `Image` blob,

    PRIMARY KEY (`Id`)

    ) ENGINE=InnoDB DEFAULT CHARSET=latin1

    分享到:

    18e900b8666ce6f233d25ec02f95ee59.png

    72dd548719f0ace4d5f9bca64e1d7715.png

    2009-11-20 12:14

    浏览 906

    评论

    展开全文
  • 数据库存图片,是存图片名称?还是存图片路径??问题如上,之所以会有这么个疑问,目前图片是在本地服务器上存的,但是以后若是业务规模扩大,那图片肯定是要迁移到云存储服务上的,那个时候图片路径会改动,我怕...

    数据库存图片,是存图片名称?还是存图片路径??

    问题如上,之所以会有这么个疑问,目前图片是在本地服务器上存的,但是以后若是业务规模扩大,那图片肯定是要迁移到云存储服务上的,那个时候图片路径会改动,我怕原有网站图片显示,全部挂掉…。

    不知道,大家存图片到数据库的时候,是存图片名称(test.jpg) 还是 存图片路径(一般都是 /Data/UploadImage/2017-04-14/test.jpg)??

    存图片名称的话,以后,路径改动,直接修改图片路径的代码就解决了。

    存图片路径的话,以后,路径改动,要更新数据库中所有图片的路径才能够解决。

    不知道你们在上传图片后,保存图片的时候,是怎样保存的呢??

    回答

    习惯了

    路径、名称、后缀 分开存,然后有一个字段是完整url,即把以上所有连起来

    从你的问题看,既然刚开始就在数据库存储图片的相对路径就好了,以后要存第三方图片服务的话,到时就写脚本批量替换成第三方的图片地址就可以了,如果想一步到位的话,现在就可以使用第三方的图片服务的

    这个一般都是在自己的数据库中存储图片路径,要是图片多了,得占用多少空间呀。真实图片可以存储在第三方平台,如七牛等。实现思路是:先上传到七牛云服务器,获取到存储的路劲,然后保存到自己数据库中。

    存图片现在常规做法是:图片资源统一上传至图片服务器,然后保存图片路径,如果数据量非常大,可以根据Hash值进行分表存储。使用在项目中的话,全部走images.xxx.com/路径.png 的方式加载图片。另,如果不使用图片服务器,走专门的域名的话,可以在网站根目录简历一个resource资源文件夹,全部存放到这里,所有使用路径的地方都使用“/”,从根目录找起,方便迁移,也不会出路径问题。

    如果存自己服务器的话,数据库存相对路径! 如果迁移了或者换了域名也不重要,直接更改域名即可,其它都不用管,如果你存全路径,换域名IP 那就惨了!

    如果存第三方都会返回一个ID给你直接存这个ID就好了,到时候请求这个ID拿到你想要的图片即可!

    如果是本地服务器上的图片,那么就存相对与你项目根目录的路径(如/upload/20170413/xxxx.png),这样有两个好处:1.你前端引用的时候可以直接用(前提是你的nginx之类的配置根就是你项目路径)。2.在你项目迁移的时候能够直接迁移,不会有大问题。

    如果是第三方的地址,那么就直接存完整的地址了(比如http://img.xxx.xx.qiniu.com/x…),第三方的你干预不了什么,也不会有地址迁移的说法。

    展开全文
  • 记录mysql使用中数据库存表情项目情景:类似于淘宝的订单评价页面数据存储与传输显示 项目情景:类似于淘宝的订单评价页面 期望的是:页面能显示出,一开始在编辑信息框中输入的表情 当然,我们为了让用户更加便捷...

    项目需求:类似于淘宝的订单评价页面

    期望页面显示出,在编辑信息框中输入的表情

    一开始我们数据库表使用的是gbk的字符集,后来通过百度相关资料,摸索决定将字符集改为utf8mb4。

    utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。(为了节省空间,一般情况下使用utf8也就够了)

    utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 原来mysql支持的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP),也就是说,任何不在基本多文本平面的 Unicode字符,都无法使用 Mysql 的 utf8 字符集存储。包括 Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android 手机上),和很多不常用的汉字,以及任何新增的 Unicode 字符等等

    在这里插入图片描述

    查看本地数据库的相关编码集charset,并修改成utf8mb4,执行的主要命令如下:

    数据库编码字符集
    database
    schema
    table
    column

    SHOW CREATE DATABASE jfzw

    show variables like “character_set_database”;-- or:–
    show variables like “collation_database”;

    SELECT default_character_set_name FROM information_schema.SCHEMATA
    WHERE schema_name = “jfzw”;

    SELECT CCSA.character_set_name FROM information_schema.TABLES T,
    information_schema.COLLATION_CHARACTER_SET_APPLICABILITY CCSA WHERE CCSA.collation_name = T.table_collation
    AND T.table_schema = “jfzw”

    SELECT character_set_name FROM information_schema.COLUMNS WHERE table_schema = “jfzw”
    AND table_name = “t_scte_order_comment_info”
    AND column_name = “reserve1”;

    ALTER TABLE test_hand1 CONVERT TO CHARACTER SET utf8mb4

    在这里插入图片描述

    扩展:数据存储与传输显示、扣扣表情包

    对扣扣表情包的存储方式探索
    blob数据类型
    HTML5基础(SQLite数据库)

    这里我直接在扣扣上收藏了某个小表情😂后,发现存储在mc3.db文件下的数据实时变化更新了,里面是sqlite数据库文件,主要有效信息是data字段:blob数据类型的值。
    又结合以往版本电脑版扣扣的使用经验:QQ里的表情复制到文本就是字符码,自定义的一类字符规则。QQ的是,即使你在聊天框里手动输入这段字符,发出去时QQ会自动给你转成对应表情。
    在这里插入图片描述

    这里猜测与讨论:
    存的应该只是表情代码,不会存真图片文件。比如存储/:sun,/:moon,
    PC端效果,手机端没有,有理由怀疑QQ的这东西是客户端处理的,他后台压根不处理这东西
    总结与思考(考虑到后端数据库或者网络传输,节省空间与资源)
    后端数据库的字段,比如扣扣message或者评价content存储字符串varchar,表情信息在字符串中可用代码/:sun临时表示,到前端再转成小太阳显示
    但是前端也会存一个字典类似的,就是/:sun对应太阳,(字典通俗理解是一种映射关系,表现为数据库的一张表,比如可以用SQLite数据库存储:blob类型数据字段放置表情包字节对象),字典只需存储一遍,其他时候需要显示表情则去匹配一次字典

    在这里插入图片描述

    展开全文
  • 果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的!我将告诉你怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件。本文概述:在mysql中建立一个新的...

    标签:

    如何在mysql中存储音乐和图片文件?

    果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的!

    我将告诉你怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件。

    本文概述:

    在mysql中建立一个新的数据库

    一个怎样储存文件的例子程序

    一个怎样访问文件的例子程序

    在mysql中建立一个新的database

    首先,你必须在你的mysql中建立一个新的数据库,我们将会把那些二进制文件储存在这个数据库里。在例子中我会使用下列结构,为了建立数据库,你必须做下列步骤:

    进入MySql控制器

    输入命令"create database binary_data;"

    输入命令"use binary_data;"

    输入命令"CREATE TABLE binary_data ( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY,

    description CHAR(50), bin_data LONGBLOB, filename CHAR(50), filesize CHAR(50), filetype CHAR(50));" (不能断行)

    如果没有意外,数据库 和 表 应该建立好了。

    一个怎样储存文件的例子程序 用这个例子你可以通过Html表单将文件传输到数据库中。.

    store.php3

    // store.php3 - by Florian Dittmer ;

    ?>;

    ;

    ;Store binary data into SQL Database;;

    // 如果提交了表单,代码将被执行:

    if ($submit) {

    // 连接到数据库

    // (你可能需要调整主机名,用户名和密码)

    MYSQL_CONNECT( "localhost", "root", "password"

    b7dbedd24633004326c49f1529ac6df0.png;

    mysql_select_db( "binary_data"

    b7dbedd24633004326c49f1529ac6df0.png;

    $data = addslashes(fread(fopen($form_data,  "r"

    b7dbedd24633004326c49f1529ac6df0.png, filesize($form_data)));

    $result=MYSQL_QUERY( "INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) ".

    "VALUES (‘$form_description‘,‘$data‘,‘$form_data_name‘,‘$form_data_size‘,‘$form_data_type‘)"

    b7dbedd24633004326c49f1529ac6df0.png;

    $id= mysql_insert_id();

    print  "

    ;This file has the following Database ID: ;$id;";

    MYSQL_CLOSE();

    } else {

    // 否则显示储存新数据的表单

    ?>;

    ;

    File Description:
    ;

    ;

    ;


    ;File to upload/store in database:
    ;

    ;

    ;;

    ;

    }

    ?>;

    ;

    ;

    如果你执行了这个程序,你将会看见一个简单的Html表单,单击“浏览”选择一个文件,然后单击提交。

    当文件上传至web服务器之后,程序将会告诉你刚刚上传的文件的ID,记住这个ID,待会要用的。

    一个怎样访问文件的例子程序

    你可以通过这个程序访问你刚才储存的文件

    // getdata.php3 - by Florian Dittmer ;

    // 调用方法: getdata.php3?id=;

    if($id) {

    // 你可能需要调整主机名,用户名和密码:

    @MYSQL_CONNECT( "localhost", "root", "password"

    b7dbedd24633004326c49f1529ac6df0.png;

    @mysql_select_db( "binary_data"

    b7dbedd24633004326c49f1529ac6df0.png;

    $query =  "select bin_data,filetype from binary_data where id=$id";

    $result = @MYSQL_QUERY($query);

    $data = @MYSQL_RESULT($result,0, "bin_data"

    b7dbedd24633004326c49f1529ac6df0.png;

    $type = @MYSQL_RESULT($result,0, "filetype"

    b7dbedd24633004326c49f1529ac6df0.png;

    Header(  "Content-type: $type"

    b7dbedd24633004326c49f1529ac6df0.png;

    echo $data;

    };

    ?>;

    程序必须知道要访问那个文件, 你必须将ID作为一个参数。

    例如: 一个文件在数据库中的ID为2. 你可以这样调用它:

    getdata.php3?id=2如果你将图片储存在数据库里, 你可以向调用图片一样调用它。

    Example: 一个图片文件在数据库中的ID为3. 你可以这样调用它:

                        getdata.php3?id=3;

    怎样储存大于1MB的文件:

    如果你想储存大于1MB的文件,你必须对你的程序、PHP设置、SQL设置进行许多修改,。

    下面几条也许可以帮助你储存小于24MB的文件:

    修改 store.php3 ,将 MAX_FILE_SIZE 的值改成 24000000。

    修改你的PHP设置,在一般情况下,PHP只允许小于2MB的文件,你必须将max_filesize(在php.ini中)的值改成24000000

    去掉MYSQL的数据包大小限制,在一般情况下 MYSQL 小于1 MB的数据包.

    你必须用以下参数重启你的MYSQL

    /usr/local/bin/safe_mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O record_buffer=1M -O max_allowed_packet=24M

    如果仍然出错:

    可能是超时错误,如果你通过一个很慢的连接来储存一个很大的文件,PHP缺省的时间限制为30秒。

    你可以将max_execution_time(在php.ini中)的值改为-1

    标签:

    展开全文
  • 这是困扰很多人的一个问题,如果你想把二进制的数据,比如说图片文件和HTML文件,直接保存在你的MySQL数据库,那么这篇文章就是为你而写的!我将告诉你怎样通过HTML表单来储存这些文件,怎样访问和使用这些文件。下文...
  • 数据库存txt和图片

    千次阅读 2017-11-28 08:59:22
    环境:MySql+SQLyog+j2se+jdbc 存储文本用longtext类型 存储图片用blob类型 1、首先建表 create table t_t ( id int(16) NOT NULL AUTO_INCREMENT, longText longtext, picture blob, PRIMARY KEY (`id`) )...
  • 如果A不存在B表数据则把不存在B表的数据也查询出来显示 后面的库存 金额,等字段值为0 , 简单点就是 A表一条数据对应B表13条如果A表有10条就要查询出10*13的记录130条 没有值的显示为空 比如 b表有产品1 产品...
  • 为了要实现一个在网页上显示出图像的需求,而这些图像又是可以从后台来CRUD的,所以我打算采用数据库存图片的解决方案,数据库使用mysqlmysql存二进制数据一共有四种类型:TinyBlob, Blob, MediumBlob, LongBlob。...
  • 网络问题好像穿不了图片, 就是sql查询出来的数据,一直比数据库存储的数据多了8小时,数据库存的是14.58 查询出来就变成了22:58,请问这是咋回事呢?/* 具体sql*/UPDATEseckillSETnumber = number - 1where seckill_id =...
  • 为了要实现一个在网页上显示出图像的需求,而这些图像又是可以从后台来CRUD的,所以我打算采用数据库存图片的解决方案,数据库使用mysql。   mysql存二进制数据一共有四种类型:TinyBlob, Blob, MediumBlob , ...
  • mysql数据库笔记

    千次阅读 2018-10-29 12:49:00
    Python数据库 1、 数据库概念 数据:文本、图片、视频、音频、网页………. ...2、 为什么使用数据库存数据? 内存: 优点:存取速度快 缺点: 1、 容量小 2、 断电后,数据不会保存 文件: 优...
  • 基于redis和mysql实现简单的秒杀

    万次阅读 2020-11-09 15:32:37
    商家提交秒杀商品申请,录入秒杀商品数据,主要有:商品标题,商品原价,秒杀价格,商品图片,介绍等信息 运营商审核秒杀申请 秒杀频道首页列出秒杀商品,点击秒杀商品图片可以跳转到秒杀商品详细页面 商品详细...
  • 秒杀业务的运行流程主要可以分为以下几点:商家提交秒杀商品申请,录入秒杀商品数据,主要有:商品标题,商品原价,秒杀价格,商品图片,介绍等信息运营商审核秒杀申请秒杀频道首页列出秒杀商品,点击秒杀商品图片...
  • 秒杀业务的运行流程主要可以分为以下几点:商家提交秒杀商品申请,录入秒杀商品数据,主要有:商品标题,商品原价,秒杀价格,商品图片,介绍等信息运营商审核秒杀申请秒杀频道首页列出秒杀商品,点击秒杀商品图片...
  • 秒杀业务的运行流程主要可以分为以下几点:商家提交秒杀商品申请,录入秒杀商品数据,主要有:商品标题,商品原价,秒杀价格,商品图片,介绍等信息运营商审核秒杀申请秒杀频道首页列出秒杀商品,点击秒杀商品图片...
  • 数据库存JSON格式的数据的时候,怎么用SQL语句直接取出的方法 如图:但我们需要使用SQL语句直接取出d0字段中的c_max字段和c_min字段的时候,SQL语句如下 select JSON_EXTRACT(d0,'$.c_max') c_max,JSON_EXTRACT(d0,'...
  • 程序开发软件:MyEclipse8.5以上 数据库:mysql api接口采用技术: SSM框架(SpringMVC + Spring + ...图书:图书条形码,图书名称,图书分类,图书价格,图书库存,出版日期,出版社,图书图片,图书简介,图书文件
  • 程序开发软件:MyEclipse8.5以上 数据库:mysql 后台采用技术: SSM框架(SpringMVC + Spring + Mybatis) 前台采用技术: div + css ...图书:图书条形码,图书名称,图书所在类别,图书价格,库存,出版社,图书图片
  • 一般新的项目上线或域名必须要更改的时候,有些数据库存图片或者文件地址带域名的要全部改,恰巧呢,数据库表超级多,恰巧呢,又刚做了接盘侠,啥也不知道,就给你连接数据库让你改,头大不头大 我这个接盘侠上任...
  • 随着业务复杂度的增长,前端页面可能出现一些数据逻辑复杂的页面,传统的js逻辑处理起来比较复杂,我们先看两个例子:比如多规格多库存商品界面,难点在于颜色分类、尺码、价格、库存、限购数量以及对应的图片展示之...
  • printf("商品编号 商品名称 商品型号 商品产地 商品库存 商品已订购数 商品单价"); while(row=mysql_fetch_row(res)) { for(t=0;t <mysql_num_fields(res);t++) { printf("%s: ",row[t]); } printf...
  • 数据中心基础架构管理(DCIM) 物品生命周期管理 许可证管理(符合ITIL) 保修和财务信息的管理(采购订单,保修和延期,阻尼) 与库存项目有关的合同,联系人,文件的管理 事件,请求,问题和变更管理 知识库和...
  • MergeTree ORDER BY id AS SELECT * FROM mysql('192.168.66.33:3306', 'test', 'hexin_erp_product', 'root', 'Hexin2007') 2020-06-30 10:39:17 - synch.replication....
  • 新仿金蝶 ERP进销存系统多仓库版 V8 仿金蝶ERP 进销存仓库管理系统多仓库版,扫描枪入库+库存预警,含购货,销货,仓库管理,商品管理,供应商管理,职员管理等非常多的功能。该 ERP 部署安装非常简单,只需要空间...
  • redis详解(一)

    2020-07-14 02:11:10
    典型的处理比如短时间点赞10w+,不可能一直往数据库存。本地缓存一定时间再去存数据库。 再比如博客比较大的文件、图片。数据库表很大,效率就很低。如果有一种数据库专门来处理这种数据。 这样数据库的压力就变得很...
  • ![图片说明](https://img-ask.csdn.net/upload/201502/13/1423818785_528763.png)我要做一张报表,统计最近三十天内 进货、销售、库存每天的数量,已知有四张表 ...问一下大神怎么用mysql查询符合这样报表的数据
  • 超卖问题

    2020-12-23 20:52:10
    超卖:在我们的业务中会出现场景:当商品的库存接近0时,如果多个买家同时付款购买此商品,将会出现超卖的情况,购买数量超出库存量;总结了以下几个方案 ...适合于有大量按索引更新少量不同数据,同时又有并发查
  • 程序开发软件:MyEclipse8.5以上 数据库:mysql api接口采用技术: SSM框架(SpringMVC + Spring + Mybatis)客户端开发工具:微信开发者工具基于微信小...图书库存,出版日期,出版社,图书图片,图书简介,图书文件
  • 2、商家可以对菜单(菜单里都是早餐)进行添加、编辑、删除 查看订单 3、学生可以浏览不同商家的菜单并在0点前下单预定(预定范围为次日...5、所有数据与数据库交互,可以mysql 6、菜单包括 图片 名称 价格 库存 销量
  • 抢购流程

    千次阅读 2018-08-17 09:27:58
    2:抢购商品录入(包括:商品名,图片,描述,价格,库存数量(100))。 3:抢购服务架构:nignx(2台)--》4台tomcat--》2台redis和2台mysql 4:抢购前,把活动和商品数据加载到redis 里面。 5:抢购前,可以访问...

空空如也

空空如也

1 2 3 4
收藏数 62
精华内容 24
关键字:

mysql数据库存图片

mysql 订阅