`
JerryWang_SAP
  • 浏览: 1003423 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

使用ABAP(ADBC)和Java(JDBC)连接SAP HANA数据库

阅读更多

在表DBCON里维护一条记录,指向HANA数据库。con_ENV里填入HANA数据库的主机名和端口号。如vmXXXX:30015

 
DATA: ls_new TYPE DBCON.

ls_new-con_name = 'HAN'.
ls_new-dbms = 'HDB'.
ls_new-user_name = 'system'.
ls_new-password = 'Sap12345'.
ls_new-con_env = 'vml2018:30015'.


CALL FUNCTION 'DBCON_INSERT'
  EXPORTING
    DBCON_WORKAREA                = ls_new
  EXCEPTIONS
    DBCON_KEY_EXISTS              = 1
    SECURE_STORE_KEY_EXISTS       = 2
    SECURE_STORE_OTHER            = 3
    OTHERS                        = 4
          .
IF SY-SUBRC = 0.
   WRITE:/ 'Insert Successfully'.
ENDIF.
然后使用ABAP代码创建一个新的table,插入三条entry进行,再读出来,最后删除table.
TYPES:
     BEGIN OF result_t,
        key TYPE i,
        value TYPE string,
     END OF result_t.


DATA: connection TYPE dbcon-con_name VALUE 'HAN',
      stmt_ref TYPE REF TO cl_sql_statement,
      cx_sql_exception TYPE REF TO cx_sql_exception,
      lv_text TYPE string,
      res_ref TYPE REF TO cl_sql_result_set,
      d_ref TYPE REF TO DATA,
      result_tab TYPE TABLE OF result_t,
      result_line TYPE result_t,
      row_cnt TYPE i,
      con_ref TYPE REF TO cl_sql_connection.

con_ref = cl_sql_connection=>get_connection( connection ).
stmt_ref = con_ref->create_statement( ).

TRY.

   stmt_ref->execute_ddl( 'CREATE TABLE I042416_TESTPROC_TAB( key INT PRIMARY KEY, value NVARCHAR(255) )' ).
   stmt_ref->execute_update( 'INSERT INTO I042416_TESTPROC_TAB VALUES(1, ''First value'' )' ).
   stmt_ref->execute_update( 'INSERT INTO I042416_TESTPROC_TAB VALUES(2, ''Second value'' )' ).
   stmt_ref->execute_update( 'INSERT INTO I042416_TESTPROC_TAB VALUES(3, ''Third value'' )' ).
   res_ref = stmt_ref->execute_query( 'SELECT * FROM I042416_TESTPROC_TAB' ).
   GET REFERENCE OF result_tab INTO d_ref.
   res_ref->set_param_table( d_ref ).
   row_cnt = res_ref->next_package( ).
   stmt_ref->execute_ddl( 'DROP TABLE I042416_TESTPROC_TAB' ).
CATCH cx_sql_exception INTO cx_sql_exception.
   lv_text = cx_sql_exception->get_text( ).
   WRITE:/ 'Error:' , lv_text.
ENDTRY.

LOOP AT result_tab INTO result_line.
   WRITE:/ 'Key:' , result_line-key, ' Value:', result_line-value.
ENDLOOP.  

Java实现类似:


public static void main(String[] args) {
             try
             {
                    Class.forName("com.sap.db.jdbc.Driver");
                    System.out.println("Create a connection...");
              con = (com.sap.db.jdbc.trace.Connection) DriverManager
                       .getConnection("jdbc:sap://<HANA数据库主机名>:30015",// ,
                                "system", "此处填入登录密码");
                    cs = (com.sap.db.jdbc.trace.CallableStatement) con.prepareCall("call I042416_two_par(NULL, NULL)");
                    cs.execute();
                   
                    int index = 0;
                    do
                    {
                           int rowCount = 0;
                           com.sap.db.jdbc.trace.ResultSet rs = (com.sap.db.jdbc.trace.ResultSet)cs.getResultSet();
                           ResultSetMetaData metaData = rs.getMetaData();
                           int columnCount = metaData.getColumnCount();
                           while (rs != null && rs.next())
                           {
                                 for (int i = 1; i <= columnCount; i++)
                                 {
                                        System.out.print(rs.getString(i) + " ");
                                        if (i == columnCount)
                                        {
                                               System.out.println();
                                        }
                                 }
                                 System.out.println("Current Result Set Index:" + index + " Row Count: " + rowCount++);
                          
                           }
                           System.out.println("Result Set Index: " + index++);                          
                    } while(cs.getMoreResults());
             }

console打印结果:数据能够成功通过JDBC从HANA数据库读取出来。 

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

 
 
0
0
分享到:
评论

相关推荐

    sap hana studio SAP HANA 数据库连接工具

    以下是对SAP HANA Studio及其与SAP HANA数据库连接相关知识点的详细说明: 1. **SAP HANA简介**: SAP HANA是一个创新的数据处理平台,以内存计算技术为基础,实现了实时业务分析和数据处理。它将数据库、数据仓库...

    HA400 ABAP Programming on SAP HANA.pdf

    根据提供的文件内容,我们可以提取以下关于SAP HANA和ABAP编程的知识点。 首先,文件标题“HA400 ABAP Programming on SAP HANA.pdf”明确指出了本教材聚焦于在SAP HANA平台上进行ABAP编程的教学。ABAP(Advanced ...

    SAP HANA-STUDIO 安装包

    5. **安装组件**:SAP HANA Studio包含多个组件,如开发工具、模型工具、数据库连接器等。安装过程中,根据你的需求选择要安装的组件。 6. **连接HANA实例**:安装完成后,需要配置连接到你的SAP HANA数据库实例。...

    sap 与 oracle数据库的连接

    最后,需要检查目录是否存在,使用Al11命令实现,并建立DBCO连接,检查数据库连接状态,使用DB02命令实现。 在SAP开发中,连接Oracle数据库需要遵循一定的步骤和顺序,包括建立目录、解压缩文件、建立虚连接、修改...

    SAP_HANA_STUDIO_X64_2.3.37.zip

    2. **数据库管理**:该IDE提供了一整套数据库管理工具,如数据库连接管理、数据导入/导出、备份和恢复、性能监控等,帮助管理员确保HANA系统的稳定运行。 3. **开发工具**:HANA Studio支持开发基于HANA的应用程序...

    SAP HANA STUDIO X64 Version: 2.3.37

    SAP HANA Studio是一款专为SAP HANA数据库设计的集成开发环境(IDE),它提供了全方位的工具和服务,便于开发者、管理员以及数据分析师对HANA系统进行管理和开发。这款工具在X64平台上运行,其Version 2.3.37确保了...

    SAP HANA SELECT语法(带参数)

    SAP HANA是德国SAP公司开发的一款高性能的内存数据库,它为实时分析和应用程序提供支持。HANA的核心特点之一是能够对大量数据进行快速的查询和处理。在使用HANA进行数据查询时,我们经常需要引入参数来动态地影响...

    ABAP on SAP HANA – Building an End-to-End App from HANA via ABAP to SAPUI5

    本文档主要介绍了如何使用ABAP在SAP HANA平台上构建一个从数据库层(SAP HANA)到前端展示层(SAPUI5)的完整应用程序。此文档由Jens Weiler于2013年10月发布,旨在为开发者提供关于SAP HANA、ABAP以及SAPUI5技术栈...

    ABAP Development for SAP HANA

    SAP HANA will soon celebrate its second birthday. Hard to believe, but this technology has been on the market for almost two years now. During this time, its use potential increased significantly: ...

    SAP HANA数据计算后小数点位数异常

    1. **确认当前使用的SAP HANA版本**:确保当前使用的版本已包含了对这个问题的修复。可以查阅官方文档中的“受影响版本”部分来确认是否需要升级或打补丁。 2. **应用官方提供的补丁或更新**:按照官方指导文档中的...

    SAP_HANA_Developer_Guide_for_SAP_HANA_Studio_en.pdf

    非原生应用则可能依赖于其他技术,如Java或ABAP,但仍然可以利用SAP HANA的数据存储和分析功能。 对于开发者而言,开始使用SAP HANA Studio之前需要满足一些先决条件,例如安装合适的操作系统和软件版本,以及配置...

    hana数据库客户端.zip

    SAP HANA Studio是基于Eclipse开发的,所以如果您有过Eclipse或者是MyEclipse的使用经验的话,对SAP HANA Studio的上手还是比较快的。  2.在屏幕左侧的Navigator 的空白区单击鼠标右键,选择add System.打开配置...

    abap调用hana存储过程.pdf

    ### ABAP调用HANA存储过程详解 #### 标题:ABAP调用HANA存储过程 ...通过遵循这些步骤和建议,开发者可以轻松地在ABAP程序中集成和利用SAP HANA存储过程的强大功能,进而提升应用程序的整体性能和用户体验。

    SAP HANA中的SLT简介.docx

    3. 一旦配置完成,SLT服务器会自动为SAP HANA创建数据库连接。 在成功配置SLT服务器后,可以开始导入数据。SLT将自动检测源系统中的更改,并将这些更改实时地复制到SAP HANA数据库中,确保数据的一致性和时效性。 ...

    SAP HANA studio window版本2.4.126

    在Windows平台上,版本2.4.126是该工具的一个特定更新,它包含了各种改进和增强功能,旨在提升开发人员的工作效率和数据库管理能力。 1. **SAP HANA概述**: SAP HANA是一个基于内存计算的高性能数据处理平台,...

    hdbclient SAP_HANA_CLIENT X86 WINDOWS 32BIT

    1. **数据访问**:它允许用户通过ODBC(开放数据库连接)和JDBC(Java数据库连接)接口连接到SAP HANA数据库,进行SQL查询、数据导入导出等操作。 2. **开发工具支持**:HDBClient与各种开发环境如ABAP Development...

    SAP_HANA升级自开发程序修改案例

    SAP HANA 是一种基于内存的关系数据库管理系统,它可以提供高性能、实时数据处理和分析的能力。因此,升级到 HANA 数据库可以提高系统性能、降低成本和提高业务灵活性。 SAP HANA 升级自开发程序修改的方法 在升级...

    sap abap调用java生成的webservice手册

    【SAP ABAP调用Java生成的Web Service手册】 在SAP系统中,与外部服务进行交互时,经常需要调用由Java等其他语言编写的Web Service。本手册详细介绍了如何在MyEclipse环境中生成Web Service,并在SAP ABAP环境中...

    ABAP for HANA

    ADBC(ABAP Database Connectivity)则提供了一种机制,使 ABAP 程序可以直接访问 SAP HANA 数据库,提高了数据访问效率。 - **Open SQL 增强**:Open SQL 是 ABAP 的一个组成部分,用于数据库操作。在 ABAP for ...

    SAP HANA SQLScript Guide

    它支持使用 PL/SQL 和 ABAP 语言的开发人员过渡到 HANA 平台,因为 SQLScript 提供了与这两种语言相似的编程元素和概念。SQLScript 代码可以在 SAP HANA Studio 中编写、测试和部署。 指南中可能还提到了与 SAP ...

Global site tag (gtag.js) - Google Analytics