public void updateCellModel(String sql, String cellfile, String contain, String cellXml) {
try {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
con = getSession().connection();
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
if(null!=cellfile){
CLOB clob = (CLOB) rs.getClob(1);
BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream());
BufferedReader in = new BufferedReader(new StringReader(cellfile));
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
out.close();
in.close();
}
if(null!=contain){
CLOB clob1 = (CLOB) rs.getClob(2);
BufferedWriter out1 = new BufferedWriter(clob1.getCharacterOutputStream());
BufferedReader in1 = new BufferedReader(new StringReader(contain));
int c1;
while ((c1 = in1.read()) != -1) {
out1.write(c1);
}
out1.close();
in1.close();
}
if(null!=cellXml){
CLOB clob3 = (CLOB) rs.getClob(3);
BufferedWriter out3 = new BufferedWriter(clob3.getCharacterOutputStream());
BufferedReader in3 = new BufferedReader(new StringReader(cellXml));
int c3;
while ((c3 = in3.read()) != -1) {
out3.write(c3);
}
out3.close();
in3.close();
}
}
} catch (Exception e) {
e.printStackTrace();
throw new BusinessException("执行SQL语句时出错!", e);
}finally{
if(rs != null){
rs.close();
rs = null;
}
if(ps != null){
ps.close();
ps = null;
}
}
} catch (Exception e) {
e.printStackTrace();
throw new BusinessException("保存出错!", e);
}
}
分享到:
相关推荐
### Java读取大字段BLOB类型的详细解析 在数据库中,`BLOB`(Binary Large Object)类型通常用于存储大量的二进制数据,如图像、音频文件或文档等。而在Java开发过程中,处理这些大数据量的`BLOB`字段是一项挑战性...
因此,"jdbc批量插入大字段"这个话题旨在探讨如何高效地通过Java JDBC来实现Blob字段的批量插入,以提高性能。 首先,我们需要了解JDBC(Java Database Connectivity),它是Java编程语言与各种数据库之间通信的...
总结来说,BBoss Persistent 1.0.2在处理CLOB和BLOB这类大字段时,通过缓存策略、流式处理、事务管理和源码可读性等方面,为开发者提供了高效且可靠的解决方案。对于需要处理大量文本或二进制数据的应用来说,这是一...
在实际应用中,需要确保代码正确处理了不同数据库之间的数据类型差异,比如MySQL的TEXT到ORACLE的CLOB,同时考虑到大字段的处理。 总结来说,处理ORACLE数据库中的大字段数据时,应关注存储模式选择、批量操作、...
总之,“读写大字段内容到数据库”涉及数据库操作、JDBC API的使用、DAO模式的实践以及流处理和异常管理等多方面知识。`BlobDAO.java`文件很可能是实现这些功能的一个具体示例,通过分析和学习这个代码,我们可以更...
1. **保存/更新大字段**:在保存或更新实体时,使用SessionFactory的`save()`或`update()`方法,Hibernate会自动处理大字段的存储。 ```java Session session = sessionFactory.openSession(); Transaction tx = ...
- **准备环境**:首先确保已经安装了Oracle数据库客户端和相应的驱动程序,例如JDBC驱动,以便通过编程语言(如Java、Python等)与数据库交互。 - **连接数据库**:使用相应的连接字符串、用户名和密码建立与...
**处理大字段数据**: 对于大数据类型,如BLOB(Binary Large Object)和CLOB(Character Large Object),JDBC提供了专门的方法来处理。例如,`PreparedStatement.setBlob()`用于设置BLOB数据,`ResultSet.getBlob...
3.特殊类型(date--日期,clob--大字段,blob--二进制) 的操作. 4.元数据(MetaData)的操作:包括 parameter , DB , ResultSet的元数据,配合反射,大幅度提升程序的灵活性. 5.储存过程和CRUD的操作,获得Statement可以添加...
Oracle数据库中的CLOB(Character Large Object)类型是用来存储大量字符数据的,比如长文本、XML文档等。在Java中,当我们需要通过JDBC(Java ...确保高效、安全地操作这些大字段,可以提高应用程序的性能和用户体验。
本文将深入探讨Java与Oracle数据库在处理大字段,如BLOB类型数据时的交互方法。Oracle数据库是业界广泛使用的数据库管理系统,而Java作为多平台支持的编程语言,常用于开发与数据库交互的应用程序。在这个主题中,...
在Oracle数据库存储超大文件时、以流的方式分段读取和保存,避免内存溢出。本工具类提供两个方法: 1、读取文件保存到Oracle数据库Blob字段(支持超大文件) 2、从数据库中读出大字段到文件中(分块读取)
CLOB与BLOB的主要区别在于,BLOB用于存储二进制数据,而CLOB则专门用于存储字符数据。CLOB可以使用标准的SQL语句进行操作,例如INSERT、UPDATE、DELETE和SELECT等。 #### 读取CLOB字段的方法 在Oracle中读取CLOB...
2. **大字段更新或插入**:如果试图更新或插入的数据字段包含大量的文本,如BLOB或TEXT类型,也可能触发此异常。 3. **大值参数**:在使用PreparedStatement时,如果某个参数值过大,可能会导致数据包过大。 要解决...
### Spring与Hibernate处理大字段(CLOB/BLOB) 在企业级应用开发中,经常会遇到需要存储大量文本或二进制数据的情况,这时就需要用到数据库的大字段类型如CLOB(Character Large Object)和BLOB(Binary Large ...
最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了。 blob字段直接用 select * from table_name where column like ‘%%'查找的时候是不能实现...
3. **分块传输**:如果无法更改数据类型或升级驱动,可以考虑在应用层面分块读写大数据,每次处理一部分,而不是一次性加载整个大字段。 4. **设置参数**:在某些情况下,可以通过调整JDBC连接参数来扩大字段长度...
- **大字段(BLOB)管理**:提供了方便的BLOB数据管理功能,适用于图片、音频、视频等大型文件的存储和检索。 - **完全包含JDBC**:提供了全面的JDBC支持,方便数据库操作。 - **明晰的JDBC事务处理**:确保数据的一致...
5. **大字段迁移**:BLOB和LONG字段的迁移,可通过DB2迁移工具或编写INSERT脚本实现。 6. **同义词迁移**:需要编写SQL脚本来创建同义词。 7. **序列迁移**:DB2序列有独立和嵌入两种形式,迁移时注意处理ORACLE序列...
异构数据库的导入导出一直是个大难题,一般的工具配置复杂,尤其是不支持LOB这样的大字段数据,我们的这个工具不仅配置简单,而且具有以下几个特点。 1、速度非常快,这个因为取决于系统环境,这个只有谁用...