天天看點

jsch連接配接mysql_使用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等相關指令,後續再做記錄吧