香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > MYSQL >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

MySQL存储文本和图片的方法


时间:2020-11-03 13:39 作者:admin


Oracle中大文本数据类型

Clob  长文本类型  (mysql/' target='_blank'>mysql中不支持,使用的是text)Blob  二进制类型

MySQL数据库

Text   长文本类型  TINYTEXT:   256 bytes  TEXT:     65,535 bytes    => ~64kb  MEDIUMTEXT:  16,777,215 bytes  => ~16MB  LONGTEXT:   4,294,967,295 bytes => ~4GBBlob  二进制类型

例如:

建表

CREATE TABLE test(   id INT PRIMARY KEY AUTO_INCREMENT,   content LONGTEXT, -- 文本字段   img LONGBLOB  -- 图片字段);

存储文本时是以字符类型存储,存储图片时是以二进制类型存储,具体使用的设置参数方法,和获取数据方法不同。

例如:

// 存储文本时// 存储时,设置参数为字符流 FileReader readerpstmt.setCharacterStream(1, reader);// 获取参数时// 方式1:Reader r = rs.getCharacterStream("content");// 获取长文本数据, 方式2:System.out.print(rs.getString("content"));// 存储二进制图片时 // 设置参数为2进制流 InputStream in pstmt.setBinaryStream(1, in);// 获取2进制流InputStream in = rs.getAsciiStream("img");
/** * 保存照片 *  */@Testpublic void test2(){  String sql = "insert into test(img) values(?)";  try{    con = JDBCUtil.getConnection();    pstmt = con.prepareStatement(sql);    // 设置参数    // 获取文本    File file = new File("f:/a.jpg");    InputStream in = new FileInputStream(file);    // 设置参数为2进制流    pstmt.setBinaryStream(1, in);    // 执行sql    pstmt.executeUpdate();    in.close();  }catch (Exception e) {    e.printStackTrace();  }finally{    try {      JDBCUtil.close(con, pstmt);    } catch (Exception e) {      // TODO Auto-generated catch block      e.printStackTrace();    }  }}/** * 获取照片 *  */@Testpublic void test3(){  String sql = "select * from test where id=?;";  try{    con = JDBCUtil.getConnection();    pstmt = con.prepareStatement(sql);    // 设置参数    pstmt.setInt(1, 2);    // 执行查询    rs = pstmt.executeQuery();    while(rs.next()){      byte[] buff = new byte[1024];      InputStream in = rs.getAsciiStream("img");      int l=0;      OutputStream out = new FileOutputStream(new File("f:/1.jpg"));      while((l=in.read(buff))!=-1){        out.write(buff, 0, l);      }      in.close();      out.close();    }  }catch (Exception e) {    e.printStackTrace();  }finally{    try {      JDBCUtil.close(con, pstmt);    } catch (Exception e) {      // TODO Auto-generated catch block      e.printStackTrace();    }  }}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)