CLOB(Character Large Object)

用于存储大量的文本数据

大字段有些特殊,不同数据库处理的方式不一样,大字段的操作常常是以流的方式来处理的。

测试CLOB 文本大对象的使用
 * 包含:将字符串、文本内容插入数据库中的CLOB字段、将CLOB字段值取出来操作

package cn.dym01;import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;/*** 测试CLOB 文本大对象的使用* 包含:将字符串、文本内容插入数据库中的CLOB字段、将CLOB字段值取出来操作**/
public class Demo09 {public static void main(String[] args) {Connection conn = null;PreparedStatement ps = null;ResultSet rs=null;Reader r=null;try {//加载驱动类Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");ps=conn.prepareStatement("insert into t_user (username,myInfo) values (?,?)");ps.setString(1, "止小兮");//         ps.setClob(2, new FileReader(new File("d://a.txt")));  //将文本文件内容直接输入到数据库中//将程序中的字符串输入到数据库的CLOB字段中
//          ps.setClob(2, new BufferedReader(new InputStreamReader(new ByteArrayInputStream("aaaabbbbbb".getBytes()))));
//          ps.executeUpdate();ps=conn.prepareStatement("select * from t_user where id=?");ps.setObject(1, 21437);rs=ps.executeQuery();while(rs.next()) {Clob c=rs.getClob("myInfo");r=c.getCharacterStream();int temp=0;try {while((temp=r.read())!=-1) {System.out.print((char)temp);}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}finally {if(r!=null) {try {r.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(ps!=null) {try {ps.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(conn!=null) {try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
}


BLOB


package cn.dym01;import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;/*** 测试BLOB 二进制大对象的使用* **/
public class Demo10 {public static void main(String[] args) {Connection conn = null;PreparedStatement ps = null;try {//加载驱动类Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");ps=conn.prepareStatement("insert into t_user2 (username,headImg) values (?,?)");ps.setString(1, "止小兮");try {ps.setBlob(2, new FileInputStream("d:/avator.jpg"));} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}ps.execute();} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}finally {if(ps!=null) {try {ps.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(conn!=null) {try {conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}
}


package cn.dym01;import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import com.mysql.jdbc.Blob;/*** 测试BLOB 二进制大对象的使用* **/
public class Demo10 {public static void main(String[] args) {Connection conn = null;PreparedStatement ps = null;ResultSet rs=null;InputStream is =null;OutputStream os = null;try {//加载驱动类Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");ps=conn.prepareStatement("select * from t_user2 where id=?");ps.setObject(1, 21439);rs=ps.executeQuery();while(rs.next()){Blob b = (Blob) rs.getBlob("headImg");is = b.getBinaryStream();os = new FileOutputStream("d:/a.jpg");int temp = 0;try {while((temp=is.read())!=-1){os.write(temp);}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {try {if(is!=null){is.close();}} catch (Exception e) {e.printStackTrace();}try {if(os!=null){os.close();}} catch (Exception e) {e.printStackTrace();}try {if(ps!=null){ps.close();}} catch (SQLException e) {e.printStackTrace();}try {if(conn!=null){conn.close();}} catch (SQLException e) {e.printStackTrace();}}}
}

java的知识点45——CLOB 存储大量的文本数据与 BLOB 二进制大对象相关推荐

  1. hbase 二进制数据写入_Hbase对于大对象存储的三种主要解决方案

    本帖最后由 非鱼 于 2015-4-29 12:23 编辑 方案1:HBase自身的大对象存储方案 由于HBase底层数据都是以Bytes数组来存储,对于非结构化数据的大对象可以很容易的转成Bytes ...

  2. 计算机术语blob是什么东西?( binary large object,二进制大对象,是一个可以存储二进制文件的容器)(典型的BLOB是一张图片或一个声音文件)

    看hikflow_demo源码,搞不清楚blob是什么玩意,, 查了一下: BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器. 在计算机中,BLOB常 ...

