javablobbyte的简单介绍

java中向oracle数据库blob字段中插入byte[]相关问题, 高人来.

你把一下的代码加入到一个类里就可以了,我已经测试过了,由于字数的限制不能把完整的类发上来。

String PSQL = “insert into TESTBLOB(NUMCONTENTID,BLOBCONTENT) ” + “values(?,EMPTY_BLOB())”;

String SSQL = “select BLOBCONTENT from TESTBLOB where NUMCONTENTID = ? for update”;

String USQL = “update TESTBLOB set BLOBCONTENT = ? where NUMCONTENTID = ?”;

public WriteBLOB() throws Exception {

Connection conn = null;

try {

conn = getConnection();

conn.setAutoCommit(false);

ByteBuffer bb = ByteBuffer.allocate(10836);

bb.position(0);

bb.putInt(1);

//调用 insertBLOB 方法 的contentid 应该使用序列这里为了简单就直接写死了

//下面的插入方式应该是你想要的方法 在数据库中会看到 0000 0001 0000 0000 0000….

//但是你这里好像没有真正的是用 ByteBuffer

byte [] b1 = bb.array();

insertBLOB(conn, 1, b1);

//下面是使用 ByteBuffer 后的插入 在数据库中会看到 0000 0001

//不知道你想要什么样子的,你自己选择不吧

bb.flip();

byte [] b2 = new byte [bb.remaining()];

bb.get(b2);

insertBLOB(conn, 2, b2);

} catch (Exception ex) {

ex.printStackTrace();

conn.rollback();

} finally {

if (conn != null)

conn.close();

}

}

public void insertBLOB(Connection conn, int contentid, byte[] content)

throws Exception {

PreparedStatement pstmt = null;

PreparedStatement pstmt2 = null;

int id = contentid;

try {

pstmt = conn.prepareStatement(PSQL);

pstmt2 = conn.prepareStatement(USQL);

pstmt.setInt(1, id);

try {

pstmt.executeUpdate();//在数据库中插入空对象

} catch (SQLException ex) {

ex.printStackTrace();

}

pstmt = conn.prepareStatement(SSQL);

pstmt.setInt(1, id);

ResultSet rs = pstmt.executeQuery();//查询新插入的记录

oracle.sql.BLOB pc = null;

while (rs.next()) {

pc = (oracle.sql.BLOB) rs.getBlob(1);

}

byte[] data = content;

pc.putBytes(1, data);

pstmt2.setBlob(1, pc);

pstmt2.setInt(2, id);

pstmt2.executeUpdate();

} finally {

try {

pstmt.close();

pstmt2.close();

} catch (Exception EE) {

}

}

return;

}

javablobbyte的简单介绍

java 中 blob转字符串?

//字符串转blob

String str=”哈哈哈哈哈哈”;

java.sql.Blob bl=new SerialBlob(str.getBytes());

//blob转字符串

BufferedReader bf=new BufferedReader(new InputStreamReader(bl.getBinaryStream()));

String temp=””;

StringBuffer sb=new StringBuffer();

while((temp=bf.readLine())!=null)

{

sb.append(temp);

}

System.out.println(sb.toString());

java blob byte[] 互换(jdbc中)

觉得文件麻烦就在存之前转换为String型 数据库取出后在转换成byte[]

不知道还有没有别的方法

Java中向Oracle数据库Blob字段中插入byte[]相关问题, 高手来

你的问题和 blob 没有关系。在ByteBuffer 里存的数字就是你在 plsql 看到的那样。请仔细理解 ByteBuffer。

以下是我针对你的问题作的一个例子,你执行一下。

import java.nio.ByteBuffer;

public class TestByteBuffer {

public static void main(String[] args) {

ByteBuffer bb = ByteBuffer.allocate(10836);

bb.position(0);

bb.putInt(1);

System.out.println(“赋值后buff的状态 :”+bb);

byte [] b1 = bb.array();

//以下打印的数组不是真正的数值,只是开辟空间后的一个排列顺序

for (int i = 0; i b1.length; i++) {

System.out.print(b1[i]);

}

System.out.println();

bb.flip();

System.out.println(“反转后buff的状态 :”+bb);

byte [] b2 = new byte [bb.remaining()];

//b2中的数字才是buff中真实的数字,千万不要混淆。

bb.get(b2);

System.out.print(“从 buff 中取到的数值 :”);

for (int i = 0; i b2.length; i++) {

System.out.print(b2[i]);

}

System.out.println();

System.out.println(“取值后buff的状态 :”+bb);

}

} 答案补充 按照你的意思,我写了一个类,已经实现了你的要求。可是我现在最多只能补充回答 500 个字,没有办法发给你。

我已经发到以下地址了,你去看一下吧,应该可以的。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月25日 17:27:38
下一篇 2024年3月25日 17:36:53

