Java class that connects to InterSystems IRIS and uses the Native API to access globals, class methods, and routines.
|
n/a
|
Begin code.package irisPackage;
import com.intersystems.jdbc.IRISConnection;
import com.intersystems.jdbc.IRIS;
import com.intersystems.jdbc.IRISIterator;
import com.intersystems.jdbc.IRISDataSource;
public class nativeJavaClass {
public static void main (String [ ] args) {
int superserverPort = 16951;
String ip "104.197.75.13";
String namespace = "USER";
String username = "SuperUser";
String password = "SYS";
try {
IRISDataSource ds = new IRISDataSource ( ) ;
ds.setURL ( "jdbc:IRIS://" + ip + ":"" + superserverPort + "/" + namespace);
ds.setUser (username);
ds.setPassword (password);
IRISConnection dbconnection = (IRISConnection) ds.getConnection ();
System.out.println("Connectedto InterSystems IRIS via JDBC.");
// Create irisNative object
IRIS irisNative = IRIS.createIRIS(dbconnection);
// Setting and getting a global
irisNative.set(1582.32 , "^stocks" , "AMZN");
irisNative.set(94.18 , "^stocks" , "MSFT");
irisNative.set(325.61 , "^ stocks" , "TSLA");
Double amznPrice = irisNative.getDouble ("^stocks" , "AMZN");
System.out.println("The current price of AMZN is $" + amznPrice);
// Iterating over a global
IRISIterator iter = irisNative.getIRISIterator("^stocks");
System.out.println("walk forwards");
while (iter.hasNext()) {
String subscript = iter.next();
System.out.println("The current price of " + subscript + " is $" + iter.getValue());
}
// Calling a class method
String newStockName = irisNative.classMethodString("%Library.PopulateUtils", "StringMin" , 3,4).toUpperCase();
Double newStockPrice = irisNative.classMethodDouble("%Library.PopulateUtils", "Float", 0,1000,2);
irisNative.set(newStockPrice,"^stocks",newStockName);
System.out.println("Created new stock " + newStockName + " at current value $" + newStockPrice);
// Calling a routine
String irisVersion = irisNative.functionString("PrintVersion", "^StocksUtil");
System.out.println("The current version of InterSystems IRIS is " + irisVersion);
// Close connection and native object
irisNative.close();
dbconnection.close();
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
}
}
} End code. |
ObjectScript equivalent for iterating over a global
|
4:05
|
Begin code.set subscript = ""
for {
set sub = $ORDER(^stocks(sub), 1, val)
quit:(sub = "")
write !, "The current price of ", sub, " is $", val
} End code. |
ObjectScript equivalent for calling a class method
|
4:32
|
Begin code.set newStockName = $ZCONVERT(##class(%PopulateUtils).StringMin(3,4), "U")
set newStockPrice = ##class(%PopulateUtils).Float(0,1000,2)
set ^stocks(newStockName) = newStockPrice
write "Created new stock " _ newStockName _ " at current value $" _ newStockPriceEnd code. |