Java から InterSystems IRIS のクラスメソッドを呼び出す方法
これはInterSystems FAQ サイトの記事です。
InterSystems IRIS Native API for Java のメソッドに、IRIS クラスメソッドを呼び出す classMethod***() があります。
ObjectScript メソッドおよび関数の呼び出し
こちらを使用することで、InterSystems IRIS Native API for Java から InterSystems IRIS のクラスメソッドを呼び出すことが可能です。
以下、使用方法について簡単なサンプルをご紹介します。
*SampleNativeAPI .java
import com.intersystems.jdbc.IRISConnection;
import com.intersystems.jdbc.IRIS;
import com.intersystems.jdbc.IRISIterator;
public class SampleNativeAPI {
protected static int superserverPort = 51773; // YOUR PORT HERE
protected static String namespace = "USER";
protected static String username = "_SYSTEM";
protected static String password = "SYS";
public static void main(String[] args) {
try {
// open connection to InterSystems IRIS instance using connection string
String url = "jdbc:IRIS://localhost:"+superserverPort+"/"+namespace;
IRISConnection conn = (IRISConnection) DriverManager.getConnection(url,username,password);
// create IRIS Native object
IRIS iris = IRIS.createIRIS(conn);
System.out.println("[1. Setting and getting a global]");
// setting and getting a global
// ObjectScript equivalent: set ^testglobal("1") = 8888
iris.set(8888,"^testglobal","1");
// ObjectScript equivalent: set globalValue = $get(^testglobal("1"))
Integer globalValue = iris.getInteger("^testglobal","1");
System.out.println("The value of ^testglobal(1) is " + globalValue);
System.out.println();
System.out.println("[2. Iterating over a global]");
// modify global to iterate over
// ObjectScript equivalent: set ^testglobal("1") = 8888
// ObjectScript equivalent: set ^testglobal("2") = 9999
iris.set(8888,"^testglobal","1");
iris.set(9999,"^testglobal","2");
// iterate over all nodes forwards
IRISIterator subscriptIter = iris.getIRISIterator("^testglobal");
System.out.println("walk forwards");
while (subscriptIter.hasNext()) {
String subscript = subscriptIter.next();
System.out.println("subscript="+subscript+", value="+subscriptIter.getValue());
}
System.out.println();
System.out.println("[3. Calling a class method]");
// calling a class method
// ObjectScript equivalent: set returnValue = ##class(%Library.Utility).Date(5)
String returnValue = iris.classMethodString("%Library.Utility","Date",5);
System.out.println(returnValue);
System.out.println();
// close connection and IRIS object
iris.close();
conn.close();
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
InterSystems IRIS Native API for Java の使用方法については、以下のドキュメントをご覧ください。
InterSystems IRIS Native API for Java の使用法
また、Java側から InterSystems IRIS のストアドプロシージャをJDBC経由で呼び出す方法もあります。
詳細は、【FAQ】 Javaから配列のような複数項目のデータを渡すにはどうすれば良いですか をご覧ください。