SAP Hana 數(shù)據(jù)庫編程接口 - JDBC

Hana JDBC 驅(qū)動

安裝 SAP HANA Client 后闪萄,安裝目錄的 ngdbc.jar 就是 JDBC 數(shù)據(jù)庫驅(qū)動刺啦。主要注意 url 的寫法和 Driver 的名稱 :

  • Driver: com.sap.db.jdbc.Driver
  • url: jdbc:sap://ip_addr:30015
  • 端口:3 + instance number + 15

代碼示例

因為和其他數(shù)據(jù)庫并沒有區(qū)別,這里直接貼上代碼锦爵。

實體類

package stone.hanatest;

public class EmployeeEntity {
    public String EmpId;
    public String Gender;
    public int Age;
    public String EMail;
    public String PhoneNr;
    public String Education;
    public String MaritalStat;
    public int NrOfChildren;
}

CRUD 代碼

package stone.hanatest;

import java.sql.*;

public class HanaCRUD {
    private static final String DRIVER = "com.sap.db.jdbc.Driver";
    private static final String URL = "jdbc:sap://192.168.2.100:30015?reconnect=true";
    private String user = "STONE";
    private String pwd = "hanapwd";
    
    public Connection getConnection(String userid, String pwd) 
            throws ClassNotFoundException, SQLException{
        
        Class.forName(DRIVER);
        return DriverManager.getConnection(URL, userid, pwd);       
    }
    
    public void release(Connection conn, Statement stmt) throws SQLException{
        if (stmt != null){
            stmt.close();
        }
        
        if (conn != null){
            conn.close();
        }
    }
    
    public void printEmployees() throws ClassNotFoundException, SQLException{
        Connection conn = this.getConnection(user, pwd);
        String sql = "SELECT * FROM STONE.EMP_MASTER";
        PreparedStatement pStmt = conn.prepareStatement(sql);
        
        ResultSet rst = pStmt.executeQuery();
        
        while(rst.next()){
            System.out.print(rst.getString("EMP_ID") + "|");
            System.out.print(rst.getString("GENDER") + "|");
            System.out.print(rst.getString("EMAIL"));       
            
            // new line
            System.out.println();
        }   
        
        this.release(conn, pStmt);
    }
    
    public int insertEmployee(EmployeeEntity emp) 
            throws ClassNotFoundException, SQLException{
        
        Connection conn = this.getConnection(user, pwd);
        String sql = "INSERT INTO STONE.EMP_MASTER VALUES (?,?,?,?,?,?,?,?)";
        PreparedStatement pStmt = conn.prepareStatement(sql);
        
        pStmt.setString(1, emp.EmpId); // starts from 1 instead of 0
        pStmt.setString(2, emp.Gender);
        pStmt.setInt(3, emp.Age);
        pStmt.setString(4, emp.EMail);
        pStmt.setString(5, emp.PhoneNr);
        pStmt.setString(6, emp.Education);
        pStmt.setString(7, emp.MaritalStat);
        pStmt.setInt(8, emp.NrOfChildren);
        
        int count = pStmt.executeUpdate();
        
        this.release(conn, pStmt);
        
        return count;       
    }
    
    public int deleteEmployee(String empId) 
            throws ClassNotFoundException, SQLException{
        
        Connection conn = this.getConnection(user, pwd);
        String sql = "DELETE FROM STONE.EMP_MASTER WHERE EMP_ID=? ";
        PreparedStatement pStmt =  conn.prepareStatement(sql);
        
        pStmt.setString(1, empId);
        int count = pStmt.executeUpdate();
        
        this.release(conn, pStmt);
        
        return count;
    }
}

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末垄分,一起剝皮案震驚了整個濱河市影锈,隨后出現(xiàn)的幾起案子延曙,更是在濱河造成了極大的恐慌豌鹤,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搂鲫,死亡現(xiàn)場離奇詭異傍药,居然都是意外死亡,警方通過查閱死者的電腦和手機魂仍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門拐辽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人擦酌,你說我怎么就攤上這事俱诸。” “怎么了赊舶?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵睁搭,是天一觀的道長。 經(jīng)常有香客問我笼平,道長园骆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任寓调,我火速辦了婚禮锌唾,結果婚禮上,老公的妹妹穿的比我還像新娘夺英。我一直安慰自己晌涕,他們只是感情好,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布痛悯。 她就那樣靜靜地躺著余黎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪载萌。 梳的紋絲不亂的頭發(fā)上惧财,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音扭仁,去河邊找鬼可缚。 笑死,一個胖子當著我的面吹牛斋枢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播知给,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼瓤帚,長吁一口氣:“原來是場噩夢啊……” “哼描姚!你這毒婦竟也來了?” 一聲冷哼從身側響起戈次,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤轩勘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后怯邪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绊寻,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年悬秉,在試婚紗的時候發(fā)現(xiàn)自己被綠了澄步。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡和泌,死狀恐怖村缸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情武氓,我是刑警寧澤梯皿,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站县恕,受9級特大地震影響东羹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜忠烛,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一属提、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧况木,春花似錦垒拢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屹耐,卻和暖如春尸疆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背惶岭。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工寿弱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人按灶。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓症革,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鸯旁。 傳聞我的和親對象是個殘疾皇子噪矛,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容