-1

私はデータベース処理に不慣れです。データベースが必要なJavaでカラオケプレーヤーを作成しています。ハードディスクから直接素材(サウンドおよびテキストファイル)を取得する必要はありませんが、データベース(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

はい、可能です(OracleおよびJDBCでのBLOBサポートを参照)が、これを行うための一般的に受け入れられている方法は、ファイルをファイルシステムに保存してから、ファイルへのパスをデータベースに保存することです。

デスクトップアプリケーションを作成しているように見えるので、この情報にアクセスする方法を考える必要があります。これがローカルデータベースを使用するシングルユーザーアプリケーションである場合は、ローカルファイルシステム内のファイルとデータベース内のパスで問題ありません。

これが共有データベースを備えたマルチユーザーシステムである場合は、デスクトップアプリからの要求を処理するサーバーを作成することをお勧めします。データベース内のパスを検索し、ファイルを取得して、デスクトップアプリに返すことができます。

于 2012-11-14T16:30:38.660 に答える
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 に答える