標籤:ssh 資料庫 jsch
通過java的jsch串連遠端資料庫
有時候我們本地代碼可能無法串連資料庫,因為資料庫增加了白名單,指定ip的伺服器才可以串連到資料庫,不過我們可以通過串連該指定ip的伺服器,然後通過該伺服器串連資料庫,就像很多資料庫可視化軟體一樣。通過使用jsch,我們也可以在代碼層面實現這個功能。話不多說,直接開碼:
JSch jsch = new JSch(); Session sess; //這裡xxx.xxx.xxx.xxx為已加白名單的遠程伺服器 sess = jsch.getSession("ubuntu", "xxx.xxx.xxx.xxx", 22); sess.setPassword("*******"); sess.setConfig("StrictHostKeyChecking", "no"); sess.connect(); //這裡xxx.xxx.xxx.xxx為資料庫連接地址 //通過這個set方法可以將遠端3306連接埠指定為本地的3308連接埠,因為筆者本地3306已使用,故指定為3308連接埠 sess.setPortForwardingL(3308,"xxx.xxx.xxx.xxx",3306); try { //讀取設定檔,需要注意的是,這裡的設定檔中資料庫地址為localhost,連接埠為剛剛指定的3308 reader = Resources.getResourceAsReader("conf.xml"); } catch (IOException e) { e.printStackTrace(); } sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sqlSessionFactory.openSession(); String statement = "com.saishangmingzhu.getData";//映射sql的標識字串 List ll=session.selectList(statement); System.out.println(ll); session.commit(); session.close(); sess.disconnect();
當然,使用jsch實現ssh串連不僅僅限於實現資料庫的串連,還可以對ssh串連上的伺服器進行操作,比如執行shell等相關命令,後續再做記錄吧
本文出自 “塞上名豬” 部落格,請務必保留此出處http://zuohao1990.blog.51cto.com/6057850/1907153
使用jsch串連資料庫