我不确定如何获得DataSource
个对象。我能够使用DriverManager
方法获取与在localhost上运行的SQL数据库的连接,但每次我尝试使用DataSource
方法执行此操作时,我最终会获得异常(主要用于命名) )。
我想知道的是:
DataSource
对象?DataSource
类,或者它是否就像DriverManager
只是在没有新类创建的情况下获得连接?答案 0 :(得分:6)
DataSource
允许主要从连接池获取JDBC连接。 DataSource
对象表示特定的DBMS或某些其他数据源,例如文件。如果公司使用多个数据源,它将为每个数据源部署单独的DataSource
对象。 DataSource
接口由驱动程序供应商实现。您外部化数据库连接属性文件并使用JNDI获取对象。使用Datasource
,您只需要知道JNDI名称。应用程序服务器关心细节。
它可以通过三种不同的方式实现:
DataSource
实现生成标准的Connection对象,这些对象未在分布式事务中合并或使用。DataSource
实现会生成参与连接池的Connection对象,即可以回收的连接。DataSource
实现生成可在分布式事务中使用的Connection对象,即访问两个或多个DBMS服务器的事务。就像,在Spring中,您可以在XML文件中配置数据源,然后(1)将其注入您的bean,(2)从ApplicationContext
获取它。
DataSource ds = (DataSource) ApplicationContextProvider.
getApplicationContext().getBean("myDataSource");
Connection c = ds.getConnection();
建议阅读: