Java中的Unidata查询

时间:2013-06-27 15:41:12

标签: java sql jpa u2 unidata

我对Unidata完全不熟悉。我正在尝试编写一个可以从Unidata查询记录的Java应用程序。我下载了U2 Clients软件包并安装了UniDK。我跟着这个example。我能够使用asjava.zip中的库从Unidata中的文件中获取密钥/ ID的单个记录。

我遇到了关于使用JPA的U2客户端文档。我想知道是否有任何其他选项,我可以编写数据库查询以获取具有WHERE条件的记录列表而不实现JPA。我正在寻找与使用Php编写MySQL查询类似的东西。

感谢。

3 个答案:

答案 0 :(得分:2)

一个好的答案的后续跟进:如果你有一个unidata程序员在工作人员,最好调用一个子程序,你只需传递参数来获得你需要的东西。有点像用其他语言调用存储过程。这根本不是一个要求,但是如果你有一个java程序员和一个unidata / pick程序员在一个项目上一起工作,这可能是一个很好的方法......

答案 1 :(得分:1)

是的,你可以。首先,您需要了解一下'UniQuery',这是UniData数据库的查询语言。您可以在manuals on the Rocket Software site

中找到

例如,假设您有一个名为customers的文件和名为name和`age1

的字段
SELECT customers WITH name LIKE "Dan..." AND age GT "20"

此select语句将生成一个记录ID列表,其中name以Dan开头且age大于20。

在您的代码中,您需要先执行SELECT语句。假设udSess是您创建的会话:

UniCommand cmd = udSess.command(); // Create an object to run the command
cmd.setCommand("SELECT customers WITH name LIKE 'Dan...' AND age GT '20'")
cmd.exec()

UniSelectList sl = udSess.selectList(0);

while (!sl.isLastRecordRead())
{
   UniString recordID = sl.next();
   // Read your record here, using recordID
}

答案 2 :(得分:1)

如果您需要定期从Java访问Unidata数据库,那么Rocket(Unidata的所有者)有一个名为“ UniObjects for Java”的产品,该产品包含一个访问Unidata的类库,包括日志记录。在其中,执行查询并调用BASIC子例程。与我合作的大多数开发人员都需要使用此产品。

https://docs.rocketsoftware.com/nxt/gateway.dll/RKBnew20/unidata/previous%20versions/v7.2/unidata_uniobjectsjavadevguide_v72.pdf