SAS JAVA 连接操作

来源:互联网 发布:淘宝等级怎么看 编辑:程序博客网 时间:2024/05/18 03:01

SAS JAVA 连接介绍

 对于JAVA开发,SAS集成技术的特点:

  1. SASjava连接工厂接口可以让java程序通过一个IOM(Integrated Object Model) Bridge 连接和IOM SERVER交流。

  2. 通过连接到IOM 服务器,SAS Foundation Service将扩充了java的应用程序开发。

JAVA客户端安装与JRE需求

Java客户端的安装:必须安装SAS Foundation Services.

JRE需求:JRE 5.0 以上

JAVA客户端安全

  JavaIOM Bridge通过两层安全解决方案对和IOM Server交流的所有信息进行加密,第一层是SAS专有的加密算法,第二层是包含了RC2RC4DE5Triple DES的加密算法。

连接到IOM Server的流程

   1. java连接工厂获得一个到IOM Server的连接,然后从IOM Server获得远程对象的引用,封装适当的远程接口。

   2. 使用JAVA COREA 的静态方法为IOM对象和JDBC连接对象获得操作SAS的能力。

   3. 最后释放连接。

使用java连接工厂

为了连接到IOM Server,需要进行以下步骤:

1. 创建一个连接工厂配置

String classID = Server.CLSID_SAS;String host = "localhost";int port = 1234;Server server = new BridgeServer(classID, host, port);ConnectionFactoryConfiguration cxfConfig   = new ManualConnectionFactoryConfiguration(server);

2. 创建一个连接工厂

ConnectionFactoryManager cxfManager = new ConnectionFactoryManager();ConnectionFactoryInterface cxf = cxfManager.getFactory(cxfConfig);

3. 创建连接

String username = "  ";String password = "  ";ConnectionInterface cx = cxf.getConnection(username, password);

4. Narrow the connection

org.omg.CORBA.Object obj = cx.getObject();com.sas.iom.SAS.IWorkspace iworkspace     = com.sas.iom.SAS.IWorkspaceHelper.narrow(obj);
5. 关闭连接

 

 

6. 关闭工厂连接

使用直接提供的服务器属性连接

  为了连接到IOM服务器,必须提供关于服务器和所需求连接的特殊java连接工厂信息,这包括主机地址,端口,加密方法,加密算法,加密内容等。

连接到一个无配置的Workspace Server

满足的需求:
   1.  SAS 9.3及以上版本,服务已运行

   2.  程序和SAS软件运行在同一台window机器

   3.  Sspiauth.dll这个文件在系统文件路径中,java.library.path,或者在你的java程序的目录中。

server = new ZeroConfigWorkspaceServer();config = new ManualConnectionFactoryConfiguration(server);manager = new ConnectionFactoryManager();factory = manager.getFactory(config);cred = new SecurityPackageCredential();cx = factory.getConnection(cred);try{Object obj = cx.getObject();IWorkspace iworkspace = IWorkspaceHelper.narrow(obj);//insert iworkspace workspace usage code here}finally{cx.close();}

SASworkspace操作实例

ILanguageService sasLanguage = iWorkspace.LanguageService();       //执行SAS语句String str = "proc print data=SASHELP.BUY;run;";sasLanguage.Submit(str1);IStoredProcessService istored = sasLanguage.StoredProcessService();IResultPackageHolder iresultpd = new IResultPackageHolder();//显示日志信息StringSeqHolder logHldr = new StringSeqHolder();sasLanguage.FlushLogLines(Integer.MAX_VALUE,new CarriageControlSeqHolder(), new LineTypeSeqHolder(),logHldr);String[] loglines = logHldr.value;JOptionPane.showMessageDialog(null, loglines);

JAVASAS逻辑库表的操作实例

String url = "jdbc:sasiom://192.168.1.189:8591";String username = "apeng";String password = "*********";try {Class.forName("com.sas.rio.MVADriver");Connection conn = DriverManager.getConnection(url, username,password);Statement stmt = conn.createStatement();DatabaseMetaData meta = conn.getMetaData();//获取SAS的逻辑库基本信息 System.out.println("meta.getDriverName()-------"+meta.getDriverName());System.out.println("meta.getDatabaseProductName()-------"+meta.getDatabaseProductName());System.out.println("meta.getDatabaseProductVersion()-------"+meta.getDatabaseProductVersion());System.out.println(meta.allProceduresAreCallable());System.out.println(meta.getSQLKeywords());System.out.println(meta.getURL());ResultSet rs= meta.getTableTypes();while(rs.next()){System.out.println(rs.getString(1));}System.out.println(meta.getSystemFunctions());

//对表的查询String sql = "select * from SASHELP.BUY";rs = stmt.executeQuery(sql);System.out.println(rs.getMetaData().getColumnName(1));System.out.println(rs.getMetaData().getColumnName(2)); while (rs.next()) {System.out.println(rs.getString(1) + "----------"+ rs.getString(2));}//表插入操作sql = "insert into SASHELP.BUY(AMOUNT) value(-123) ";System.out.println(stmt.execute(sql));//表的更新操作sql = "update SASHELP.BUY set Amount = 123 where Amount = -123";System.out.println(stmt.execute(sql));//表的删除操作sql = "delete * from SASHELP.BUY WHERE Amount=123";System.out.println(stmt.execute(sql));

1 0
原创粉丝点击