问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

BLOB和CLOB的区别

发布网友 发布时间:2022-05-01 23:37

我来回答

2个回答

懂视网 时间:2022-05-02 03:58

/** * 测试CLOB(文本大对象)的使用 * @author yangf * */ public class Demo09 { public static void main(String[] args) { Connection con = null; PreparedStatement ps1 = null; PreparedStatement ps2 = null; ResultSet rs = null; try { // 加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); // 获得connection对象 建立与数据库连接 con = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc", "root", "123456"); ps1 = con.prepareStatement("insert into t_user (username,myInfo) values (?,?)"); ps1.setString(1, "yangf"); ps1.setClob(2, new FileReader("d:a.txt")); // 或者将程序中的字符串登录到DB中 ps1.setClob(2, new BufferedReader(new InputStreamReader(new ByteArrayInputStream("yangfyangf".getBytes())))); ps2 = con.prepareStatement("select * from t_user where id = ?"); ps2.setInt(1, 22009); rs = ps2.executeQuery(); while (rs.next()) { Clob c = rs.getClob("myInfo"); Reader r = c.getCharacterStream(); int len = 0; while (-1 != (len = r.read())) { System.out.print((char) r.read()); } } ps1.execute(); } catch (Exception e) { e.printStackTrace(); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (ps1 != null) { try { ps1.close(); } catch (SQLException e) { e.printStackTrace(); } } if (con != null) { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }

 

- BLOB(Binary Large Object)

  - 用于存储大量的二进制数据

  - 大字段有些特殊,不同数据库处理的方式不一样。大字段的操作常常是以流的方式来处理进行的。而非一般的字段,可以一次性读出数据。

- Mysql中相关类型

  - TINYBLOB最大长度为255(2^8 - 1)字节的BLOB列。

  - BLOB(M)最大长度为65535(2^16 - 1)字节的BLOB列。

  - MEDIUMBLOB最大长度为16777215(2^24 - 1)字节的BLOB列。

  - LONGBLOB最大长度为4294967295或4GB(2^32 - 1)字节的BLOB列。

例子:将大数据存储到DB的BLOB字段中,从DB中取出BLOB字段的内容。

  

package com.yf.jdbc.test;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 测试CLOB(文本大对象)的使用
 * @author yangf
 *
 */
public class Demo10 {
 
 public static void main(String[] args) {
 Connection con = null;
 PreparedStatement ps1 = null;
 PreparedStatement ps2 = null;
 ResultSet rs = null;
 try {
  // 加载数据库驱动
  Class.forName("com.mysql.jdbc.Driver");
  // 获得connection对象 建立与数据库连接
  con = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc", "root", "123456");
  ps1 = con.prepareStatement("insert into t_user (username,headImg) values (?,?)");
  
  ps1.setString(1, "yangf123");
  ps1.setBlob(2, new FileInputStream("d:/head.jpg"));
  ps1.execute();
  
  // 取出数据库的BLOB信息
  ps2 =con.prepareStatement("select * from t_user where id = ?");
  ps2.setInt(1, 22010);
  rs = ps2.executeQuery();
  while (rs.next()) {
  Blob blob = rs.getBlob("headImg");
  InputStream is = blob.getBinaryStream();
  int len = 0;
  FileOutputStream os = new FileOutputStream("d:/yangf.jpg");
  while ((len = is.read()) != -1) {
   os.write(len);
  }
  }
  
  
 } catch (Exception e) {
  e.printStackTrace();
 } finally {
  if (rs != null) {
  try {
   rs.close();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  }
  if (ps1 != null) {
  try {
   ps1.close();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  }
  if (con != null) {
  try {
   con.close();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  }
 }
 }
}

 

jdbc—CLOB和BLOB

标签:cte   ring   ade   nbsp   str   exce   fileinput   []   mysq   

热心网友 时间:2022-05-02 01:06

大型对象
BLOB就是使用二进制保存数据。
如:保存位图。
CLOB使用CHAR来保存数据。
如:保存XML文档。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
艾芙洛洗发水为什么不在商场销售商 艾芙洛洗发水是英国的吗 毕业生刚刚签了三方协议,想毁,怎么办 适合夫妻干的生意有哪些 新生蜜蜂多久出巢试飞 新生蜜蜂什么时候进行首次试飞? 蜜蜂几月几日出生外貌和颜色? 当脚模一定要脚趾修长吗 脚长成这样,能当脚膜吗 固话遇忙记存呼叫业务有什么特点? 什么是固话遇忙记存呼叫业务? 宋慧乔近照梳麻花辫,她的状态如何? 孕妇能喝蜂蜜吗 原来三种蜂蜜千万不能喝 怎样把滑键变成按键 孕妇能喝蜂蜜吗?孕妇要注意哪些蜂蜜? 红魔5g左上的红色滑动键是干嘛的?是类似于苹果的静音键吗? 孕妇能喝蜂蜜吗 孕妇可以喝蜂蜜吗 三星W2013屏幕右侧卡槽边上的滑键是干什么用的 psp正上方有一个滑键,是干什么的? 请问怀孕的人可以喝蜂蜜吗?选择喝那种蜂蜜类型? 孕妇能喝蜂蜜吗 孕妇喝什么蜂蜜好 什么是导向键?什么是滑键? iphone6的键盘设置里有一个滑动键盘的选项,请问是什么意思?多谢! 孕妇能喝的蜂蜜有哪些 电脑硬盘误删了Word文档,能恢复嘛? 硬盘格式化word文件怎么重新恢复? 怎么恢复被删除的电脑硬盘中的word文档? 索尼L360h 怎么样 智能交通管理专业前景怎么样?谢谢! 爱普生L360怎么样,爱普生L360好不好 购买心得 智能交通是干什么的? 本田歌诗图的防彻滑键怎么打开 宋慧乔现在怎么样了? .附近哪有卖路由器的 ,多少钱?一 崇明南门哪有卖无线路由的 中天城市广场附近哪有卖路由器的? 宋慧乔与刘亚仁合影,你羡慕他们之间的这种友谊吗? 宋仲基34岁生日,宋慧乔晒粉色小花双眼含情脉脉 ,隔空送祝福? 早上起床,经常腰痛,是什么原因? 宋慧乔晒了什么照片,让网友猜测双宋有可能复婚? 宋慧乔最新写真面容圆润被夸美的自然,还有哪些女星肉肉的才好看? 宋慧乔的照片 早晨起来老腰疼怎么回事 wifi路由器哪里有卖 宋慧乔晒蜜月照了吗? 早上起床腰疼的原因 每天早晨起床腰疼,活动活动就好了,是什么原因引起的 早上睡醒后腰疼是怎么回事 西安哪里有卖路由器的? 早上起床后腰痛是什么原因呢? 附近哪里有卖那个路由器的