通過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等相關指令,後續再做記錄吧