我正在尝试连接到mysql服务器,但这需要5秒钟。
showTime();
Class.forName("com.mysql.jdbc.Driver");
conn = (Connection) DriverManager.getConnection("jdbc:mysql://192.168.1.212:3306/db",username.getText(),password.getText());
showTime();
答案 0 :(得分:2)
我的问题实际上是mysql服务器。我运行的是Windows Server 2008R2,在我用尽所有可能的答案后,我决定卸载Windows并安装Ubuntu Server。在那之后,完全相同的代码片段完美无缺。
答案 1 :(得分:0)
我建议您使用Connection Pool
连接已创建并存储在池中,而不是在运行时创建。
在软件工程中,连接池是维护的数据库连接的缓存,以便在将来对数据库的请求需要时可以重用连接。
连接池用于增强数据库上执行命令的
performance
。
我已经共享了一个很好的ConnectionUtil类来管理整个应用程序的单个类中的所有连接。
使用JNDI
将data-source与应用程序绑定,而不是在java类本身中硬编码用户名/密码和配置。
在Connecting with DataSource Objects
上的 Java Tutorial 下进行了更好的解释
DataSource
个对象可以提供连接池和分布式事务。此功能对于企业数据库计算至关重要。
StackOverflow上还有一个帖子Why do we use a DataSource instead of a DriverManager?也可以解释它。
static{
Class.forName("com.mysql.jdbc.Driver");
}
答案 2 :(得分:0)
Braj对于连接池是正确的,但是如果你的应用程序没有在一个重型容器中执行,并且万一只是一个很小的数据库访问,我建议你用mysql客户端测试你的连接,找出哪个部分很慢(您的应用程序或DBMS本身)。