当前位置: 首页 > article >正文

Java连接HANA数据库

package hs.hsapp.util;

import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class HanaJdbc {
private static final String DRIVER = “com.sap.db.jdbc.Driver”; //jdbc 4.0
private static final String URL = “jdbc:sap://IP:30041?reconnect=true”;

public List<Map<Object, Object>> select(String sql) {
    List<Map<Object, Object>> list = new ArrayList<>();
    try{
        Connection con = this.getConnection(DRIVER, URL, "USR", "PWD");
        PreparedStatement pstmt = con.prepareStatement(sql);
        ResultSet rs = pstmt.executeQuery();
        //this.processResult(rs);
        ResultSetMetaData rsmd = rs.getMetaData();
        int colNum = rsmd.getColumnCount();
        while (rs.next()) {
            Map<Object,Object> map = new HashMap<>();
            for(int i = 1; i <= colNum; i++) {
                //System.out.println("col: " + rsmd.getColumnName(i) + ",val: " + rs.getObject(i));
                map.put(rsmd.getColumnName(i),rs.getObject(i));
            }
            list.add(map);
        }
        this.closeConnection(con, pstmt);
    }catch (Exception ex) {
        ex.printStackTrace();
    }
    return list;
}

private void processResult(ResultSet rs) throws Exception {
    if (rs.next()) {
        ResultSetMetaData rsmd = rs.getMetaData();
        int colNum = rsmd.getColumnCount();
        for (int i = 1; i <= colNum; i++) {
            if (i == 1) {
                System.out.print(rsmd.getColumnName(i));
            } else {
                System.out.print("\t" + rsmd.getColumnName(i));
            }

        }
        System.out.print("\n");
        System.out.println("———————–");
        do {
            for (int i = 1; i <= colNum; i++) {
                if (i == 1) {
                    System.out.print(rs.getString(i));
                } else {
                    System.out.print("\t"
                            + (rs.getString(i) == null ? "null" : rs
                            .getString(i).trim()));
                }

            }
            System.out.print("\n");
        } while (rs.next());
    } else {
        System.out.println("query not result.");
    }

}

private Connection getConnection(String driver, String url, String user,
                                 String password) throws Exception {
    Class.forName(driver);
    return DriverManager.getConnection(url, user, password);

}

private void closeConnection(Connection con, Statement stmt)
        throws Exception {
    if (stmt != null) {
        stmt.close();
    }
    if (con != null) {
        con.close();
    }
}

}


http://www.kler.cn/a/456248.html

相关文章:

  • 腾讯音乐:说说Redis脑裂问题?
  • MYSQL访问控制,第2阶段:请求验证
  • 【数据仓库】spark大数据处理框架
  • springboot整合log4j2案例以及异常输出格式案例2
  • RAGFlow 基于深度文档理解构建的开源 RAG引擎 - 使用Ollama添加大模型
  • Springboot配置嵌入式服务器
  • vue Promise使用
  • 什么是缓存穿透、缓存击穿、缓存雪崩,在项目中是如何解决和预防?它们分别会带来什么危害?
  • MyBatis知识点笔记
  • 【Websocket和nginx配置】
  • 实验五 时序逻辑电路部件实验
  • 如何在idea中搭建SpringBoot项目
  • 使用 Docker 搭建 Hadoop 集群
  • Day52 图论part03
  • llm知识梳理
  • Github 2024-12-28 Rust开源项目日报 Top10
  • AIGC在电影与影视制作中的应用:提高创作效率与创意的无限可能
  • 简单园区网拓扑实验
  • Android OpenGl(二) Shader
  • 基于C#了解垃圾回收机制