我对Unidata完全不熟悉。我正在尝试编写一个可以从Unidata查询记录的Java应用程序。我下载了U2 Clients软件包并安装了UniDK。我跟着这个example。我能够使用asjava.zip中的库从Unidata中的文件中获取密钥/ ID的单个记录。
我遇到了关于使用JPA的U2客户端文档。我想知道是否有任何其他选项,我可以编写数据库查询以获取具有WHERE条件的记录列表而不实现JPA。我正在寻找与使用Php编写MySQL查询类似的东西。
感谢。
答案 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子例程。与我合作的大多数开发人员都需要使用此产品。