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