MySQL jdbc连接耗时太长

时间:2014-07-26 13:08:40

标签: java mysql jdbc

我正在尝试连接到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();

3 个答案:

答案 0 :(得分:2)

我的问题实际上是mysql服务器。我运行的是Windows Server 2008R2,在我用尽所有可能的答案后,我决定卸载Windows并安装Ubuntu Server。在那之后,完全相同的代码片段完美无缺。

答案 1 :(得分:0)

我建议您使用Connection Pool连接已创建并存储在池中,而不是在运行时创建。

  

在软件工程中,连接池是维护的数据库连接的缓存,以便在将来对数据库的请求需要时可以重用连接。

     

连接池用于增强数据库上执行命令的performance

我已经共享了一个很好的ConnectionUtil类来管理整个应用程序的单个类中的所有连接。

使用JNDIdata-source与应用程序绑定,而不是在java类本身中硬编码用户名/密码和配置。

Connecting with DataSource Objects

上的 Java Tutorial 下进行了更好的解释
  

DataSource个对象可以提供连接池和分布式事务。此功能对于企业数据库计算至关重要。

StackOverflow上还有一个帖子Why do we use a DataSource instead of a DriverManager?也可以解释它。


Static Initialization Block

中移动驱动程序类加载步骤
static{
    Class.forName("com.mysql.jdbc.Driver");
}

答案 2 :(得分:0)

Braj对于连接池是正确的,但是如果你的应用程序没有在一个重型容器中执行,并且万一只是一个很小的数据库访问,我建议你用mysql客户端测试你的连接,找出哪个部分很慢(您的应用程序或DBMS本身)。