报错如下信息
com.sap.db.jdbc.exceptions.JDBCDriverException: SAP DBTech JDBC: Cannot connect to jdbc:sap://xxx.xxx.xxx.xxx:30015 [Cannot connect to host xxx.xxx.xxx.xxx:30015 [Connection refused: connect], -813.].
应该优先考虑端口号问题。
在SAP HANA STUDIO中使用30015端口没问题,但为什么到了JDBC这里又有问题了呢?
原来该链接为Multiple container,不同的container有不同的端口,这时候应该问数据库管理员要正确的端口。
最终正确的端口为30059,可能是人为或者是机器设置的。
另外,使用JDBC的时候,应去掉pom部分的xml,如下:
<dependency>
<groupId>com.sap.cloud.db.jdbc</groupId>
<artifactId>ngdbc</artifactId>
<version>2.4.63</version>
<!--<type>pom</type>-->
</dependency>
而且,虽然group id写着com.sap.cloud.db.jdbc,但实际java使用的时候,还是得这么导入,估计是因为一些历史遗留的命名问题:
Class.forName("com.sap.db.jdbc.Driver"); // 必须使用老的包路径。使用新的com.sap.cloud.db.jdbc会报错
里边详细写了不同container模式下的端口号。如果参照SAP官方教程不行,那么就得问DB管理员具体自定义的端口号是多少了。
multiple container:不光是db里的数据,还有外部应用,都可以放在container里边。一个数据库可以有多个container的概念,方便系统升级。