文档章节

JDBC Item3: LOB(Large objects)

_
 _Roger_
发布于 2016/01/27 13:27
字数 417
阅读 19
收藏 1

mysql存储大文本采用的是Text,Text和blob分别又分为: 

  • TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT 

  • TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB

一、使用JDBC处理MySQL的大文本

        对于MySQL中的Text类型,可调用如下方法设置

PreparedStatement.setCharacterStream(index, reader, length);//注意length长度须设置,并且设置为int型

  对MySQL中的Text类型,可调用如下方法获取

Reader reader = resultSet. getCharacterStream(String columnLabel);
string s = resultSet.getString(String columnLabel);

eg:插入大文本到数据库

Connection conn = null;
PreparedStatement st = null;
ResultSet rs = null;
Reader reader = null;
try{
    conn = JdbcUtils.getConnection();
    String sql = "insert into testclob(resume) values(?)";
    st = conn.prepareStatement(sql);
    //这种方式获取的路径,其中的空格会被使用“%20”代替
    String path = JdbcOperaClob.class.getClassLoader().getResource("data.txt").getPath();
    //将“%20”替换回空格
    path = path.replaceAll("%20", " ");
    File file = new File(path);
    reader = new FileReader(file);
    st.setCharacterStream(1, reader,(int) file.length());
    int num = st.executeUpdate();
    if(num>0){
        System.out.println("插入成功!!");
    }


二、使用JDBC处理MySQL的二进制数据

    对于MySQL中的BLOB类型,可调用如下方法设置

PreparedStatement.setBinaryStream(i, inputStream, length);

    对MySQL中的BLOB类型,可调用如下方法获取

InputStream in  = resultSet.getBinaryStream(String columnLabel);
InputStream in  = resultSet.getBlob(String columnLabel).getBinaryStream();

eg:插入二进制文件到数据库

Connection conn = null;
PreparedStatement st = null;
ResultSet rs = null;        try{
    conn = JdbcUtils.getConnection();
    String sql = "insert into testblob(image) values(?)";
    st = conn.prepareStatement(sql);            //这种方式获取的路径,其中的空格会被使用“%20”代替
    String path = JdbcOperaBlob.class.getClassLoader().getResource("01.jpg").getPath();
    //将“%20”替换会空格
    path = path.replaceAll("%20", " ");
    File file = new File(path);
    FileInputStream fis = new FileInputStream(file);//生成的流
    st.setBinaryStream(1, fis,(int) file.length());            
    int num = st.executeUpdate();            
    if(num>0){
        System.out.println("插入成功!!");
    }


本文转载自:http://www.cnblogs.com/xdp-gacl/tag/JavaWeb%E5%AD%A6%E4%B9%A0%E6%80%BB%E7%BB%93/

共有 人打赏支持
_
粉丝 29
博文 82
码字总数 39915
作品 0
武汉
私信 提问
资料整理——Oracle基本概念、术语(Glossary from Oracle Concepts)——第七部分

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hpdlzu80100/article/details/84871573 将知识凝练成概念的好处是简单、扼要、规范,这对于知识的应用、普及、...

预见未来to50
12/07
0
0
一篇关于“java.lang.OutOfMemoryError: PermGen space”的资料

Explaining java.lang.OutOfMemoryError: PermGen space Most probably, a lot of Java developers have seen OutOfMemory error one time or other. However these errors come in differen......

很懒的人
2010/02/24
1K
0
Tuning Java Garbage Collection for Spark Applicati

This is a guest post from our friends in the SSG STO Big Data Technology group at Intel. Join us at the Spark Summit to hear from Intel and other companies deploying Spark in pr......

kuerant
2015/05/30
0
1
检测Java对象所占内存大小 (转载)

Don't pay the price for hidden class fields By Vladimir Roubtsov, JavaWorld.com, 08/16/02 Recently, I helped design a Java server application that resembled an in-memory databas......

翟柱堂
2011/09/14
0
0
嵌入式数据库H2的1.1.100版本发布

如题所示,该版本的变化主要在如下几个方面: 当连接失败时,数据库连接驱动可以自动连接; 控制台工具先可支持JDBC-ODBC桥接和命令行参数; 数据库名允许使用单个字符; Linux下的内存模式支...

红薯
2008/10/05
555
0

没有更多内容

加载失败,请刷新页面

加载更多

Netty 备录 (一)

入职新公司不久,修修补补1个月的bug,来了点实战性的技术---基于netty即时通信 还好之前对socket有所使用及了解,入手netty应该不是很难吧,好吧,的确有点难,刚看这玩意的时候,可能都不知道哪里...

_大侠__
昨天
4
0
Django简单介绍和用户访问流程

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 Django遵守BSD版权,初...

枫叶云
昨天
8
0
EOS错误代码及中文释义

本文集汇总了EOS区块链常见错误代码及其含义,完整错误代码集请查看 EOS错误代码集 - 汇智网 EOS错误代码列表如下, <table class="table table-striped"> <thead> <tr><th>错误代码</th><t......

汇智网教程
昨天
4
0
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试...

程序猿DD
昨天
5
0
kiss原则

KISS 原则是用户体验的高层境界,简单地理解这句话,就是要把一个产品做得连白痴都会用,因而也被称为“懒人原则”。换句话说来,”简单就是美“。KISS 原则源于 David Mamet(大卫马梅)的电...

NB-One
昨天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部