0

申し訳ありませんが、回答が得られなかったため、この質問をするのは2回目です。

これは私のコードです

    try{
    File  f = new File("Database.sql");
    if(f.exists()){
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost/"+f.getName(),"","");
    }else{
        f.createNewFile();
        System.out.println("file created");
        //also do the connection
    }
    }catch(Exception ex){
       System.out.println(ex.getMessage());
    }

そしてここにエラーがあります:

通信リンク障害サーバーに正常に送信された最後のパケットは0ミリ秒前でした。ドライバはサーバーからパケットを受信して​​いません。

この質問の目的は次のとおりです。私は多くのユーザー向けのアプリケーションを作成しています。問題は、ユーザーがコンピューターについて何も知らないことであり、可能な限り単純にする必要があります。

では、ディレクトリパスを介してMS ACCESSのようにMYSQLに接続する方法はありますか

または、代わりに他の提案はありますか?

ありがとう 。

4

2 に答える 2

5

私の知る限り、MySQL の JDBC URL にファイル名をプラグインすることはできません。MySQL が実行されている必要があり、その TCP ポート経由で MySQL に接続する必要があります。何かのようなもの:

jdbc:mysql://localhost:3306/yourDatabaseName

http://dev.mysql.com/doc/refman/5.6/en/connector-j-reference-configuration-properties.htmlを参照してください。

于 2013-03-05T19:53:53.820 に答える
4

暫定的な定義

「 MySQL データベース ファイルに接続する」は不適切な言い回しです。

1 つは、データベースへのアクセスを許可する MySQL データベースサーバーに実際に接続します。そのため、接続する MySQL サーバーが必要です。これについては以下で詳しく説明します。

Database.sqlファイルはデータベース ダンプ ファイル、つまりダム (プレーン テキスト) ファイルです。SQL クエリを解釈した後、そこからデータを抽出するための特別なプロセス、つまりデータベース サーバーが必要です。

MS Access ファイルの操作に慣れているため、ファイルに接続できると想定しているかもしれません。私は Java や MS Access の専門家ではありませんが、Java から MS Access の「データベース」ファイルにアクセスすることは、実際にはMicrosoft の ODBCなどのミドルウェアサーバーに接続することを意味することを理解していません。

答え

ディレクトリ パスを介してMySQL データベースサーバーに接続する方法はありません。唯一のネイティブな方法は次のとおりです。

  • TCP
  • ローカルソケット (Unix サーバーのみ)
  • 名前付きパイプ (Windows サーバーのみ)
  • 共有メモリ (Windows サーバーのみ)

私が認識していない他のプロトコルを提供するサードパーティのソフトウェアがいくつか存在する可能性がありますが、それらはすべて同じ問題に帰着します。MySQL サーバーがどこかで実行されている必要があります。

よく考えてみると、外部の MySQL サーバーを実行せずに MySQL データにアクセスする方法が実際には 1 つあります。組み込みの MySQL サーバー C ライブラリです。自分で試したことはありませんが、スタンドアロン アプリケーションの実行可能なオプションのようです。ただし、複数のプロセスまたはコンピューターで同じ MySQL データを共有することを計画している場合、これが望ましいソリューションであるとは思いません。

回避策

これで、おそらく MySQL サーバーからダンプされた SQL ダンプ ファイルの形式のデータに基づいて、Java デスクトップ アプリケーションを構築していることがわかりました。ユーザーがこの Java アプリケーションからこのデータにアクセスできるようにするには、いくつかのオプションがあります。

  • コンピューターに MySQL サーバーをインストールし、このダンプをそこにロードします。よく聞くと、地獄のように明白ですが、実際的ではありません。このインストールは、Java アプリケーションによって自動的に実行される可能性があると思いますが。

  • 独自のマシンに MySQL サーバーをインストールし、ユーザーのコンピューターからアクセスできるようにします。主な欠点: ユーザーが接続する必要があります。また、ユーザーごとに個別のデータベースを作成することもできます。

  • SQLiteなどの実際のサーバーレス データベース エンジンを使用します。これはあなたにとって最良の選択肢のようです。その SQL 構文は、通常の操作では MySQL と実質的に同じです。そのための JDBC ドライバーがたくさんあるはずです。繰り返しますが、私は Java の最高のアドバイザーではありませんが、これは有力候補のようです。

于 2013-03-08T00:24:59.617 に答える