相关推荐

  • thinkpadedgelinux的简单介绍

    如何为ThinkPadedgee431选cpu 1、考虑到散热,建议升级到i7 3612QM四核八线程处理器.因为笔记本出厂时并没有为用户想到升级CPU,所以升级的CPU的发热量不能太高,因为该电脑配备的i3处理器功耗是35W,所以选择i7 3612QM四核八线程处理器升级是池合适的。 2、笔记本电脑换CPU需要借助专业的工具的,并且不是所有的处理器都可以上…

    2024年5月19日
    4000
  • java设置http响应码的简单介绍

    java的HTTP请求:返回的响应为乱码,转码根本不起作用,请看下面代码。跪… 1、在服务端接收到参数时,iso-8859-1转gbk,无效。 在发送请求前将中文参数转码,utf-8转iso-8859-1,无效。 2、byte[] ba = method.getResponseBody();String str= new String(ba,UT…

    2024年5月19日
    4000
  • 找黑客学习app的简单介绍

    红客网(专注网络安全,分享黑客技术) 1、首先,你需要注册一个账号才能进入红客网的学习交流平台。在红客网的首页上,你可以看到右上角的“注册”按钮,点击后即可进入注册页面。在注册页面中,你需要填写自己的用户名、邮箱和密码等信息,并输入验证码完成注册。 2、红客网(https://)是一个专注于黑客技术与网络安全的综合平台。作为一个红客(黑客)的聚集地,红客网为…

    2024年5月19日
    4100
  • java.rmi下载的简单介绍

    Java调用wsdl,怎么实现 call.setTargetEndpointAddress( new java.net.URL(endpoint) );//为Call设置服务的位置 // 由于需要认证,故需要设置调用的SOAP头信息。 = client.invoke(method, paramArray);第一步是建立连接,第二步就是调用指定的方法,并传入指…

    2024年5月19日
    3900
  • linuxrelatime的简单介绍

    linux系统中为什么还会存在root用户权限都不够的文件? 文件的权限分所有者,用户组和其它人三个分组,可以分别设置权限;如果文件被设置了仅所有者有读取权限,组和其他人都没有任何权限的话,root也是不能直接访问的。 chmod编辑权限。1代表执行,2代表写入,4代表读取。 asdf能删除说明硬盘挂载没问题,肯定是针对目录1进行了一些操作。如果设置里i属性…

    2024年5月19日
    3500
  • excel中qq号码补成邮箱的简单介绍

    excel表格中的QQ号码怎么批量转为QQ邮箱 打开表格点击智能工具箱。选中QQ号码。点击文本处理——插入文本——插入文本到结尾。弹出对话框。输入:@qq.com。点击确定,可以看到表格中的所有选中数据都变成了QQ邮箱账号。 a列为QQ号码;在B列输入:A1&“@QQ.COM 回车;见图一:在图一中,鼠标双击红箭头所指的小黑方块,就会出现下图,自动在…

    2024年5月19日
    4400
  • 黑客需要学习物理知识吗的简单介绍

    信息安全需要许多高中物理知识吗?具体是哪方面的~~~我的物理不好可以… 物理要求不高,数学要求倒是挺高的。不过这些数学知识都是再大学学的。另外,现在学校直接招信息安全的不多,研究生的时候还可以,本科多会涉及密码学。 完全可以…… 这个专业 与物理关系不大…… 除非到你 专研到很深很深了…… 要求到懂些电路的知识。 可以,以前我物理也不好,后来也是…

    2024年5月19日
    4500
  • javaaliasing的简单介绍

    java中如何用double来精确的绘制图片 光的反射的话,你用的是直线,一个笔记本的屏幕1368*800,那你说你用int型,那他的误差可以忽略不计。要是用度数的话可以用一下吧方法。 举个通俗一点的例子,哈士奇是狗的一种,假设哈士奇是一个子类,狗是一个父类,创建一个子类对象当然是用子类来new,虽说哈士奇是狗的一种,但是哈士奇的特征不是所有的狗狗都有的。 …

    2024年5月19日
    4000
  • 网络安全黑板报知识内容的简单介绍

    网络安全教育黑板报参考设计图 1、信息安全 网络中的信息安全主要包括两个方面:信息储存安全和信息传输安全。信息储存安全是指如何保证静态存储在联网计算机中的信息不会被非授权的网络用户非法使用。 2、安全教育黑板报图片5 安全教育黑板报图片6 安全教育黑板报图片7 安全教育黑板报图片8 安全教育儿歌 (一)交通安全 走路要走人行道,过路要走横行道,红灯停,绿灯行…

    2024年5月19日
    3700
  • 深圳excelPPT个人培训的简单介绍

    想学office的word,excel,ppt,在哪里报名培训呢?最好能拿证! 学计算机的地方有以下几个:家里自学在家里购置电脑安装宽带,然后在网络上找视频教程或者报名网课进行学习,可以按照自己的兴趣选择课程,遇到问题也可以在线咨询或者直接在网上查找。 教育机构学,很多地方都有一些电脑学校,都有专门开设办公软件课程的,学基本的Word、Excel、ppt这些…

    2024年5月19日
    3200

发表回复

登录后才能评论



关注微信