我完全是Unidata的新手。我正在尝试编写一个Java应用程序,它可以从Unidata查询记录。我下载了U2客户端软件包并安装了UniDK。我关注了这个example。使用asjava.zip中的库,我能够通过键/ID从Unidata中的文件中获得一条记录。
我偶然发现了U2客户端文档,其中建议使用JPA。我想知道是否有其他选择,我可以编写数据库查询,以获得带有WHERE条件的记录列表,而不实现JPA。我正在寻找与使用Php编写MySQL查询类似的东西。
谢谢。
发布于 2013-06-28 20:48:22
是的你可以。首先,您需要了解一下“UniQuery”,这是UniData数据库的查询语言。您可以在manuals on the Rocket Software site中找到它。
例如,假设您有一个名为customers的文件以及名为name和`age1的字段
SELECT customers WITH name LIKE "Dan..." AND age GT "20"此select语句将生成一个记录ID列表,这些记录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
}发布于 2013-11-20 06:24:07
一个很好的答案的后续文章:如果你有一个unidata程序员,那么调用一个子例程可能会更好,在这个子例程中,你只需要传递参数来获得你需要的东西。这有点像在其他语言中调用存储过程。这根本不是必需的,但是如果你有一个java程序员和一个unidata/pick程序员一起工作在一个项目上,这可能是一个很好的方法……
发布于 2019-07-12 00:39:43
如果您需要定期从Java访问Unidata数据库,可以从Rocket ( Unidata的所有者)那里获得一个名为"UniObjects for Java“的产品,其中包含一个用于访问Unidata的类库,包括登录、执行查询和调用基本子例程。与我一起工作的大多数开发人员都使用这个产品。
https://stackoverflow.com/questions/17347499
复制相似问题