【问题标题】:Can I have a database which only has text and sound files? [closed]我可以拥有一个只有文本和声音文件的数据库吗? [关闭]
【发布时间】:2012-11-03 04:28:17
【问题描述】:

我是数据库处理的新手。我正在用 Java 创建一个卡拉 OK 播放器,我需要一个数据库。我不必直接从硬盘获取材料(声音和文本文件),但我想要一个数据库(SQL Server、Oracle 等)来存储它们,这样我就可以拥有一个可以引用/指向的对象他们。可以吗??

public class SoundPlayer extends JComponent
{

String windowName;
Clip clip;Clip clip2;
public static void main(String[] args) throws UnsupportedAudioFileException,     
IOException, LineUnavailableException, InterruptedException
{


JFrame f=new JFrame("hh");
f.getContentPane();

       f.pack();
f.setVisible(true);
}
private String String;

public SoundPlayer(File file) throws UnsupportedAudioFileException, IOException,  LineUnavailableException, InterruptedException {
   AudioInputStream ain=AudioSystem.getAudioInputStream(file);
   try
   {
       DataLine.Info info=new DataLine.Info(Clip.class,ain.getFormat());

       AudioFormat inFormat = ain.getFormat();
               clip=(Clip) AudioSystem.getLine(info);
//rest code

该对象应该在我的程序中可用,以便我可以访问它。

【问题讨论】:

  • 是的,你可以。 Blob 类型就是为此目的。我猜您的数据将存储为字节数组。
  • 创建一些表。其中之一将有一个 BLOB 类型的列。这将包含原本是文件的数据。
  • @Nambari,randy 你们可以扩展吗?我是新手……我可以从哪里开始 n 东西
  • 我不建议这样做。我会将所有文件(音频)直接存储到文件系统中,并且只将文件路径存储在数据库中(和其他信息)。你可以阅读这两个线程:stackoverflow.com/a/585235/1782913stackoverflow.com/a/1234707/1782913

标签: java sql database oracle database-design


【解决方案1】:

是的,这是可能的(查看 Oracle 和 JDBC 中的 BLOB 支持),但通常接受的方法是将文件存储在文件系统中,然后将文件的路径存储在数据库中。

由于您正在编写桌面应用程序,因此您必须考虑如何访问这些信息。如果这是一个带有本地数据库的单用户应用程序,那么您可以使用本地文件系统中的文件和数据库中的路径。

如果这是一个具有共享数据库的多用户系统,那么您可能需要创建一个服务器来处理来自桌面应用程序的请求。它可以在数据库中查找路径,获取文件,并将其返回给桌面应用程序。

【讨论】:

  • 谢谢 :) 好吧,这篇文章是 -1 吗?我是不是很傻?
【解决方案2】:

当然可以!

您可以在数据库中存储任何类型的值,甚至是物理文件中的原始二进制数据。

您可以创建这样的实体(只是 T-SQL 中的一个示例):

CREATE TABLE Singer{
ID int primary key,
Name varchar(50),
}

CREATE TABLE Songs{
ID int primary key,
IDSinger int references Singer(ID),
Title varchar(50),
Content varbinary(max) --here goes the raw binary of your file
}

【讨论】:

  • +1 for eg.我如何在 java 中访问它们?
  • 您必须了解如何使用 JDBC 提供程序。 JDBC 为您提供了一层对象来管理数据库连接和发出命令。我不能更准确地帮助你,因为我不是 Java 男孩 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多