Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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 如何获取数据源?_Java_Database_Exception_Jdbc_Connection - Fatal编程技术网

Java 如何获取数据源?

Java 如何获取数据源?,java,database,exception,jdbc,connection,Java,Database,Exception,Jdbc,Connection,我不确定如何获取数据源对象。我能够使用DriverManager方法获得到本地主机上运行的SQL数据库的连接,但每次尝试使用DataSource方法时,我都会遇到异常(主要用于命名) 我想知道的是: 是否可以为本地托管数据库获取数据源对象 是否需要发布DataSource类,还是像DriverManager那样,您只需要在不创建新类的情况下获得连接 你能举个例子吗 DataSource允许主要从连接池获取JDBC连接。DataSource对象表示特定的DBMS或某些其他数据源,例如文件。如果一家

我不确定如何获取
数据源
对象。我能够使用
DriverManager
方法获得到本地主机上运行的SQL数据库的连接,但每次尝试使用
DataSource
方法时,我都会遇到异常(主要用于命名)

我想知道的是:

  • 是否可以为本地托管数据库获取
    数据源
    对象
  • 是否需要发布
    DataSource
    类,还是像
    DriverManager
    那样,您只需要在不创建新类的情况下获得连接
  • 你能举个例子吗

  • DataSource
    允许主要从连接池获取JDBC连接。
    DataSource
    对象表示特定的DBMS或某些其他数据源,例如文件。如果一家公司使用多个数据源,它将为每个数据源部署一个单独的
    数据源
    对象。
    DataSource
    接口由驱动程序供应商实现。将DB连接属性文件外部化,并使用JNDI获取对象。使用
    数据源
    只需要知道JNDI名称。应用服务器关心细节

    它可以通过三种不同的方式实现:

  • 基本的
    DataSource
    实现生成标准的连接对象,这些对象在分布式事务中不被池化或使用
  • 支持连接池的
    DataSource
    实现生成参与连接池的连接对象,即可以回收的连接
  • 支持分布式事务的
    数据源
    实现生成可用于分布式事务的连接对象,即访问两个或多个DBMS服务器的事务
  • 与Spring类似,您可以在XML文件中配置数据源,然后(1)将其注入bean,(2)从
    ApplicationContext
    获取数据源

    DataSource ds = (DataSource) ApplicationContextProvider.
                                getApplicationContext().getBean("myDataSource");
    Connection c = ds.getConnection();
    
    建议阅读: