您好,登錄后才能下訂單哦!
通過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等相關命令,后續再做記錄吧
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。