这两个JDBC连接是否有任何性能差异?

时间:2013-02-15 08:12:52

标签: java mysql jdbc

我在jdbc连接中使用了 MySqlDataSource 。我使用了以下代码

MysqlDataSource d = new MysqlDataSource();
d.setUser("user");
d.setPassword("pass");
d.setServerName("hostname.com");
d.setDatabaseName("db");
Connection c = d.getConnection();

我也搜索了Configuring a MySQL Datasource in Apache Tomcat的选项。

这两者之间有任何性能差异吗?哪一个最好用?

3 个答案:

答案 0 :(得分:1)

在tomcat中配置数据源将帮助您在运行在同一 tomcat 中的应用程序之间共享相同的数据源。 数据源将由容器管理(在您的情况下为tomcat)。

虽然代码中创建的数据源将由您的应用程序创建,但只能由该应用程序使用。

因此,如果您在tomcat上运行多个应用程序并访问相同的数据源,那么在 tomcat 中配置数据源将是一个很好的方法并且具有性能因素,因为只有一个数据源已创建,并且没有为每个应用程序分别建立连接

但是如果你只有一个应用程序,你使用的第一种方法是好的

答案 1 :(得分:0)

他们都使用内部相同的驱动程序,我不认为这里的性能有很大不同,我想如果你只需要在那个地方访问数据库而且最终用户不应该使用他自己的身份验证你可以使用它直接来自java,但是如果你需要在不同的地方建立连接,那么使用apache配置配置它可能会有所帮助,特别是如果有任何变化,如数据库服务器,用户名或任何你不需要在代码中获取改变它,如果最终用户必须设置自己的配置,这可能非常重要。

答案 2 :(得分:0)

配置Connection池(如tomcat提供的池)的改进主要是您实际创建和关闭更少的连接。

使用池时,当您向池请求Connection时,它将查看是否已创建任何连接并且可以重复使用,如果有,它将为您提供它(而不是创建它)一个新的Connection,这是一个繁重的操作)。您仍然必须close()由Tomcat提供Connection,因此Tomcat知道它现在可以在再次请求时重用。

此外,池的优点是您的代码不需要知道Connection的配置数据。他只是从给定的池中请求Connection并且sysadmin配置它,允许更大的灵活性(系统管理员不需要知道如何配置您的应用程序,只需要如何配置相当标准的Tomcat)。