我有一个Java应用程序需要连接到外部MySQL数据库。但是,我们有一个能够登录到计算机的受限IP地址列表。问题是我们的一个客户旅行,因此有一个动态IP地址。我们选择使用http://www.noip.com的路由来考虑动态IP地址。但是,如何将两个程序链接在一起存在问题。 java应用程序仍然引用[ip address] .hlrn.qwest.net而不是[sub-domain] .no-ip.biz。
我可以在Java中使用一个函数来覆盖我的IP地址用于连接数据库的内容吗?
感谢。
答案 0 :(得分:0)
理想情况下,连接字符串应该已外部化,以便可以轻松修改。如果它更多地是对IP的政策约束,那么我认为无论我们采用哪种方式;它仍然可以被视为违规。无论如何,我假设你已经考虑过了。
在任何操作系统上,您都有一个可用于覆盖DNS名称解析的HOSTS文件。唯一的限制是您只能将IP而不是主机名映射到另一个主机名。但是,您可以将已映射到IP的主机名别名。例如,如果您添加以下
127.0.0.1 [ip address].hlrn.qwest.net
到您的HOSTS文件(顺便说一下,它位于Windows上的C:\WINDOWS\system32\drivers\etc\hosts
)您的Java应用程序将开始仅与localhost建立连接。因此,您可以添加以下内容以重定向,并使您的Java应用程序连接到no-ip.biz
。
ip.add.re.ss [sub-domain].no-ip.biz [ip address].hlrn.qwest.net
要使此DNS进程自动化并重定向而不处理实际的IP并不容易,并且需要摆弄自己的DNS设置。
答案 1 :(得分:0)
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Conne {
public static Connection GetConnection() throws ClassNotFoundException,SQLException
{
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://ip address /database name","username","password");
return connection;
}
}
创建此类后,您可以使用此类的引用或对象进行连接....我认为这将对您有所帮助..... :) :)