对于我被分配的大学作业,我有一个 Prize 对象,其中包含文本、图像或视频内容。我想将此信息保存到 Apache Derby 数据库(将在低功率 PDA 上运行)中的 BLOB 字段中。如何将此数据添加到数据库中?
提前致谢。
在这篇文章中,使用 Derby 管理非结构化数据的五个步骤, 您可以阅读如何执行此操作。
它描述了如何在 Apache Derby 中使用 JDBC 将二进制数据插入到具有 BLOB 数据类型的列中。
我假设您将通过 JDBC 进行连接。如果是这样,只需编写 SQL 并查看 PreparedStatement 的 setBlob 方法。应该很简单。
序列化是一种简单的方法,但是如果可能的话,你可以让它看起来像一个真正的数据库表,其结构包含id (bigint)
, datatype (smallint)
,creationdate (date)
并data (blob)
专门制作客户端代码来保存对象的数据。这样,您可以进行类似的搜索"get all video prizes created between January 1st 2008 and January 15th 2009"
,并且如果您的类更改太多而导致序列化停止工作,它不会分解旧数据。
如果需要,这种解决方案将来也很容易扩展;我知道这是一项学校作业,这种需求很可能永远不会浮出水面,但如果你的老师/教授知道他的东西,我敢打赌他愿意为以这种方式进行这项练习多加一两分,因为这需要一点时间更多的时间,并表明您可以采取措施提前准备应对不断变化的软件开发环境。
如果您使用的是 Netbeans(我假设 Eclipse 具有类似的功能),您可以设置数据库模式并从数据库创建新的 Java 实体类,它将为您生成适当的 JPA 类。
http://hendrosteven.wordpress.com/2008/03/06/simple-jpa-application-with-netbeans/
这很好,因为它允许您专注于您的代码而不是数据库粘合代码。
最好的解决方案是使用 Derby,因为它一直是通过 Java 开发的多平台应用程序。