博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java知识点总结(JDBC-大文本对象的使用)
阅读量:6291 次
发布时间:2019-06-22

本文共 2268 字,大约阅读时间需要 7 分钟。

Java知识点总结(JDBC-大文本对象的使用)

@(Java知识点总结)[Java, JDBC]

CLOB(Chaaracter Large Object)

  • 用于存储大量的文本数据
  • 大字段有些特殊,不同数据库处理的方式不一样,大字段的操作常常是以流的方式来处理。而非一般的字段,一次即可读出数据。

Mysql中相关类型:

  • TINYTEXT最大长度为255(2^8-1)字符的TEXT列。
  • TEXT最大长度为65535(2^16-1)字符的TEXT列。
  • MEDIUMTEXT最大长度为16777215(2^24-1)字符的TEXT列。
  • LONGTEXT最大长度为4294967295或4GB(2^32-1)字符的TEXT列。
import java.io.BufferedReader;import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.Reader;import java.io.UnsupportedEncodingException;import java.sql.Clob;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;/** * 测试CLOB 文本大对象的使用 * 将字符串和文本内容插入到数据库中的CLOB字段,讲CLOB字段取出来的操作 * @author Administrator * */public class Demo02 {  //存  private static void insert(Connection conn){    String sql = "insert into users(NAME,INFO) values(?,?)";    PreparedStatement ps = null;    try {     ps = conn.prepareStatement(sql);     ps.setString(1, "黄晓明");     //将文本内容直接输入到数据库     //ps.setClob(2, new FileReader(new File("E:/b.txt")));     //讲程序中的字符串输入到数据库的CLOB字段中     ps.setClob(2, new BufferedReader(         new InputStreamReader(new ByteArrayInputStream("黄晓明是个明星".getBytes("utf-8")))));          ps.execute();        } catch (SQLException | UnsupportedEncodingException e) {     e.printStackTrace();    }finally{     DBUtil. close(ps);     DBUtil. close(conn);    }  }    //读  private static void read(Connection conn){    String sql = "select * from users where USERID = ?";    PreparedStatement ps = null;    ResultSet rs = null;    try {     ps = conn.prepareStatement(sql);     ps.setObject(1, 10); //setObject()可以代替setInt()、setString()等     rs = ps.executeQuery();     while(rs.next()){       Clob clob = rs.getClob("INFO");       Reader r= clob.getCharacterStream(); //通过字符流的方式读取       int temp = 0;       while((temp = r.read())!=-1){         System.out.print((char)temp);                }     }    } catch (SQLException | IOException e) {     e.printStackTrace();    }finally{       DBUtil.close(rs);      DBUtil.close(ps);      DBUtil.close(conn);   }  }    public static void main(String[] args) {    insert(DBUtil.getConn());    read(DBUtil.getConn());  }}

转载地址:http://xrkta.baihongyu.com/

你可能感兴趣的文章
Java中AES加密解密以及签名校验
查看>>
定义内部类 继承 AsyncTask 来实现异步网络请求
查看>>
VC中怎么读取.txt文件
查看>>
如何清理mac系统垃圾
查看>>
企业中最佳虚拟机软件应用程序—Parallels Deskto
查看>>
Nginx配置文件详细说明
查看>>
怎么用Navicat Premium图标编辑器创建表
查看>>
Spring配置文件(2)配置方式
查看>>
MariaDB/Mysql 批量插入 批量更新
查看>>
ItelliJ IDEA开发工具使用—创建一个web项目
查看>>
solr-4.10.4部署到tomcat6
查看>>
切片键(Shard Keys)
查看>>
淘宝API-类目
查看>>
virtualbox 笔记
查看>>
Git 常用命令
查看>>
驰骋工作流引擎三种项目集成开发模式
查看>>
SUSE11修改主机名方法
查看>>
jdk6.0 + Tomcat6.0的简单jsp,Servlet,javabean的调试
查看>>
Android:apk签名
查看>>
2(2).选择排序_冒泡(双向循环链表)
查看>>