Java连接SAS,与SAS Server交互

运行环境说明

sas-server: 9.4
java: 1.8
springBoot: 2.15

依赖环境准备

进入SAS Server的安装目录下,拷贝以下三个jar包,并上传治maven私服,
jar包内涉及隐私信息,自行上服务器提取。

sas.core.jar
sas.svc.connection.jar
sas.security.sspi.jar

因为使用的SAS 9.4版本的服务,所以上传到maven的版本也定为了9.4
maven引用如下

<dependency>
    <groupId>com.sas</groupId>
    <artfactId>sas-core</artfactId>
    <version>9.4</version>
</dependency>
<dependency>
    <groupId>com.sas</groupId>
    <artfactId>sas-svc-connection</artfactId>
    <version>9.4</version>
</dependency>
<dependency>
    <groupId>com.sas</groupId>
    <artfactId>sas-security-sspi</artfactId>
    <version>9.4</version>
</dependency>

另外还需要添加log4j的依赖,sas的日志输出使用的是log4j

<dependency>
    <groupId>log4j</groupId>
    <artfactId>log4j</artfactId>
    <version>1.2.17</version>
</dependency>

连接SAS Server

连接sasServer需要四个参数,host、port、userName、password
以下为连接使用的代码,按照实际情况进行修改

WorkspaceFactory factory = new WorkspaceFactory();
Properties properties = new Properties();
properties.put("host", "192.168.1.1");
properties.put("port", "8591");
properties.put("userName", "sas");
properties.put("password", "sas*123456");
IWorkspace workspace = factory.createWorkspaceByServer(properties);

获取JDBC连接,并执行sql

JDBC使用的Connection需要使用workspace进行获取,直接看demo代码,
需要注意的是,要先配置libname;如果需要看详细日志,还需要先配置LanguageSerrvice。
libname = libname + 数据库名 + 工作空间路径;
工作空间选择在sas所在的主机先手动创建好,也可以选择使用FileService进行动态创建;
日志主要考虑需要打印的数量;

Connection conn = null;
Statement sta = null;
try{
    //配置libname 这里以sas库和C盘test目录为工作空间
    String libName = "libname sas 'C://test'";
    ILanguageSerrvice libLang = workspace.LanguageSerrvice();
    libLang.Submit(libName);

    //配置日志 这里以500行为例子
    ILanguageSerrvice logLang = workspace.LanguageSerrvice();
    logLang.FlushLog(5000);

    //获取sas的dataService
    IDataService ds = workspace.DataService();

    //jdbc逻辑
    conn = new MVAConnection(ds, new Properties());
    sta = conn.createStatement();
    String sql = "create table sas.TEST(nam char(50) label='名称');"
    statement.execute(sql);
    sql = "insert into sas.TEST values('test01');"
    statement.execute(sql);
}finally{
    if(sta != null){
        sta.close();
    }
    if(conn != null){
        conn.close();
    }
}

执行完成后,可以进入到工作空间下(如C://test),查看结果;
双击打开test.sas7bdat文件,可以看到刚刚执行的表结构和数据了。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值