国外汽车配件网站模板,山东淄博网站建设的公司,精准客户运营推广,设计素材网站哪个最好用SAP旗下的HANA数据库#xff0c;实际上是分为两个系列进行发布#xff0c;一种是基于本地部署的称之为HANA Platform。另一种是面向Cloud平台的#xff0c;称之为HANA Cloud。
在实际使用当用#xff0c;因为两者基本上共用同一代码库#xff0c;除个别地方略有差异以外实际上是分为两个系列进行发布一种是基于本地部署的称之为HANA Platform。另一种是面向Cloud平台的称之为HANA Cloud。
在实际使用当用因为两者基本上共用同一代码库除个别地方略有差异以外我们可以共用它们的JDBC driver。
本文就简要介绍一下这个driver的几个非常有用的小技巧你会感觉到普普通通的jdbc驱动也能做很多事情。
实例
获取hana cloud jdbc driver:
我们从https://mvnrepository.com/artifact/com.sap.cloud.db.jdbc/ngdbc可以得到较新版本的hana JDBC。
也能看到包的定义
!-- https://mvnrepository.com/artifact/com.sap.cloud.db.jdbc/ngdbc --
dependencygroupIdcom.sap.cloud.db.jdbc/groupIdartifactIdngdbc/artifactIdversion2.20.11/versiontypepom/type
/dependency顺着里边的说明也可以看到对应的帮助文档
https://help.sap.com/docs/SAP_HANA_CLIENT/f1b440ded6144a54ada97ff95dac7adf/434e2962074540e18c802fd478de86d6.html
我们使用单个命令行就可以下载得到该文件
mvn dependency:get -DgroupIdcom.sap.cloud.db.jdbc -DartifactIdngdbc -Dversion2.20.11 -Dtransitivefalse
mvn dependency:copy -Dartifactcom.sap.cloud.db.jdbc:ngdbc:2.20.11 -DoutputDirectory./第一个命令会下载驱动到你的repository的相关子目录当中。第二个命令会将对应的文件重新复制到你指定的目录-DoutputDirectory./ 最终会得到文件 ngdbc-2.20.11.jar
当然你也可以直接从SAP官网上下载相应的完整的client包它里边也包含有完整的JDBC驱动。
当作命令行连接HANA
java -jar ngdbc-2.20.11.jar -u SYSTEM,password -n ip_address:30215 -c SELECT DATABASE_NAME,version FROM SYS.M_DATABASES -w 50
| DATABASE_NAME | VERSION |
-----------------------------------------------------------------------------------------
| HDB | 2.00.070.00.1679989823 |
1 rows.实例2: 查询数据库服务器上所有安装版本历史
java -jar ngdbc-2.20.11.jar -u SYSTEM,password -n ip_address:30215 -c SELECT * FROM SYS.M_DATABASE_HISTORY| INSTALL_TIME | VERSION |
------------------------------------------------------------------
| 2017-01-17 09:38:19.0000000 | 1.00.112.04.1467296086 |
| 2017-04-19 09:20:18.0000000 | 2.00.002.00.1490188421 |
| 2017-06-12 09:19:44.0000000 | 2.00.011.00.1493936640 |
| 2017-07-07 10:34:05.0000000 | 2.00.012.00.1498457145 |
| 2018-07-16 09:40:12.0000000 | 2.00.031.00.1528768600 |
| 2018-09-24 05:50:11.0000000 | 2.00.032.00.1533114046 |
| 2019-02-05 04:43:35.0000000 | 2.00.036.00.1547699771 |
| 2019-09-20 03:32:26.0000000 | 2.00.042.00.1564994110 |
| 2020-02-13 12:02:42.0000000 | 2.00.044.00.1571081837 |
| 2020-05-06 14:04:11.0000000 | 2.00.047.00.1586595995 |
| 2020-10-06 06:01:18.0000000 | 2.00.052.00.1599235305 |
| 2021-01-18 06:15:01.0000000 | 2.00.053.00.1605092543 |
| 2021-02-05 09:46:59.0000000 | 2.00.054.00.1611906357 |
| 2021-05-19 10:25:57.0000000 | 2.00.055.00.1615413201 |
| 2021-09-10 02:38:40.0000000 | 2.00.057.00.1629894416 |
| 2021-10-18 10:39:57.0000000 | 2.00.058.00.1634122452 |
| 2021-11-22 03:29:50.0000000 | 2.00.059.00.1636704142 |
| 2022-02-16 11:20:29.0000000 | 2.00.061.00.1644229038 |
| 2022-05-24 06:05:26.0000000 | 2.00.062.00.1650891137 |
| 2022-10-12 03:49:19.0000000 | 2.00.064.00.1660047502 |
| 2022-11-23 04:35:13.0000000 | 2.00.065.00.1665753120 |
| 2023-01-27 05:55:29.0000000 | 2.00.066.00.1671096120 |
| 2023-05-18 06:08:25.0000000 | 2.00.070.00.1679989823 |你只要在 -c 后边传入相应的命令行即可。有意思吧。这也算是一个简单的命令行客户端了。
最简单的你可以直接针对jar不带任何参数它会输出当前的时间戳来自服务器的时间)。
java -jar ngdbc-2.20.11.jar -u SYSTEM,password -n ip_address:30215
| CURRENT_TIMESTAMP |
-------------------------------
| 2024-03-28 21:08:48.0890000 |完整的命令行格式是这样的
java -jar ngdbc.jar -u user,password[-n hostname:port][-i instance-number][-d database-name][-o connect-option][-w maximum-column-width[-c sql-command]一些重要的开关
其实这里主要是强调JDBC Tracing and Trace Options的用法。在你实际开发应用过程当中添加适当的开关能帮你快速定位问题。
1、直接在jdbc连接串中设置
jdbc:sap://localhost:30015/?autocommitfalsetraceFiletraceFile.txttraceOptionsCONNECTIONS,API,PACKET,TIMESTAMPS,ELAPSEDTIMES,FAILURE_ACTION_STDERR这里就设置了很多跟踪选项CONNECTIONS,API,PACKET,TIMESTAMPS,ELAPSEDTIMES,FAILURE_ACTION_STDERR
2、在命令行里头直接设置 获取当前配置项
java -jar ngdbc-2.20.11.jar SHOWDriver version : 2.20.11-354e45de0dcbabd02f58c506ecf1138161ee4b1eSettings file name : ~/.sdb/jdbctracesettings.iniShared memory file name : ~/.sdb/jdbctrace.shmConfigurationTrace : DisabledTrace file name : jdbctrace.prtTRACE CONNECTIONS : OnTRACE API : OnTRACE PACKET : OnTRACE DISTRIBUTION : OffTRACE STATISTICS : OffTRACE CLEANERS : OnTRACE DEBUG : OffShow plain-text client-side encrypted values : DisabledShow timestamps : DisabledShow elapsed times : DisabledTrace file size : UnlimitedStop on error : DisabledTrace failure action : IgnorePerformance trace : DisabledPerformance trace file name : jdbcperformancetrace.prt直接设置选项举例
java -jar ngdbc-2.20.11.jar TRACE ON
//Driver version : 2.20.11-354e45de0dcbabd02f58c506ecf1138161ee4b1eSettings file name : /Users/i062873/.sdb/jdbctracesettings.iniShared memory file name : /Users/i062873/.sdb/jdbctrace.shmConfigurationTrace : EnabledTrace file name : jdbctrace.prtTRACE CONNECTIONS : OnTRACE API : OnTRACE PACKET : OnTRACE DISTRIBUTION : OffTRACE STATISTICS : OffTRACE CLEANERS : OnTRACE DEBUG : OffShow plain-text client-side encrypted values : DisabledShow timestamps : DisabledShow elapsed times : DisabledTrace file size : UnlimitedStop on error : DisabledTrace failure action : IgnorePerformance trace : DisabledPerformance trace file name : jdbcperformancetrace.prt这样我样可以在相同路径下边的jdbctrace*.prt文件里头得到trace的内容 Part PartKindResultSetID(13) PartAttributes0(none) ArgumentCount1 BigArgumentCount0 BufferLength8 BufferSize29816PartBuffer0 | b5 97 c0 10 65 72 05 00 | ....er.. |/PartBuffer/PartPart PartKindStatementContext(39) PartAttributes0(none) ArgumentCount4 BigArgumentCount0 BufferLength206 BufferSize29792PartBuffer0 | 01 21 ac 00 01 00 00 00 00 00 00 00 68 17 c6 05 | .!..........h... |10 | 00 00 00 00 e2 46 b2 42 00 00 00 00 bc e5 53 3d | .....F.B......S |20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |30 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |50 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |70 | 00 00 00 00 00 00 00 00 00 00 00 00 00 15 13 02 | ................ |80 | e2 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ |90 | 00 00 40 b0 01 00 00 00 00 00 00 00 00 00 00 00 | ............... |a0 | 00 00 00 00 76 80 34 5c 08 d7 24 00 9d 0a 96 ad | ....v.4\..$..... |b0 | 02 04 03 03 00 00 00 00 00 00 07 04 bd 01 00 00 | ................ |c0 | 00 00 00 00 08 04 20 bb 00 00 00 00 00 00 | ...... ....... |
.....这些TRACE的内容非常有用。尤其是在遇到你认为是BUG的时候可以将这些TRACE文件作为佐证提供给SAP官方便于他们去修复问题。
由于这是一个基于操作系统用户级的设置。当你设置完使用完之后可以再将其恢复到原来的状态
java -jar ngdbc-2.20.11.jar TRACE OFF3、启动图形方式进行设置
既然有命令行方式那同时也就有了GUI方式。我们用-g选项就可以启动。
java -jar ngdbc-2.20.11.jar -gimage-20240329072459665
所有可以配置的参数项一目了然。
1有enable tracing的下边可以指定trace文件trace级别以及时间戳大小是否明文显示。
2是否启用关于性能的tracing这个对于测量性能指标也非常重要。
总结
一个小小的jdbc驱动HANA数据库为它提供的功能还是比较强悍的。在关键的时候能起到非常大的作用。如果只是一些非常简单的连接性需求甚至不需要任何第三方工具直接使用简单的命令行就可以顺利完成。