JSch是一個Java實現的SSH協議庫,可以用于連接SSH服務器進行遠程命令執行、文件傳輸等操作。
而MySQL則是一種流行的關系型數據庫系統,廣泛用于Web應用開發中。
在Java應用中使用JSch連接MySQL,可以實現遠程數據庫管理和操作,下面是一個簡單的示例:
import com.jcraft.jsch.*; import java.sql.*; public class JschMySQLDemo { public static void main(String[] args) { String host = "example.com"; String user = "username"; String password = "password"; String database = "dbname"; int port = 22; JSch jsch = new JSch(); Session session = null; try { session = jsch.getSession(user, host, port); session.setPassword(password); session.setConfig("StrictHostKeyChecking", "no"); session.connect(); int localPort = 3306; String remoteHost = "localhost"; int remotePort = 3306; session.setPortForwardingL(localPort, remoteHost, remotePort); Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:" + localPort + "/" + database; Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM users"); while (rs.next()) { String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("name=" + name + ", age=" + age); } rs.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } finally { if (session != null) { session.disconnect(); } } } }
上面的代碼中,我們使用JSch連接SSH服務器,并設置本地端口轉發,將連接到本地3306端口的請求轉發到遠程MySQL服務器的3306端口上。
然后,我們使用JDBC連接到本地MySQL服務器進行查詢操作,最后關閉連接,釋放資源。