MySQL操作blob的经验研讨

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

创新互联建站于2013年创立,先为定襄等服务建站,定襄等地企业,进行企业商务咨询服务。为定襄企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

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

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

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

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

postblob.heml页面

 
 
 
  1. 无标题文档
  2. id 
  3. file
  4. testblob.jsp(SUN企业级应用的选择)
  5. <%@ page contentType="text/html;charset=gb2312"%> 
  6. <%@ page import="java.sql.*" %>
  7. <%@ page import="java.util.*"%>
  8. <%@ page import="java.text.*"%>
  9. <%@ page import="java.io.*"%> 
  10. 无标题文档
  11. <% 
  12. String id=request.getParameter("id");
  13. String file=request.getParameter("file");
  14. out.print(id);
  15. out.print(file);
  16. FileInputStream str=new FileInputStream(file);
  17. out.print(str.available());
  18. java.sql.Connection conn; 
  19. java.lang.String strConn; 
  20. Class.forName("org.gjt.mm.MySQL(和PHP搭配之最佳组合).Driver").newInstance(); 
  21. conn= java.sql.DriverManager.getConnection("jdbc:MySQL(和PHP搭配之最佳组合)://localhost/test","root",""); 
  22. String sql="insert into test(id,pic) values(?,?)"; 
  23. PreparedStatement pstmt=conn.prepareStatement(sql); 
  24. pstmt.setString(1,id);
  25. pstmt.setBinaryStream(2,str,str.available()); 
  26. pstmt.execute(); 
  27. out.println("Success,You Have Insert an Image Successfully");
  28. pstmt.close();
  29. %> 
  30. 查看图片
  31. 返回
  32. readblob.jsp(SUN企业级应用的选择)
  33. <%@ page contentType="text/html;charset=gb2312"%> 
  34. <%@ page import="java.sql.*, javax.sql.*" %>
  35. <%@ page import="java.util.*"%>
  36. <%@ page import="java.text.*"%>
  37. <%@ page import="java.io.*"%> 
  38. 无标题文档
  39. <%
  40. java.sql.Connection conn;
  41. ResultSet rs=null;
  42. Class.forName("org.gjt.mm.MySQL(和PHP搭配之最佳组合).Driver").newInstance(); 
  43. conn= java.sql.DriverManager.getConnection("jdbc:MySQL(和PHP搭配之最佳组合)://localhost/test","root",""); 
  44. Statement stmt=conn.createStatement(); 
  45. rs=stmt.executeQuery("select * from test where id='1'");
  46. if(rs.next())
  47. {
  48. Blob b = rs.getBlob("pic");
  49. int size =(int)b.length();
  50. out.print(size);
  51. InputStream in=b.getBinaryStream();
  52. byte[] by= new byte[size];
  53. response.setContentType("image/jpeg"); 
  54. ServletOutputStream sos = response.getOutputStream();
  55. int bytesRead = 0;
  56. while ((bytesRead = in.read(by)) != -1) {
  57. sos.write(by, 0, bytesRead);
  58. }
  59. in.close();
  60. sos.flush();
  61. }
  62. %>

注意:在用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了。

当前题目:MySQL操作blob的经验研讨
网站链接:http://www.shufengxianlan.com/qtweb/news49/538949.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联