使用Java将图像存储在SQL Server数据库中

domain.hirpara

我正在尝试使用过程将图像保存在SQL-SERVER数据库中。我具有带有输入参数的PROCEDURE名称,但没有过程语法。

BufferedImage imm = ImageIO.read(new File("C:\\MY DATA\\Release 2\\18.jpg"));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(imm, "jpg", baos );
baos.flush();
byte[] immAsBytes = baos.toByteArray();
baos.close();

con.setAutoCommit(true);            
CallableStatement statement = con.prepareCall(query); 
ByteArrayInputStream baisForIndex2 = new ByteArrayInputStream(immAsBytes);
ByteArrayInputStream baisForIndex3 = new ByteArrayInputStream(immAsBytes);
statement.setDate(1, sqlDate);
statement.setBinaryStream(2, baisForIndex2, immAsBytes.length);
statement.setBinaryStream(3, baisForIndex3, immAsBytes.length);
statement.executeUpdate();

错误消息:操作数类型冲突:nvarchar与图像不兼容。SQLSTATE:S0002错误代码:206错误代码:0

我想要的是Java与IMAGE类型的sql-server DB的兼容类型。

穆雷尼克

将流插入到Blob中时,JDBC驱动程序将从中读取指定的长度,并且完成后不会重置该流。在您的示例中,将此流用于占位符2,然后再次用于占位符3,并每次指定基础byte []的整个长度。这样,当驱动程序到达占位符3时,流已耗尽,无法读取。

一种解决方案是使用两个流对象:

CallableStatement statement = con.prepareCall(query); 
ByteArrayInputStream baisForIndex2 = new ByteArrayInputStream(immAsBytes);
ByteArrayInputStream baisForIndex3 = new ByteArrayInputStream(immAsBytes);
statement.setDate(1, sqlDate);
statement.setBinaryStream(2, baisForIndex2, immAsBytes.length);
statement.setBinaryStream(3, baisForIndex3, immAsBytes.length);
statement.executeUpdate();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在SQL Server数据库中存储图像

来自分类Dev

在SQL Server数据库中存储图像

来自分类Dev

数据库中的SQL Server对象

来自分类Dev

在SQL Server中复制数据库

来自分类Dev

在SQL Server中收缩数据库

来自分类Dev

使用Parameter.Dbtype将图像插入SQL Server数据库(存储过程)

来自分类Dev

如何将图像检索到其源存储在SQL Server数据库中的html表中?

来自分类Dev

将 XML 文件插入 SQL Server 中的数据库

来自分类Dev

数据库备份中的元数据-SQL Server 2008

来自分类Dev

如何回滚SQL Server数据库中的数据?

来自分类Dev

在SQL Server中归档数据库表:是相同的数据库还是不同的数据库?

来自分类Dev

如何在SQL Server数据库中存储加密的图像

来自分类Dev

如何使用SQL Server中的隐藏数据库对象?

来自分类Dev

使用Java将arraylist值插入到SQL Server数据库中

来自分类Dev

如何通过传递数据库名称访问WPF中的SQL Server数据库

来自分类Dev

SQL Server 2005如何从数据库转储中创建数据库

来自分类Dev

在RODBC中为SQL Server数据库更改默认数据库

来自分类Dev

使用delphi中的存储过程将图像存储在数据库中

来自分类Dev

如何将Access数据库与SQL Server同步,在Access数据库中所做的更改应反映在SQL Server数据库中

来自分类Dev

如何将Access数据库与SQL Server同步,在Access数据库中所做的更改应反映在SQL Server数据库中

来自分类Dev

将图像插入ASP.NET中的本地SQL Server数据库

来自分类Dev

SQL Server 2008中的压缩数据库备份

来自分类Dev

SQL Server 2014中的数据库角色

来自分类Dev

在特定数据库中创建SQL Server视图

来自分类Dev

如何在SQL Server中创建数据库的别名

来自分类Dev

更改SQL Server Management Studio中的默认数据库

来自分类Dev

在SQL Server数据库中查找分区架构定义

来自分类Dev

插入SQL Server数据库中的文本被截断

来自分类Dev

用户访问SQL Server中的数据库文件

Related 相关文章

  1. 1

    如何在SQL Server数据库中存储图像

  2. 2

    在SQL Server数据库中存储图像

  3. 3

    数据库中的SQL Server对象

  4. 4

    在SQL Server中复制数据库

  5. 5

    在SQL Server中收缩数据库

  6. 6

    使用Parameter.Dbtype将图像插入SQL Server数据库(存储过程)

  7. 7

    如何将图像检索到其源存储在SQL Server数据库中的html表中?

  8. 8

    将 XML 文件插入 SQL Server 中的数据库

  9. 9

    数据库备份中的元数据-SQL Server 2008

  10. 10

    如何回滚SQL Server数据库中的数据?

  11. 11

    在SQL Server中归档数据库表:是相同的数据库还是不同的数据库?

  12. 12

    如何在SQL Server数据库中存储加密的图像

  13. 13

    如何使用SQL Server中的隐藏数据库对象?

  14. 14

    使用Java将arraylist值插入到SQL Server数据库中

  15. 15

    如何通过传递数据库名称访问WPF中的SQL Server数据库

  16. 16

    SQL Server 2005如何从数据库转储中创建数据库

  17. 17

    在RODBC中为SQL Server数据库更改默认数据库

  18. 18

    使用delphi中的存储过程将图像存储在数据库中

  19. 19

    如何将Access数据库与SQL Server同步,在Access数据库中所做的更改应反映在SQL Server数据库中

  20. 20

    如何将Access数据库与SQL Server同步,在Access数据库中所做的更改应反映在SQL Server数据库中

  21. 21

    将图像插入ASP.NET中的本地SQL Server数据库

  22. 22

    SQL Server 2008中的压缩数据库备份

  23. 23

    SQL Server 2014中的数据库角色

  24. 24

    在特定数据库中创建SQL Server视图

  25. 25

    如何在SQL Server中创建数据库的别名

  26. 26

    更改SQL Server Management Studio中的默认数据库

  27. 27

    在SQL Server数据库中查找分区架构定义

  28. 28

    插入SQL Server数据库中的文本被截断

  29. 29

    用户访问SQL Server中的数据库文件

热门标签

归档