我最近开始学习Hibernate技术,并且必须使用Hibernate从数据库中获取数据。问题是我只能通过SSH隧道连接到数据库。我可以在hibernate.cfg.xml
文件中使用任何属性来解决此问题吗?或者你可以建议另一种新手可以理解的方式。
答案 0 :(得分:5)
也许使用Jsch。 Some examples可以给你一条路。
另一种方法可能是实现自己的SSH SocketFactory,可能有http代理处理程序和端口转发的东西。一个起点可能是:
SSHSocketFactory fact = new SSHSocketFactory(sshHost, sshPort, new SSHPasswordAuthenticator(sshUser, sshPassword));
sock = fact.createSocket(host, port);
您可以将您的实施与hibernate.cfg.xml
文件中的以下参数相关联:
hibernate.connection.socketFactory=com.mysql.jdbc.NamedPipeSocketFactory
或者可能喜欢他们here或here的方式(后者是更好的方式)。
好ssh的东西!