  3. java的知识点45——事务||测试时间处理(java.sql.date,time,timestamp)

    事务 事务基本概念: 一组要么同时执行成功,要么同时执行失败的SQL语句.是数据库操作的一个执行单元! 事务开始于: 连接到数据库上,并执行一条DML语句(INSERT.UPDATE或DELETE). ...

  4. Java的知识点18——数组存储表格数据、冒泡排序的基础算法、冒泡排序的优化算法、二分法查找

    数组存储表格数据 package cn.dym08; import java.util.Arrays; public class Test09 {public static void main(Str ...

  5. java hdms_字段为clob类型,无法插入数据

    public String getHdmsStr() throws SQLException, IOException { if(this.hdms!=null){ Reader is = hdms. ...

  6. JAVA核心知识点--使用org.json.JSONObject处理Json数据

    目录 引入org.json依赖 构建JSONObject 直接构建 使用Map构建 使用JavaBean构建 解析JSONObject 引入org.json依赖 在 maven 项目中使用 org.j ...

  7. oracle对大对象类型操作:blob,clob,nclob,bfile

    在oracle中,有4个大对象(lobs)类型可用,分别是blob,clob,bfile,nclob.下面是对lob数据类型的简单介绍.blob:二进制lob,为二进制数据,最长可达4GB,存贮在数据 ...

  8. 【Java数据库】CLOB BLOB 在数据库中存入/取出大量文本数据、二进制文件(图片)

    CLOB(Character Large Object) – 用于存储大量的文本数据 – 大字段有些特殊,不同数据库处理的方式不一样,大字段的操作常常是以流的 方式来处理的.而非一般的字段,一次即可读 ...

  9. sqlite java blob_【转】好东西!sqlite3中BLOB数据类型存储大对象运用示例

    1:常用接口 个人比较喜欢sqlite, 使用最方便,唯一的准备工作是下载250K的源:而且作者很热心,有问必答. 以下演示一下使用sqlite的步骤,先创建一个数据库,然后查询其中的内容.2个重要结 ...

最新文章

  1. android全局计时_Android定时器AlarmManager
  2. springboot 定时器
  3. 我的内核学习笔记3:我的platform驱动模板文件
  4. 取消endnotes参考文献格式域的步骤_大学体悟-毕业论文格式篇
  5. thinkphp解决分页后序列号自增的问题
  6. [3-7]xp系统美化主题包下载每日更新【heizt整理】
  7. 牛客 处女座和小姐姐
  8. eclipse怎么恢复默认界面
  9. 深入浅出内存马(一)
  10. ftp下载工具绿色版,ftp下载工具有绿色版的吗?教程详解
  11. c语言中循环并列语句顺序,C语言第五讲,语句 顺序循环选择.
  12. 产业学院的制度逻辑及其政策意义
  13. ffmpeg安装遇错:nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.
  14. python极客项目编程pdf微盘下载_《Python极客项目编程 》——2.4 完整代码
  15. 裸金属服务器租用常见问题
  16. [源庚]花开的瞬间——大本营全分析
  17. 阳阳智能开关教程从0到1目录导航
  18. Kali Linux渗透测试--windows 10入侵和提权过程
  19. 钱包+地图:海伯利安有望开启区块链应用私域流量入口
  20. Revit2020以及Revit2019安装以及激活配置教程

热门文章

  1. 「BZOJ 2152」聪聪可可
  2. 编译Python2.7.10
  3. Kafka无消息丢失配置
  4. 键盘 Input子系统
  5. 健康研究总结摘录专题
  6. ajax跨域解决方案
  7. Java 调用存储过程 返回结果集
  8. Android 设置thumb图片大小
  9. 用于主题检测的临时日志(d94169f9-f1c0-45a2-82d4-6edc4bd35539 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)...
  10. android7.1增加一个开机自启动的bin应用遇到的权限问题