-1

我是数据库处理的新手。我正在用 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

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

4

2 回答 2

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
}
于 2012-11-14T16:32:03.840 回答
2

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

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

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

于 2012-11-14T16:30:38.660 回答