文档章节

JDBC Item3: LOB(Large objects)

_
 _Roger_
发布于 2016/01/27 13:27
字数 417
阅读 18
收藏 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
武汉
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.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
0
0
检测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
Escape Analysis(逃逸分析)

Escape Analysis (EA) is a very important technique that the just-in-time Java compiler can use to analyze the scope of a new object and decide whether it might not be allocated ......

Yixin_Nemo
08/31
0
0
Garbage Collection Roots

Garbage Collection Roots — The Source of All Object Trees Every object tree must have one or more root objects. As long as the application can reach those roots, the whole tre......

秋风醉了
2015/11/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
5
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
4
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部