2012-11-14 28 views
-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 

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

+0

当然可以。 Blob类型就是为了这个目的。我猜你的数据将被存储为字节数组。 – kosa

+0

创建一些表格。其中一个将有一个BLOB类型的列。这将包含本来是文件的数据。 – Randy

+0

@ Nambari,兰迪你们可以扩张吗?我是新来的..从哪里我可以开始n东西 –

回答

2

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

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

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

+0

谢谢:)嗯,这个职位是我-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 
} 
+0

为eg.how +1我可以在java中访问它们吗? –

+0

您必须了解如何使用JDBC提供程序。 JDBC提供了一层对象来管理数据库连接和发出命令。我不能更准确地帮助你,因为我不是Java-boy :) – LittleSweetSeas

相关问题