工作中遇到一个问题:在本地需要链接阿里云环境的数据库,因为阿里云是预生产环境,与本地网络隔离导致不能直链,只能使用SSH的方式建立通道。在网上找了几篇大都是讲java如何建立ssh通道的,或者使用的是JDBC的方式连接数据库,一直不知道如果使用mybatis是否也可以,最近测试了一次,发现完全是可以的。现将整个的过程简单记录下。
整个代码主要涉及两个类:MybatisUtil.java(通过mybatis连接mysql数据库)、SshChannel.java(SSH通道建立类)。代码如下:
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.Reader;
/**
* @author jinga
* @date 2019/05/14 10:14
* Description: 连接数据库
*/
public class MybatisUtil {
private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<SqlSession>();
private static ThreadLocal<SSHChannel> channelThreadLocal = new ThreadLocal<SSHChannel>();
p