import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.PreparedStatement ;
import java.io.File ;
import java.io.FileInputStream ;
import java.io.InputStream ;
public class ClobDemo01{
// 定义MySQL的数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
// 定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
// MySQL数据库的连接用户名
public static final String DBUSER = "root" ;
// MySQL数据库的连接密码
public static final String DBPASS = "mysqladmin" ;
public static void main(String args[]) throws Exception{ // 所有异常抛出
Connection conn = null ; // 数据库连接
PreparedStatement pstmt = null ;
String name = "李兴华" ; // 表示姓名
String sql = "INSERT INTO userclob(name,note) VALUES (?,?) " ;
Class.forName(DBDRIVER) ; // 加载驱动程序
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
pstmt = conn.prepareStatement(sql) ; // 创建PreapredStatement对象
File f = new File("d:" + File.separator + "mldn.txt") ;
InputStream input = null ;
input = new FileInputStream(f) ; // 通过输入流读取文件
pstmt.setString(1,name) ;
pstmt.setAsciiStream(2,input,(int)f.length()) ;
pstmt.executeUpdate() ;
conn.close() ; // 数据库关闭
}
};
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.PreparedStatement ;
import java.sql.ResultSet ;
import java.io.File ;
import java.io.FileInputStream ;
import java.io.InputStream ;
import java.util.Scanner ;
public class ClobDemo02{
// 定义MySQL的数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
// 定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
// MySQL数据库的连接用户名
public static final String DBUSER = "root" ;
// MySQL数据库的连接密码
public static final String DBPASS = "mysqladmin" ;
public static void main(String args[]) throws Exception{ // 所有异常抛出
Connection conn = null ; // 数据库连接
PreparedStatement pstmt = null ;
ResultSet rs = null ;
int id = 1 ; // 读取的编号
String sql = "SELECT name,note FROM userclob WHERE id=? " ;
Class.forName(DBDRIVER) ; // 加载驱动程序
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
pstmt = conn.prepareStatement(sql) ; // 创建PreapredStatement对象
pstmt.setInt(1,id) ;
rs = pstmt.executeQuery() ;
if(rs.next()){
String name = rs.getString(1) ;
StringBuffer note = new StringBuffer() ;
System.out.println("姓名:" + name) ;
InputStream input = rs.getAsciiStream(2) ;
Scanner scan = new Scanner(input) ; // 使用Scanner类读取内容
scan.useDelimiter("\r\n") ; // 将文件换行作为分割符
while(scan.hasNext()){
note.append(scan.next()).append("\n") ;
}
System.out.println("内容:" + note) ;
input.close() ;
}
rs.close() ;
pstmt.close() ;
conn.close() ; // 数据库关闭
}
};
import java.sql.Connection ;
import java.sql.DriverManager ;
import java.sql.SQLException ;
import java.sql.PreparedStatement ;
import java.sql.Clob ;
import java.sql.ResultSet ;
public class ClobDemo03{
// 定义MySQL的数据库驱动程序
public static final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
// 定义MySQL数据库的连接地址
public static final String DBURL = "jdbc:mysql://localhost:3306/mldn" ;
// MySQL数据库的连接用户名
public static final String DBUSER = "root" ;
// MySQL数据库的连接密码
public static final String DBPASS = "mysqladmin" ;
public static void main(String args[]) throws Exception{ // 所有异常抛出
Connection conn = null ; // 数据库连接
PreparedStatement pstmt = null ;
ResultSet rs = null ;
int id = 1 ; // 读取的编号
String sql = "SELECT name,note FROM userclob WHERE id=? " ;
Class.forName(DBDRIVER) ; // 加载驱动程序
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;
pstmt = conn.prepareStatement(sql) ; // 创建PreapredStatement对象
pstmt.setInt(1,id) ;
rs = pstmt.executeQuery() ;
if(rs.next()){
String name = rs.getString(1) ;
System.out.println("姓名:" + name) ;
Clob c = rs.getClob(2) ;
String note = c.getSubString(1,(int)c.length()) ;
System.out.println("内容:" + note ) ;
c.truncate(100) ; // 只能读100个内容
System.out.println("部分读取内容:" + c.getSubString(1,(int)c.length())) ;
}
rs.close() ;
pstmt.close() ;
conn.close() ; // 数据库关闭
}
};
分享到:
相关推荐
Mybatis 处理 CLOB、BLOB 类型数据 MyBatis 处理 CLOB、BLOB 类型数据是指在使用 MyBatis ...通过使用 MyBatis 处理 CLOB 和 BLOB 类型数据,可以方便地存储和读取大字段类型的数据,提高应用程序的性能和可扩展性。
- 存储机制:MySQL的`TEXT`和`BINARY`系列数据类型通常存储在数据页中,而Oracle的`CLOB`和`BLOB`可以存储在表空间中,允许更大的数据量。 - 索引支持:Oracle支持对`CLOB`和`BLOB`字段建立索引,而MySQL的索引...
- 对CLOB数据,可以将文本转换为TMemoryStream,然后使用AsWideString属性从Stream读取或写入。 4. 分块读写: - 当数据过大时,可以采用分块读写,每次只处理一部分数据,减少内存占用。 - 使用Seek方法定位到...
CLOB 的优点是可以存储大量的字符数据,并且可以使用字符串操作来处理 CLOB 数据。 BLOB(Binary Large OBject)是另一种数据库类型,用于存储二进制大对象。它是一个大文件,典型的 BLOB 是一张图片或一个声音文件...
在实际操作中,可能会遇到如“数据过长”或“内存不足”等异常,这可能是因为CLOB数据超过了数据库或JVM的限制。为避免这些问题,可以考虑分段读写CLOB,或者调整数据库参数。另外,确保在MyBatis的...
Java 中处理 Clob 和 Blob 类型的注解配置是一种常见的处理大规模数据的方法。Clob(Character Large OBject)类型和 Blob(Binary Large OBject)类型是数据库中两种常用的大规模数据类型。Clob 类型用于存储大规模...
在实际应用中,由于业务需求的变化或者数据处理的需要,有时候会涉及到将CLOB类型转换为其他类型的情况,比如VARCHAR2。这种转换的需求通常出现在以下几个场景: 1. **性能优化**:在某些情况下,CLOB类型的数据...
spring 中对大数据的处理,包括clob,blob的数据。比之jdbc下简便很多。
在实际应用中,由于CLOB数据量大,可能需要考虑性能优化,如使用流式处理、批处理更新、缓存策略等。同时,还要关注数据库对CLOB的处理限制,如最大大小、事务管理等。在处理大量文本时,CLOB提供了有效的存储方案,...
这在处理大数据量的文本内容时,如日志、报告或者复杂结构的数据,非常有用。 首先,我们需要一个包含CLOB字段的数据库表。例如,我们有一个`documents`表,其中有一个名为`content`的CLOB字段,存储着XML格式的...
BLOB是一种可以存储大量二进制数据的对象,分为四种子类型:BLOB、CLOB、NCLOB和BFILE。在Oracle中,BLOB用于存储二进制数据,如照片;而在MySQL中,BLOB也有类似的分类,包括TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB...
例如,Oracle和MySQL在处理大对象时有各自的API和策略。 总结,Hibernate通过`@Lob`注解支持BLOB和CLOB的持久化,开发者需要适当地将数据转换为对应的对象类型,然后使用Hibernate的CRUD操作进行保存和检索。同时,...
同时,Oracle的NCLOB和BFILE等非BLOB/CLOB类型用于存储特定类型的字符数据和大文件,这些在Java中也需要特殊处理。 在实际开发中,理解这些数据类型对应关系有助于编写高效的SQL查询,避免类型不匹配导致的错误。...
在实际应用中,可能还需要考虑性能优化,例如使用流式处理大文本数据,避免一次性加载全部内容到内存。此外,不同数据库管理系统(如MySQL、PostgreSQL、Oracle等)对Clob字段的支持和操作可能会有所不同,因此在...
使用这种自定义的CLOB聚合函数,你可以避免`WM_CONCAT`的长度限制问题,同时也能充分利用CLOB类型的优势处理大数据量的字符串合并。在实际应用中,这尤其适用于报告、分析或数据导出等场景,其中可能需要合并大量的...
例如,MySQL的`VARCHAR2`对应Oracle的`VARCHAR2`,但MySQL的`TINYINT`在Oracle中可能是`NUMBER(3)`,`BLOB`和`CLOB`在两个系统中都有,但处理方式不同。 3. **对象权限和安全模型**: MySQL的权限管理相对简单,而...
在IT行业中,数据库管理系统是...总的来说,理解不同数据库系统之间的数据类型对应关系对于开发跨平台的数据库应用至关重要,这有助于确保数据正确地在MySQL和Oracle之间迁移,同时在Java代码中正确地处理这些数据。
- **最大Blob/Clob大小**: Oracle MySQL的最大Blob/Clob大小为128TB,而MySQL的最大Blob/Clob大小为4GB。 - **最大CHAR大小**: Oracle MySQL的最大CHAR大小为32KB-1,MySQL的最大CHAR大小为64KB。 - **最大NUMBER...
这个过程通常涉及到Blob和Clob数据类型,它们是Java中的两种特殊对象,用于存储大对象(LOB)。Blob用于存储二进制数据,如图片、音频或视频文件,而Clob则用于存储字符数据,比如长文本。以下是如何使用Java处理...
在IT领域,数据库管理系统(DBMS)如Oracle、MySQL和SQL Server 2000是处理大量数据的核心工具。这些系统对于大数据对象的操作至关重要,尤其是对于存储图像、音频、视频等非结构化数据的企业级应用。本文将深入探讨...