您好,登錄后才能下訂單哦!
通過(guò)java的jsch連接遠(yuǎn)程數(shù)據(jù)庫(kù)
有時(shí)候我們本地代碼可能無(wú)法連接數(shù)據(jù)庫(kù),因?yàn)閿?shù)據(jù)庫(kù)增加了白名單,指定ip的服務(wù)器才可以連接到數(shù)據(jù)庫(kù),不過(guò)我們可以通過(guò)連接該指定ip的服務(wù)器,然后通過(guò)該服務(wù)器連接數(shù)據(jù)庫(kù),就像很多數(shù)據(jù)庫(kù)可視化軟件一樣。通過(guò)使用jsch,我們也可以在代碼層面實(shí)現(xiàn)這個(gè)功能。話(huà)不多說(shuō),直接開(kāi)碼:
JSch jsch = new JSch(); Session sess; //這里xxx.xxx.xxx.xxx為已加白名單的遠(yuǎn)程服務(wù)器 sess = jsch.getSession("ubuntu", "xxx.xxx.xxx.xxx", 22); sess.setPassword("*******"); sess.setConfig("StrictHostKeyChecking", "no"); sess.connect(); //這里xxx.xxx.xxx.xxx為數(shù)據(jù)庫(kù)連接地址 //通過(guò)這個(gè)set方法可以將遠(yuǎn)程的3306端口指定為本地的3308端口,因?yàn)楣P者本地3306已使用,故指定為3308端口 sess.setPortForwardingL(3308,"xxx.xxx.xxx.xxx",3306); try { //讀取配置文件,需要注意的是,這里的配置文件中數(shù)據(jù)庫(kù)地址為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的標(biāo)識(shí)字符串 List ll=session.selectList(statement); System.out.println(ll); session.commit(); session.close(); sess.disconnect();
當(dāng)然,使用jsch實(shí)現(xiàn)ssh連接不僅僅限于實(shí)現(xiàn)數(shù)據(jù)庫(kù)的連接,還可以對(duì)ssh連接上的服務(wù)器進(jìn)行操作,比如執(zhí)行shell等相關(guān)命令,后續(xù)再做記錄吧
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。