2012-11-14 74 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

相關問題