//JDBC操作大的文本数据是通过IO字符流操作
public class ClobTest {
public static void main(String[] args) throws SQLException, IOException {
// create();
read();
}
查询:
static void read() throws SQLException, IOException {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
// 2.建立连接
conn = JdbcUtils.getConnection();
// conn = JdbcUtilsSing.getInstance().getConnection();
// 3.创建语句
st = conn.createStatement();
// 4.执行语句
rs = st.executeQuery("select big_text from clob_test");
// 5.处理结果
while (rs.next()) {
Clob clob = rs.getClob(1);
Reader reader = clob.getCharacterStream();
// 或者用这种方式
// reader = rs.getCharacterStream(1);
// String s = rs.getString(1);
File file = new File("JdbUtils_bak.java");
Writer writer = new BufferedWriter(new FileWriter(file));
char[] buff = new char[1024];
for (int i = 0; (i = reader.read(buff)) > 0;) {
writer.write(buff, 0, i);
}
writer.close();
reader.close();
}
} finally {
JdbcUtils.free(rs, st, conn);
}
}
添加:
static void create() throws SQLException, IOException {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
// 2.建立连接
conn = JdbcUtils.getConnection();
// conn = JdbcUtilsSing.getInstance().getConnection();
// 3.创建语句
String sql = "insert into clob_test(big_text) values (?) ";
ps = conn.prepareStatement(sql);
File file = new File("src/cn/itcast/jdbc/JdbcUtils.java");
Reader reader = new BufferedReader(new FileReader(file));
ps.setCharacterStream(1, reader, (int) file.length());
// ps.setString(1, x);//若文本很大这种试可能会造成内存溢出
// 4.执行语句
int i = ps.executeUpdate();
reader.close();
System.out.println("i=" + i);
} finally {
JdbcUtils.free(rs, ps, conn);
}
}
}
分享到:
相关推荐
在Java的JDBC环境中,处理Oracle数据库中的CLOB...以上是处理Oracle CLOB字段的关键知识点,理解这些概念对于高效地使用JDBC操作大文本数据至关重要。在实际项目中,还需要考虑性能优化、错误处理和资源管理等细节。
本示例以"读取txt-jdbc导入百万级数据.rar"为主题,探讨了如何利用Spring的JdbcTemplate工具处理百万级别的文本数据并将其导入数据库。以下是对这个主题的详细解释: 1. **JDBC (Java Database Connectivity)**:...
通过合理利用JDBC的批量处理功能,开发者可以优化数据操作的性能,特别是在处理大数据量时,能有效减少数据库的负担,提高系统的整体响应速度。因此,理解和掌握批量处理是每个Java数据库开发者必备的技能之一。
在数据驾驶舱中,Solr可以作为数据源,特别是当需要对文本数据进行高级搜索和分析时。 3. **ELASTIC (Elasticsearch)**:Elasticsearch是另一个流行的搜索引擎和分析引擎,同样基于Lucene。它支持实时的数据存储、...
- **MySQL**: 支持`TEXT`和`LONGTEXT`类型,用于存储较大的文本数据。 - **SQL Server**: 使用`NTEXT`类型,用于存储Unicode文本。 - **Oracle**: 支持`CLOB`类型,用于存储大的文本数据。 - **DB2**: 也支持`...
保存大文本_分页_批处理”揭示了本文将要讨论的是Java数据库连接(Java Database Connectivity, JDBC)的基础知识,主要包括如何在数据库中处理大文本数据、实现分页查询以及利用批处理提高数据库操作效率这三个核心...
BLOB用于存储非文本的二进制数据,如图片、音频和视频文件,而CLOB则用于存储大文本数据,如长篇文章或文档。 接着,文章详细讲述了JDBC在访问Oracle数据库中的LOB数据时的作用。JDBC是Java连接关系数据库的标准...
2. **字符串类型**:如`VARCHAR`(可变长度字符串)、`CHAR`(固定长度字符串)、`TEXT`(大文本)等,在JDBC中通常映射为`java.lang.String`。 3. **日期/时间类型**:包括`DATE`(日期)、`TIME`(时间)、`...
当我们在处理大型文本数据时,例如XML文档、长篇文章或者大段代码,数据库通常会提供CLOB(Character Large Object)类型来存储这类数据。本主题主要探讨如何使用JDBC有效地操作Oracle数据库中的CLOB类型字段,包括...
CLOB类型用于存储大量的文本数据,而BLOB则适用于二进制大数据,如图片或视频。当插入或更新包含大字段的数据时,ORACLE会采用不同的策略以优化存储和性能。 1. **LOB存储模式**: - **临时LOB**:数据存放在内存...
在这个案例中,可能是一个包含数据的文本文件或CSV文件,这些数据将被用于后续的数据库操作。 Phoenix是一个开源的SQL层,它允许通过JDBC(Java Database Connectivity)接口与Hbase进行交互。Phoenix将SQL语句转换...
2. 数据交换:在Web服务中,XML作为数据交换格式,JDBC则负责将接收到的XML数据转换为数据库操作。 3. 报表生成:XML可以用于存储报表模板,JDBC获取数据库数据填充模板,生成报表。 4. 配置数据库连接:XML文件可以...
### JDBC 数据库连接写法详解 #### 一、引言 在Java开发中,与数据库进行交互是一项非常常见的任务。JDBC(Java Database Connectivity)是...希望这些信息能帮助你在Java开发中更好地使用JDBC进行数据库连接和操作。
通过JDOM,开发者可以轻松地创建、读取、修改和保存XML文档,其功能包括元素、属性、文本、注释等节点的操作。JDOM还支持XPath表达式,用于快速定位XML文档中的特定节点。 **Sqljdbc.jar和Sqljdbc4.jar** 这两个JAR...
接下来是一个具体的示例,展示了如何使用JDBC操作包含Blob和Clob字段的数据库表。 1. **创建包含Blob和Clob字段的表**: ```java String url = "jdbc:derby:clobberyclob;create=true"; Class.forName("org....
总之,理解和掌握CLOB在JDBC中的处理方式是开发与Oracle数据库交互的应用程序时的重要技能,尤其是当处理大量文本数据时。确保高效、安全地操作这些大字段,可以提高应用程序的性能和用户体验。
本篇文档介绍了如何通过JDBC操作连接MySQL数据库。 首先,需要导入JDBC驱动程序到Java项目中,这是使用JDBC连接数据库的前提。MySQL数据库的JDBC驱动程序名为"com.mysql.jdbc.Driver",在Java 6及以上版本中,MySQL...
JDBC支持各种数据类型,包括基本数据类型(如INT、VARCHAR)、日期类型(DATE、TIME、TIMESTAMP)、大文本类型(CLOB)和大二进制对象(BLOB)。 #### 六、DAO 设计模式 DAO(Data Access Object)设计模式用于...
与传统的文本或数字字段不同,BLOB字段有自己的游标(Cursor),这使得直接写入数据变得复杂。为了写入BLOB数据,首先需要创建一个空的BLOB实例,然后获取这个BLOB的游标,最后才能真正地向其中写入数据。 #### 2. ...
最后,JDBC还支持处理大型对象,如字符大对象CLOB(Character Large Object)和二进制大对象BLOB(Binary Large Object),用于存储大量文本和二进制数据。 RowSet是JDBC的另一个扩展,它是一种离线数据视图,支持...