如何将MySQL数据库公开为OData

All*_*Cat 18 xml mysql 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库可以为我处理这个问题?

非常感谢你的帮助!!

All*_*Cat 21

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

你需要:

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

详细步骤如下:

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

Project Explorer Bar

此时,右键单击该项目,然后选择"构建路径">"配置构建路径".从Odata4j存档文件中添加以下"外部JAR".

外部罐子

现在,通过以下方式编辑NorthwindJpaProducerExample中的代码:

  1. 将字符串"endpointUri"更改为您想要oData的URL
  2. 将字符串"persistenceUnitName"更改为persistence.xml中实体的名称(如上图所示,我的名称为"createJPA".)

NorthwindJpaProducerExample中的代码示例

然后你有OData!

我的OData

我在遵循这些步骤的同时遇到了一些问题,并且会在这里记录它们以防万一.

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

不是超级简单,但比70多页的手册好很多.