`
shuaigg.babysky
  • 浏览: 566132 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

用clob , blob在mysql中建表 , 并使用jdbc操作

阅读更多

clob  对应四种类型 ,TINYTEXT ,    TEXT ,      MEDIUMTEXT , LONGTEXT

                             2的8次方     2的16次方      2的24次方          2的32次方

blob 对应四种类型  .  TINYBLOB ,     BLOB ,    MEDIUMBLOB , LONGBLOB

 

 

clob

create table testclob(id integer primary key auto_increment , content text);

 

 

blob

create tabke testblob(id integer primary key auto_increment , image blog);

 

 

package com.zly.test;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Test {
	
	public static void main2(String[] args) {
		Connection connection = null;
		PreparedStatement psmt = null;
		BufferedInputStream bis = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc" , "root" , "root");
			String sql = "insert into testjdbc(pic) values(?)";
			psmt = connection.prepareStatement(sql);
			File file = new File("src/tab.png");
			bis = new BufferedInputStream(new FileInputStream(file));
			psmt.setBinaryStream(1, bis, new Long(file.length()).intValue());
			int executeUpdate = psmt.executeUpdate();
			System.out.println(executeUpdate);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if(bis != null) {
				try {
					bis.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
			if(psmt != null) {
				try {
					psmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if(connection != null) {
				try {
					connection.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	public static void main1(String[] args) {
		Connection connection = null;
		PreparedStatement psmt = null;
		ResultSet rs = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc" , "root" , "root");
			String sql = "select content from testjdbc where id = ?";
			psmt = connection.prepareStatement(sql);
			psmt.setInt(1, 1);
			rs = psmt.executeQuery();
			if(rs.next()) {
				String string = rs.getString("content");
				System.out.println(new String(string.getBytes() , "UTF-8"));
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} finally {
			if(psmt != null) {
				try {
					psmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
			if(connection != null) {
				try {
					connection.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	public static void main(String[] args) {
		InputStream binaryStream = null;
		OutputStream out = null;
		Connection connection = null;
		PreparedStatement prepareStatement = null;
		ResultSet executeQuery = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc", "root", "root");
			String sql = "select pic from testjdbc where id = ?";
			prepareStatement = connection.prepareStatement(sql);
			prepareStatement.setInt(1, 1);
			executeQuery = prepareStatement.executeQuery();
			if(executeQuery.next()) {
				binaryStream = executeQuery.getBinaryStream("pic");
				out = new FileOutputStream("src/tab_bak.png");
				byte[] bytes = new byte[1024];
				int read = 0;
				while((read = binaryStream.read(bytes)) != -1) {
					out.write(bytes , 0 , read);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
	 	} finally {
	 		if(binaryStream != null) {
	 			try {
					binaryStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
	 		}
	 		if(out != null) {
	 			try {
					out.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
	 		}
	 		if(executeQuery != null) {
	 			try {
					executeQuery.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
	 		}
	 		if(prepareStatement != null) {
	 			try {
					prepareStatement.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
	 		}
	 		if(connection != null) {
	 			try {
					connection.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
	 		}
	 	}
	}
	
}
 
分享到:
评论

相关推荐

    CLOB、BLOB___CLOB与BLOB的区别

    在 Java 中,CLOB 可以使用两种方式来操作:一种是将 CLOB 看成字符串类型,即可以使用 String 进行直接操作;另一种是使用 getAsciiStream 或者 getUnicodeStream 以及对应的 setAsciiStream 和 setUnicodeStream ...

    mysql和Oracle在对clob和blob字段的处理

    - 存储机制:MySQL的`TEXT`和`BINARY`系列数据类型通常存储在数据页中,而Oracle的`CLOB`和`BLOB`可以存储在表空间中,允许更大的数据量。 - 索引支持:Oracle支持对`CLOB`和`BLOB`字段建立索引,而MySQL的索引...

    JDBC中操作Blob、Clob等对象

    接下来是一个具体的示例,展示了如何使用JDBC操作包含Blob和Clob字段的数据库表。 1. **创建包含Blob和Clob字段的表**: ```java String url = "jdbc:derby:clobberyclob;create=true"; Class.forName("org....

    修改clob blob 字段

    修改clob blob 字段 修改clob blob 字段 修改clob blob 字段

    Oracle clob和blob在jdbc的应用

    在这个例子中,我们先删除了名为`documents`的表,如果存在的话,然后创建一个新的表,包含`id`(整数类型)、`text`(CLOB类型,最大64KB)和`photo`(BLOB类型,最大1440KB)。`CLOB`和`BLOB`的大小可以通过指定...

    JDBC中操作Blob、Clob等对象 实例详细 非常详细

    本文将详细介绍如何使用JDBC来操作Blob和Clob对象,包括创建含有Blob和Clob字段的表、插入和读取Blob/Clob数据的具体步骤。 #### 二、Derby简介 Apache Derby是一款高质量的、纯Java的嵌入式关系数据库引擎。它...

    DELPHI的CLOB和BLOB存取处理.zip_DELPHI的CLOB和BLOB存取处理_hallzgz

    在DELPHI中,通常会使用ADO(ActiveX Data Objects)或DBX(Database Express)等组件来访问数据库,这些组件提供了对CLOB和BLOB的支持。 1. ADO组件处理CLOB和BLOB: - 使用TADOQuery、TADODataset等组件与数据库...

    Mybatis 处理 CLOB、BLOB 类型数据

    MyBatis 处理 CLOB、BLOB 类型数据是指在使用 MyBatis 框架时,如何正确地处理大字段类型的数据。CLOB(Character Large OBject)和 BLOB(Binary Large OBject)都是大字段类型,用于存储大量的数据。 CLOB 类型...

    oracle中的BLOB(照片)转换到mysql中

    在IT行业中,数据库管理系统(DBMS)如Oracle和MySQL在...在实际操作中,需要对数据库API有深入理解,并注意数据的兼容性和性能优化。通过以上方法,你可以顺利地在两个数据库系统之间迁移和管理BLOB类型的照片数据。

    使用Jdbc4操作Blob,Clob

    这篇博客“使用Jdbc4操作Blob,Clob”将深入讲解如何利用JDBC4 API来处理Blob和Clob对象。 Blob通常用于存储二进制数据,如图片、音频或视频文件,而Clob则用于存储大量文本数据,如长篇的文本或XML文档。在JDBC4中...

    Oracle导出Clob,Blob工具

    2. **Oracle.ManagedDataAccess.dll**:这是Oracle官方提供的Managed Driver,它是一个.NET Framework库,允许开发者在.NET环境中直接访问Oracle数据库,支持Clob和Blob操作。 3. **SqlSugar.dll**:这是一个流行的...

    利用spring的jdbcTemplate处理blob、clob

    spring 中对大数据的处理,包括clob,blob的数据。比之jdbc下简便很多。

    关于在Hibernate中对于Clob,Blob字段的处理方法

    本篇将详细介绍在Hibernate中如何处理Clob和Blob字段,以及使用特定Oracle JDBC驱动程序的优势。 首先,Hibernate通过`org.hibernate.type`包中的`ClobType`和`BlobType`来映射Clob和Blob。在实体类中,你需要定义...

    spring2通过jdbc的方式读取、更新数据库的clob或者blob类型的数据

    - CLOB和BLOB的读取速度通常比普通字段慢,因此在设计数据库表结构时应尽量避免频繁的读取操作。 总的来说,Spring通过JDBC提供了一套完善的接口和工具类来处理CLOB和BLOB,使得开发者无需直接与JDBC API打交道,...

    BLOB和CLOB的区别以及在ORALCE中的插入和查询操作

    了解BLOB和CLOB的区别以及如何在Oracle中进行插入和查询操作对于数据库开发者和管理员来说至关重要。 首先,我们来看BLOB和CLOB的主要区别: 1. 数据类型:BLOB用于存储二进制大对象,如图片、视频、音频文件或者...

    oracle(blob转换为clob)

    在这个场景下,我们主要使用了`DBMS_LOB.CREATETEMPORARY`和`DBMS_LOB.WRITEAPPEND`两个过程来创建临时的CLOB并逐段写入转换后的数据。 - `DBMS_LOB.CREATETEMPORARY`:用于创建一个临时的LOB,此方法创建的LOB只...

    详解jdbc实现对CLOB和BLOB数据类型的操作

    对CLOB和BLOB数据类型的操作是非常重要的,特别是在使用Java数据库连接(JDBC)时。本文将详细介绍JDBC实现对CLOB和BLOB数据类型的操作,包括读取和写入操作。 CLOB数据类型 CLOB数据类型用于存储大型字符数据,如...

    clob-blob.rar_blob and clob_clob_java CLOB_java oracle cl_oracle

    标题"Clob-blob.rar_blob and clob_clob_java CLOB_java oracle cl_oracle"暗示了这个压缩包包含的资源是关于使用Java操作Oracle数据库中的CLOB和BLOB字段的示例代码。这个压缩包可能包含了一个名为`clob-blob.java`...

    图片存入Oracle中,用clob和blob两种方式

    在数据库管理中,存储非结构化数据如图片、音频或视频文件时,通常会使用`CLOB`(Character Large Object)和`BLOB`(Binary Large Object)这两种数据类型。Oracle数据库系统支持这两种数据类型,用于存储大量文本...

Global site tag (gtag.js) - Google Analytics