此文章主要向大家讲述的是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(); conn= java.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(); conn= java.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[] by= new 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好导航站长资讯发布,如需转载请注明出处。
在某些电脑中,机器内部蜂鸣器与系统的声音输出方案是相关联的,这样一来会导致当系统输出声音时,即使电脑没有连接外部音响或耳机,也会通过内置蜂鸣器发出“嘟嘟哔哔”的声音。这个问题主要出现在Windows 7电脑中,假如你的电脑恰好遇到了这样的问题,可参考下面的方法来解决: 1、在桌面“计算机”图标上右...
对于Windows 7系统来说,其默认安装的许多工具是我们很少使用或从来不用的,比如系统自带的扫雷、纸牌游戏等。删除此类长期不用的系统组件,不但可以让系统更清爽,更重要的是还可以提高系统的运行速度,特别是对于硬件配置相对较低的上网本来说,尤其如此。接下来,笔者就给大家介绍一下如何删除Windows...
故障现象: Windows 7酷狗软件无声音,系统声音正常。 原因分析: 1. 查看酷狗软件设置 2. 查看系统设置 解决方案: 1. Windows 7操作方法 如图:查看是否处于禁音状态 Windows 7系统声音正常酷狗音乐无声音 2. 查看设置音频输出是否...
1. 快速复制粘贴文字 有时我们需要复制命令提示符窗口中的某些文字内容,但是之前的Windows系统中常规的复制粘贴方法是无效的,而在Windows 7中我们可以通过简单方法来复制文字:首先在任意位置右击鼠标并选择“标记...
Windows 7电脑开机后,虽然连上了网络,但是网络图标却一直不停地转圈,这个问题该怎么修复呢?今天小编就告诉大家解决的方法吧。 解决方法: 1、假如是打补丁后出现的问题。 第一时间卸载驱动精灵,并且把它的文件夹彻底删除,要干净,用360粉碎! 2、开启network list ser...
我们都知道连续按 Shift 五次可以启用或关闭粘滞键,但是假如我们不需要粘滞键,想要将它禁用该怎么设置呢?现在小编就教你解决这个问题的方法吧。 具体操作步骤如下: 1、首先依次点击“开始—控制面板—轻松访问中心—使键盘更容易进行使用”项; 2、在弹出来的界面中,取消勾选“启用粘滞键”...