如何将MySQL数据库公开为OData

时间:2013-06-07 18:00:40

标签: mysql xml database 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库可以为我处理这个问题?

非常感谢你的帮助!!

1 个答案:

答案 0 :(得分:20)

我已经想出了如何做到 - 使用odata4j。 我已记录下面的步骤,以防其他人想要做类似的事情。

您需要:

  • 从您的数据库生成JPA模型
  • 使用odata4j的NorthwindJpaProducerExample.java脚本

详细步骤如下:

  1. Odata4j是一位开源的Odata Producer / Consumer in Java。因此,您需要使用数据库为EE Developers设置Eclipse。如果您是Eclipse新手,我建议this教程。
  2. 按照these说明生成JPA模型。
  3. 转到Odata4j并下载最新的档案zip
  4. 将odata4j-bundle-x.x.jar添加到您的构建路径(可在捆绑文件中找到)。
  5. 从Odata4j插入以下脚本,在他们的github上找到:NorthwindJpaProducerExample,JPAProvider和DatabaseUtils(需要slf4j)。 (说实话,我只是将它们复制并粘贴到Eclipse中)。此时,Project Explorer栏应如下所示(不含model.main):
  6. Project Explorer Bar

    此时,右键单击该项目并选择Build Path>配置构建路径。从Odata4j存档文件中添加以下“外部JAR”。

    External Jars

    现在以下列方式编辑NorthwindJpaProducerExample中的代码:

    1. 将字符串“endpointUri”更改为您希望oData位于
    2. 的任何网址
    3. 将字符串“persistenceUnitName”更改为persistence.xml中实体的名称(如上图所示,我的名称为“createJPA”。)
    4. code sample in NorthwindJpaProducerExample

      然后你有OData!

      My OData

      我在遵循这些步骤的过程中遇到了一些问题,如果你有这些步骤,我会在这里记录下来。

      • 为了成功执行第2步(生成JPA),每个表必须有一个主键。这样做 - 我不是在开玩笑。
      • 编辑代码后,出现“BigInteger”错误。 JPAProducer不支持bigInteger字段类型。返回到您的数据库并将列的大小更改为常规int。
      • 以任何方式更改数据库后,请确保刷新数据库并清理项目。这将使你和Eclipse感到高兴。
      • 我不认为这对每个人都是必要的,但我确实需要添加一个HyperSQL驱动程序依赖项。如果您收到HSQL错误,请转到here并获取最新的稳定版本。将hsqldb.jar添加到Build Path。

      不是超级容易,但比70多页的手册好很多。