SAS JAVA 连接操作
2015-08-12 14:23
936 查看
SAS JAVA 连接介绍
对于JAVA开发,SAS集成技术的特点:1. SAS的java连接工厂接口可以让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客户端安全
Java的IOM Bridge通过两层安全解决方案对和IOM Server交流的所有信息进行加密,第一层是SAS专有的加密算法,第二层是包含了RC2,RC4,DE5和Triple 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. 关闭连接
使用直接提供的服务器属性连接
为了连接到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);
JAVA对SAS逻辑库表的操作实例
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));
相关文章推荐
- Spring注解和配置方式
- java利用反射调用类的某个方法
- Spring依赖注入
- Spring反射机制
- URL编码与两次encodeURI
- 智渔课堂官方免费教程二十八:Java排序算法之选择排序和冒泡排序
- I学霸官方免费教程二十八:Java排序算法之选择排序和冒泡排序
- Java ArrayList 删除重复值
- Java线程中断理解(interrupte)
- redhat JDK-1.8安装
- Java内存模型
- 360校招笔试算法题
- Java中的编码
- springmvc学习第四天
- Struts框架中struts-config.xml文件配置小结
- Java反射机制
- How to Tune Java Garbage Collection
- Java学习之Iterator(迭代器)的一般用法 (转)
- struts2入门
- 小记个人认为的java各概念的举例理解