java jdbc使用SSH隧道连接mysql数据库demo

原地址:https://blog.csdn.net/earbao/article/details/50216999

package autotest.data.service;

import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;

import java.sql.*;

import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;

import java.sql.*;

public class JdbcConnect {

public static void main(String[] args) {

String user = "user ";  //数据库用户名
String password = "password ";  //数据库密码
try {
// 1、加载驱动
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// 2、创建连接
Connection conn = null;  
        try{  
            go();  
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/", user, password);  
            getData(conn);  
  
        } catch (SQLException e) {  
            e.printStackTrace();  
        }  
}


public static void go() {  
String url = "url"; //远程MySQL服务器
String sshurl = "sshurl "; //SSH服务器
String sshuser = "sshuser "; //SSH连接用户名
String sshpassword = "sshpassword"; //SSH连接密码
        try {  
            JSch jsch = new JSch();  
            Session session = jsch.getSession(sshuser, sshurl, 22);  
            session.setPassword(sshpassword);  
            session.setConfig("StrictHostKeyChecking", "no");  
            session.connect();  
            System.out.println(session.getServerVersion());//这里打印SSH服务器版本信息  
  
           int assinged_port = session.setPortForwardingL(3306, url, 3306);//端口映射 转发  数据库服务器地址url
  
           System.out.println("localhost:" + assinged_port);  

        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  

private static void getData(Connection conn) throws SQLException {


// 获取所有表名
Statement statement = conn.createStatement();
ResultSet resultSet = statement.executeQuery(" "select * from help_keyword"");

// 获取列名
ResultSetMetaData metaData = resultSet.getMetaData();
for (int i = 0; i < metaData.getColumnCount(); i++) {
// resultSet数据下标从1开始
String columnName = metaData.getColumnName(i + 1);
int type = metaData.getColumnType(i + 1);
if (Types.INTEGER == type) {
// int
} else if (Types.VARCHAR == type) {
// String
}
System.out.print(columnName + "\t");
}
System.out.println();
// 获取数据
while (resultSet.next()) {
for (int i = 0; i < metaData.getColumnCount(); i++) {
// resultSet数据下标从1开始
System.out.print(resultSet.getString(i + 1) + "\t");
}
System.out.println();


}
statement.close();
conn.close();
}


}


  1. <dependency>  
  2.             <groupId>com.jcraft</groupId>  
  3.             <artifactId>jsch</artifactId>  
  4.             <version>0.1.53</version>  
  5.         </dependency>  
  6.         <dependency>  
  7.             <groupId>mysql</groupId>  
  8.             <artifactId>mysql-connector-java</artifactId>  
  9.             <version>5.1.36</version>  
  10.         </dependency>  

猜你喜欢

转载自blog.csdn.net/qq_19299071/article/details/80735534