使用Hibernate通过SSH隧道获取数据

Vic*_*ria 5 java ssh hibernate

我最近开始学习Hibernate技术,并且必须使用Hibernate从数据库中获取数据.问题是我只能通过SSH隧道连接到数据库.我可以在hibernate.cfg.xml文件中使用任何属性来解决这个问题吗?或者你可以建议另一种新手可以理解的方式.

Thi*_*ryB 5

也许使用Jsch.一些例子可以给你一个方法.

另一种方法可能是实现自己的SSH SocketFactory,可能有http代理处理程序和端口转发的东西.一个起点可能是:

SSHSocketFactory fact = new SSHSocketFactory(sshHost, sshPort, new SSHPasswordAuthenticator(sshUser, sshPassword));

sock = fact.createSocket(host, port);
Run Code Online (Sandbox Code Playgroud)

您可以将您的实现与hibernate.cfg.xml文件中的以下参数相关联:

hibernate.connection.socketFactory=com.mysql.jdbc.NamedPipeSocketFactory
Run Code Online (Sandbox Code Playgroud)

或者也许就像他们在这里这里所做的那样(后者是更好的方式).

好ssh的东西!