Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这两种JDBC连接之间有性能差异吗?_Java_Mysql_Jdbc - Fatal编程技术网

Java 这两种JDBC连接之间有性能差异吗?

Java 这两种JDBC连接之间有性能差异吗?,java,mysql,jdbc,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(); 我还搜索了一个选项 这两者在性能上有什么不同吗?哪一个最好使用?它们都使用同一个驱动程序

我在jdbc连接中使用了MySqlDataSource

MysqlDataSource d = new MysqlDataSource();
d.setUser("user");
d.setPassword("pass");
d.setServerName("hostname.com");
d.setDatabaseName("db");
Connection c = d.getConnection();
我还搜索了一个选项


这两者在性能上有什么不同吗?哪一个最好使用?

它们都使用同一个驱动程序,我认为这里的性能差别不大,我想如果您只需要在那个地方访问数据库,而最终用户不应该使用自己的身份验证,您可以直接从java使用它,但是,如果您需要在不同的位置上进行连接,那么使用apache配置将非常有帮助,特别是如果数据库服务器、用户名或其他不需要在代码中更改的内容发生更改,如果最终用户必须设置自己的配置,这可能非常重要。

他们都使用相同的内部驱动程序,我认为这里的性能差别不大,我想如果您只需要在那个地方访问数据库,而最终用户不应该使用自己的身份验证,您可以直接从java使用它,但是,如果您需要在不同的位置上进行连接,那么使用apache配置将非常有帮助,特别是如果数据库服务器、用户名或其他不需要在代码中更改的内容发生更改,如果最终用户必须设置自己的配置,这可能非常重要。

在tomcat中配置数据源将帮助您在运行相同tomcat的应用程序之间共享相同的数据源。该数据源将由容器(在您的例子中是tomcat)管理

而在代码中创建的数据源将由您的应用程序创建,并且只能由该应用程序使用

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


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

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

而在代码中创建的数据源将由您的应用程序创建,并且只能由该应用程序使用

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


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

,那么配置
连接池
的改进(正如tomcat提供的那样)主要是您实际创建和关闭的连接要少得多

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


此外,池的优点是,您的代码不需要知道
连接的配置数据。他只需要从给定的池中请求一个
连接,系统管理员对其进行配置,允许更大的灵活性(系统管理员不需要知道如何配置您的应用程序,只需要知道如何配置更标准的Tomcat即可)。

配置
连接池的改进(正如tomcat提供的)主要是,实际上创建和关闭的连接要少得多

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


此外,池的优点是,您的代码不需要知道
连接的配置数据
。他只需要从给定池请求
连接
,系统管理员对其进行配置,从而实现更大的灵活性(系统管理员不需要知道如何配置您的应用程序,只需要知道如何配置更标准的Tomcat).

但是如果您只有一个应用程序,那么您使用的第一种方法是好的
您忘记了连接池。是的@SJuan76 u是对的,但是我在这里给出了一个通用的语句,因为我们也可以使用代码实现连接池。无论如何,感谢您指出。
但是如果您只有一个应用程序您使用的第一种方法是很好的
您忘记了连接池。是的@SJuan76 u是正确的,但我在这里给出了一个通用的语句,因为我们也可以使用代码实现连接池。无论如何,感谢您指出。