Maison  >  Article  >  base de données  >  MySQL操作blob的经验研讨

MySQL操作blob的经验研讨

WBOY
WBOYoriginal
2016-06-07 16:11:341004parcourir

以下的文章主要讲述的是MySQL操作blob的经验研讨,如果你在MySQL操作blob的实际操作中有不解之处时,你可以通过以下的文章对其的实际应用与功能有所了解,下面是文章的具体介绍,望你浏览完以下的内容会有所收获。 jsp(SUN企业级应用的首选)+MySQL(和PHP搭配

以下的文章主要讲述的是MySQL操作blob的经验研讨,如果你在MySQL操作blob的实际操作中有不解之处时,你可以通过以下的文章对其的实际应用与功能有所了解,下面是文章的具体介绍,望你浏览完以下的内容会有所收获。

jsp(SUN企业级应用的首选)+MySQL(和PHP搭配之最佳组合) 记住 要用MySQL(和PHP搭配之最佳组合)的longblob类型来存默认的MySQL操作blob大小不够

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

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

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

postblob.heml页面

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

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

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

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


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn