web-dev-qa-db-ja.com

MySQLデータベースをODataとして公開する方法

私は現在mySQLデータベースを持っており、ODataを使用してデータベースと対話したいと考えています。

言い換えれば、私はこの形式でデータを公開したいと思います: http://services.odata.org/Northwind/Northwind.svc/

Microsoft Visual Studioを使用している場合、これを行う方法に関するチュートリアルをいくつか見つけました(たとえば、 http://msdn.Microsoft.com/en-us/vs2010trainingcourse_buildingappandservicesusingodatavs2010_topic3.aspx )。しかし、私はマックの女の子です。 :(

また、odataホームページ(ライブラリの下、次にmysqlの下)でライブラリを確認しました。しかし、私はそれらを機能させることができません。

これを処理できる簡単なSIMPLEライブラリはありますか?

助けてくれてありがとう!

18
AllieCat

odata4j を使用してそれを行う方法を理解しました。他の誰かが同様のことをしたい場合に備えて、以下の手順を文書化しました。

次のことを行う必要があります。

  • データベースからJPAモデルを生成する
  • odata4jのNorthwindJpaProducerExample.Javaスクリプトを使用します

詳細な手順は次のとおりです。

  1. Odata4jは、JavaのオープンソースのOdataプロデューサー/コンシューマーです。したがって、データベースを使用してEclipse for EE Developersをセットアップする必要があります。 Eclipseを初めて使用する場合は、 this チュートリアルをお勧めします。
  2. これら の指示に従って、JPAモデルを生成します。
  3. Odata4jに移動し、最新のアーカイブZipをダウンロードします
  4. Odata4j-bundle-x.x.jarをビルドパスに追加します(バンドルファイルにあります)。
  5. GithubにあるOdata4jから次のスクリプトを挿入します:NorthwindJpaProducerExample、JPAProvider、およびDatabaseUtils( slf4j が必要)。 (正直なところ、私はそれらをコピーしてEclipseに貼り付けただけです)。この時点で、プロジェクトエクスプローラーバーは次のようになります(model.mainなし)。

Project Explorer Bar

この時点で、プロジェクトを右クリックし、[ビルドパス]> [ビルドパスの構成]を選択します。 Odata4jアーカイブファイルから次の「ExternalJars」を追加します。

External Jars

次に、NorthwindJpaProducerExampleのコードを次の方法で編集します。

  1. 文字列「endpointUri」をoDataが必要なURLに変更します
  2. 文字列「persistenceUnitName」をpersistence.xmlのエンティティの名前に変更します(上の画像でわかるように、私の名前は「createJPA」でした)。

code sample in NorthwindJpaProducerExample

そして、あなたはODataを持っています!

My OData

これらの手順を実行しているときにいくつかの問題が発生しました。問題が発生した場合に備えて、ここでそれらを文書化します。

  • 手順2(JPAの生成)を正常に実行するには、各テーブルに主キーが必要です。それをしなさい-私は冗談ではない。
  • コードを編集した後、「BigInteger」エラーが発生しました。 JPAProducerはbigIntegerフィールドタイプをサポートしていません。データベースに戻り、列のサイズを通常のintに変更します。
  • データベースを何らかの方法で変更した後は、必ずデータベースを更新し、プロジェクトをクリーンアップしてください。これはあなたとEclipseを幸せにするでしょう。
  • これがすべての人に必要になるとは思いませんが、HyperSQLドライバーの依存関係を追加する必要がありました。 HSQLエラーが発生した場合は、 here に移動して、最新の安定バージョンを入手してください。 hsqldb.jarをビルドパスに追加します。

簡単ではありませんが、70ページ以上のマニュアルよりもはるかに優れています。

21
AllieCat