hana的三种连接方式


环境准备

  • java1.6以上版本
  • hana jdbc jar包

通过cmd连接hana

  • 在hana jdbc jar包所在目录执行,其中-u 数据库账号,密码,-n  IP:端口 ,-c   操作语句

  • 端口:3 + instance number + 15

示例:

d:\Program Files\sap\hdbclient>java -jar ngdbc.jar -u SYSTEM,password -n 172.23.1.123:39015 -c "SELECT DATABASE_NAME FROM SYS.M_DATABASES"

studio连接hana

  • host name:IP
  • 其安装方法之类百度一大把

hana的三种连接方式_第1张图片                         

JDBC连接

  • 项目中导入所需jar包   

    示例1   

package hanatest;

import java.sql.*;

public class hana1 {
    public static String connectionString = "jdbc:sap://172.23.1.123:39015";
    public static String user = "SYSTEM";
    public static String password = "password";

    public static void main(String[] argv) {
        Connection connection = null;
        try {
            connection = DriverManager.getConnection(connectionString, user, password);
        } catch (SQLException e) {
            System.err.println("Connection Failed. User/Passwd Error? Message: " + e.getMessage());
            return;
        }
        if (connection != null) {
            try {
                System.out.println("Connection to HANA successful!");
                Statement stmt = connection.createStatement();
                ResultSet resultSet = stmt.executeQuery("select 'hello world' from dummy");
                resultSet.next();
                String hello = resultSet.getString(1);
                System.out.println(hello);
            } catch (SQLException e) {
                System.err.println("Query failed!");
            }
        }
    }

}

示例2

package hanatest;

import java.sql.*;

/**
 * JDBC Sample.
 */
public class JDBCDemoHANA {


    private static final String DRIVER = "com.sap.db.jdbc.Driver";
    private static final String URL = "jdbc:sap://172.23.1.123:39015?reconnect=true";

    public JDBCDemoHANA() {

    }

    public static void main(String[] args) {
        JDBCDemoHANA demo = new JDBCDemoHANA();
        try {
            demo.select();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void select() throws Exception {
        Connection con = this.getConnection(DRIVER, URL, "SYSTEM","password");
        PreparedStatement pstmt = con.prepareStatement("select USER_ID,USER_NAME,USER_MODE from SYS.USERS");
        ResultSet rs = pstmt.executeQuery();
        this.processResult(rs);
        this.closeConnection(con, pstmt);

    }

    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();
        }
    }

}

          

你可能感兴趣的:(hana的三种连接方式)