微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Jdbc使用SSH连接mysql

pom.xml

    <dependency>
      <groupId>MysqL</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.44</version>
    </dependency>

    <dependency>
      <groupId>com.jcraft</groupId>
      <artifactId>jsch</artifactId>
      <version>0.1.54</version>
    </dependency>

config.properties

#host
host_ip=192.168.159.112
host_name=root
host_password=****

#MysqL
ip=127.0.0.1
db=test
name=root
password=****

代码

package com.myproject.demo;

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

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

/**
 * Hello World!
 *
 */
public class App {

    private static Session session;

    public static void main( String[] args ) throws IOException {

        InputStream resourceAsstream = ClassLoader.getSystemClassLoader()
                .getResourceAsstream("config.properties");
        Properties properties = new Properties();
        properties.load(resourceAsstream);
        String ip = properties.getProperty("ip");
        String db = properties.getProperty("db");
        String name = properties.getProperty("name");
        String password = properties.getProperty("password");
        String host_ip = properties.getProperty("host_ip");
        String host_name = properties.getProperty("host_name");
        String host_password = properties.getProperty("host_password");

        int localPort = 0;
        try {
            localPort = openSSH(host_ip,host_name,host_password);
        } catch (Exception e) {
            e.printstacktrace();
        }

        try {
            Class.forName("com.MysqL.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printstacktrace();
        }
        Connection connection = null;
        try {
            connection = DriverManager.getConnection("jdbc:MysqL://"+ip+":"+localPort+"/"+db+"?characterEncoding=utf8&useSSL=false",name,password);
        } catch (sqlException e) {
            e.printstacktrace();
        }

        String sql = "select version()";
        Statement statement = null;
        try {
            statement = connection.createStatement();
            ResultSet rs = statement.executeQuery(sql);
            while (rs.next()){
                String version = rs.getString("version()");
                System.out.println("MysqL version: "+version);
            }
        } catch (sqlException e) {
            e.printstacktrace();
        }

        closeSSH();
    }

    public static int openSSH(String host,String username,String password) throws Exception{

        JSch jSch =new JSch();
        session = jSch.getSession(username,host,22);
        session.setPassword(password);
        session.setConfig("StrictHostKeyChecking", "no");
        session.connect();
        System.out.println(session.getServerVersion());
        int assinged_port = session.setPortForwardingL(3307,host,3306);
        System.out.println("localhost:"+assinged_port);
        return assinged_port;

    }

    public static void closeSSH(){
        session.disconnect();
    }
}

  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