【问题标题】:What should be the data type for an Image in Get-Set JavaGet-Set Java中图像的数据类型应该是什么
【发布时间】:2015-11-27 23:26:23
【问题描述】:

我是一个新手,我正在通过 JavaTPoint 网站自学,我已经在这个主题上http://www.javatpoint.com/registration-form-in-jsp

我现在要做的不是用户,而是将 Car 添加到我的数据库中,我什么都懂,但是只有一件事我不知道,即 Image 的数据类型。我试图用谷歌搜索解决方案,但它令人困惑。我将展示一小部分专注于 Image 的代码,这是我执行 Get-Set 部分的 Java 类。

谁能帮我在这个图像文件中放入什么数据类型,以便我可以将它放入我的 CarDao(我正在关注的教程的 RegisterDao)中,以便我可以将其设置为

--> ps.setWhatDataType(9,c.getcarImage());

我在我的 MySQL 中将这个图像声明为 longblob,就像我在一些示例中经常看到的那样。

public class Car {

private WhatDataType carImage;

public WhatDataType getcarImage() {
    return carImage;
}

public void setcarImage(WhatDataType carImage) {
    this.carImage = carImage;
}

【问题讨论】:

  • 这取决于您以后希望如何使用返回的信息。您可以将指向图像的链接作为字符串返回,也可以返回表示图像数据的字节数组(如果您以后想从其他地方生成真实图像并且您知道所有必要的元数据)。如果您想获取表示图像的对象,还可以返回 java.awt.Image 或其他子类型。
  • 那么我想做的事是不可能的还是错的先生?感谢您尽早纠正我,我认为它会以同样的方式工作。我会尝试搜索你说的那些东西,非常感谢你

标签: java jsp types get set


【解决方案1】:

您尝试做的事情很棘手。将图像作为二进制字段存储在数据库中应该是小菜一碟,但实际上并非如此。二进制字段通常映射到类型byte[],但棘手的部分是将图像转换为byte[] 以便将其存储到数据库中,然后从byte[] 转换回图像以显示图像。如果您真的想这样做,我无法帮助您,因为这实际上取决于您要处理的图像类型。

如果您的作业实际上不涉及图像,而您只想实现接口,那么byte[] 应该这样做。

另一种实用且简单的方法是只使用String,并让字符串包含图像文件的文件名。在这种情况下,您的数据库将不包含图像的实际二进制数据,仅包含它们的文件名。

【讨论】:

  • 先生,我只是按照 JavaTPoint 教程中的步骤进行操作,并且我正在尝试使用 Cars 而不是 Person,只是为了与众不同。我制作了一个表格来放置我需要的输入,这只是我第一次包含图像,使用 String 会很有趣,因为我只依赖文件名?我应该输入什么来学习这种方法?非常感谢先生注意到我:)
  • 只需将WhatDataType 替换为String
  • 也可以叫它getCarImageFilename()而不是getCarImage()
  • 哦,好吧,我试试看,我是否还需要更改我的数据库中 carImage 的数据类型?目前它在我的数据库中是 longblob
  • 请问我在附加图像然后将其添加到我的数据库时该怎么做,它将如何直接放在我想要的路径上?
猜你喜欢
  • 1970-01-01
  • 2014-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-21
  • 1970-01-01
  • 2017-03-20
  • 2021-03-20
相关资源
最近更新 更多