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