更新DB上的大字段

long updateDnRepositoryContent(long fileId, byte[] content) throws Exception {
		ResultSet rs = null;
		String sql = "";
		PreparedStatement statement = null;

		try {

			// sql =
			// "UPDATE USR_DNREPOSITORY SET FILE_CONTENT=?,UPLOADDATE=SYSDATE,UPLOADUSER=? WHERE FILEID=?";
			sql = "SELECT FILE_CONTENT FROM USR_DNREPOSITORY WHERE FILEID=? for update";

			// ********** end
			logger.info("updateDnRepositoryContent sql is: " + sql);

			statement = connection.prepareStatement(sql);

			statement.setLong(1, fileId);
			rs = statement.executeQuery();
			if (rs.next()) {
				// **得到BLOB字段
				Blob blob = rs.getBlob(1);
				// 获取向blob写入二进制数据的输出流
				// 1为起始字节位置
				OutputStream os = blob.setBinaryStream(1);
				os.write(content);
				os.close();
			}

		} catch (Exception sqle) {
			throw new SQLException(sqle.getMessage() + " - [ " + sql + " ]");
		} finally {
			if (rs != null)
				rs.close();
			if (statement != null)
				statement.close();
		}

		return fileId;
	}

 也可以直接update bytes 数组,如:

public void updateFileById(String fileId, byte[] contentBytes) throws Exception {
		String sql = "";
		PreparedStatement statement = null;

		try {
			sql = "update USR_DNREPOSITORY set FILE_CONTENT = ? WHERE FILEID=?";

			statement = connection.prepareStatement(sql);

			statement.setBytes(1, contentBytes);
			statement.setString(2, fileId);
		
			statement.executeUpdate();

		} catch (Exception sqle) {
			throw new SQLException(sqle.getMessage() + " - [ " + sql + " ]");
		} finally {
			if (statement != null)
				statement.close();
		}
		
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值