当前位置:首页 > 系统运维 > 正文内容

MySQL操作blob 的实际操作经验汇总

a8116255316年前 (2010-06-12)系统运维12

此文章主要向大家讲述的是MySQL操作blob 的实际操作经验,我们大家都知道jsp(SUN企业级应用的首选)+MySQL(和PHP搭配之更佳组合) 记住,一定要用MySQL(和PHP搭配之更佳组合)的longblob类型来存默认的blob大小不够。

数据库字段:id (char) pic (longblob)

转载请注明出处,这时我与我的知己的合作的结过

原来MySQL操作blob字段时都要先差个空值,在查blob,好麻烦,用prepareStatment就不用那么麻烦了,哈哈

postblob.heml页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xml(标准化越来越近了)ns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> </head> <body> <form action="testblob.jsp(SUN企业级应用的首选)" method="post" > <table width="291" border="1"> <tr> <td width="107">id </td> <td width="168"><input name="id" type="text" /></td> </tr> <tr> <td>file</td> <td><input name="file" type="file" /></td> </tr> <tr> <td><input type="submit" value="提交"/></td> </tr> </table> </form> </body> </html> testblob.jsp(SUN企业级应用的首选)  <%@ page contentType="text/html;charset=gb2312"%>   <%@ page import="java.sql.*" %> <%@ page import="java.util.*"%> <%@ page import="java.text.*"%> <%@ page import="java.io.*"%>   <html xml(标准化越来越近了)ns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> </head> <body> <%   String id=request.getParameter("id");  String file=request.getParameter("file");  out.print(id);  out.print(file);  FileInputStream str=new FileInputStream(file);  out.print(str.avAIlable());  java.sql.Connection conn;   java.lang.String strConn;   Class.forName("org.gjt.mm.MySQL(和PHP搭配之更佳组合).Driver").newinstance();   connjava.sql.DriverManager.getConnection("jdbc:MySQL(和PHP搭配之更佳组合)://localhost/test","root","");   String sql="insert into test(id,pic) values( , )";   PreparedStatement pstmt=conn.prepareStatement(sql);   pstmt.setString(1,id);  pstmt.setBinaryStream(2,str,str.available());   pstmt.execute();   out.println("Success,You Have Insert an Image Successfully");  pstmt.close();  %>   <a href="readblob.jsp(SUN企业级应用的首选)">查看图片</a> <a href="postblob.html">返回</a> </body> </html> readblob.jsp(SUN企业级应用的首选)  <%@ page contentType="text/html;charset=gb2312"%>   <%@ page import="java.sql.*, javax.sql.*" %> <%@ page import="java.util.*"%> <%@ page import="java.text.*"%> <%@ page import="java.io.*"%>   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xml(标准化越来越近了)ns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> </head> <body> <%  java.sql.Connection conn;  ResultSet rs=null;  Class.forName("org.gjt.mm.MySQL(和PHP搭配之更佳组合).Driver").newInstance();   connjava.sql.DriverManager.getConnection("jdbc:MySQL(和PHP搭配之更佳组合)://localhost/test","root","");   Statement stmt=conn.createStatement();   rs=stmt.executeQuery("select * from test where id='1'");  if(rs.next())  {  Blob b = rs.getBlob("pic");  int size =(int)b.length();  out.print(size);  InputStream in=b.getBinaryStream();  byte[] bynew byte[size];  response.setContentType("image/jpeg");   ServletOutputStream sos = response.getOutputStream();  int bytesRead = 0;  while ((bytesRead = in.read(by)) != -1) {  sos.write(by, 0, bytesRead);  }  in.close();  sos.flush();  }  %> </body> </html> 

注意:在用sos.write(by, 0, bytesRead);时,该 *** 把inputstream中的内容在一个新的页面中输出

如果本页中还有别的内容要输出的话,只有把上述 *** 改为,bytesRead = in.read(by)) ;

再用out.print(new String(by)); *** 输出结果,注意在这里不能用by.toString() *** ,该 *** 返回的是要输出内容的内存地址。MySQL(和PHP搭配之更佳组合)中有blob textarea类型大小了66536基本上放点小的东东就足够了,哈哈,但是现在的数码pic越来越大就只能用longblob了 大小有4g能 ,放个电影都够了哈哈

上面说了这么多内容,是关于对MySQL操作blob经验谈的介绍,不知道各位对MySQL的认识是不是更上一层楼了,时时关注2345hao.cn,学习最新Mysql技术。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/21141.html

分享给朋友:

“MySQL操作blob 的实际操作经验汇总” 的相关文章

windows 7系统的电脑发出嘟嘟嘟的声音该怎么解决?

windows 7系统的电脑发出嘟嘟嘟的声音该怎么解决?

在某些电脑中,机器内部蜂鸣器与系统的声音输出方案是相关联的,这样一来会导致当系统输出声音时,即使电脑没有连接外部音响或耳机,也会通过内置蜂鸣器发出“嘟嘟哔哔”的声音。这个问题主要出现在Windows 7电脑中,假如你的电脑恰好遇到了这样的问题,可参考下面的方法来解决: 1、在桌面“计算机”图标上右...

如何删除自带的不常用应用为windows 7减负

如何删除自带的不常用应用为windows 7减负

对于Windows 7系统来说,其默认安装的许多工具是我们很少使用或从来不用的,比如系统自带的扫雷、纸牌游戏等。删除此类长期不用的系统组件,不但可以让系统更清爽,更重要的是还可以提高系统的运行速度,特别是对于硬件配置相对较低的上网本来说,尤其如此。接下来,笔者就给大家介绍一下如何删除Windows...

Win 7系统中其他声音正常但酷狗音乐没声音怎么回事

Win 7系统中其他声音正常但酷狗音乐没声音怎么回事

故障现象: Windows 7酷狗软件无声音,系统声音正常。 原因分析: 1. 查看酷狗软件设置 2. 查看系统设置 解决方案: 1. Windows 7操作方法 如图:查看是否处于禁音状态   Windows 7系统声音正常酷狗音乐无声音 2. 查看设置音频输出是否...

3个实用的windows 7 DOS操作系统技巧

3个实用的windows 7 DOS操作系统技巧

       1. 快速复制粘贴文字   有时我们需要复制命令提示符窗口中的某些文字内容,但是之前的Windows系统中常规的复制粘贴方法是无效的,而在Windows 7中我们可以通过简单方法来复制文字:首先在任意位置右击鼠标并选择“标记...

Windows7启动后连上了网但网络图标不停转圈怎么办

Windows7启动后连上了网但网络图标不停转圈怎么办

Windows 7电脑开机后,虽然连上了网络,但是网络图标却一直不停地转圈,这个问题该怎么修复呢?今天小编就告诉大家解决的方法吧。 解决方法: 1、假如是打补丁后出现的问题。 第一时间卸载驱动精灵,并且把它的文件夹彻底删除,要干净,用360粉碎! 2、开启network list ser...

windows 7禁用粘滞键(连续按 Shift 五次)的方法

windows 7禁用粘滞键(连续按 Shift 五次)的方法

我们都知道连续按 Shift 五次可以启用或关闭粘滞键,但是假如我们不需要粘滞键,想要将它禁用该怎么设置呢?现在小编就教你解决这个问题的方法吧。 具体操作步骤如下: 1、首先依次点击“开始—控制面板—轻松访问中心—使键盘更容易进行使用”项; 2、在弹出来的界面中,取消勾选“启用粘滞键”...