`
六十三
  • 浏览: 44206 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

DataSource 使用方法

阅读更多

转自:http://marshal.easymorse.com/archives/425

 

 

DataSource接口(javax.sql.DataSource)替代DriverManager获取Connection的方法,有以下好处:

  • 可以在部署时灵活更换Connection实现;
  • 可以更好的屏蔽数据库的相关性。

以下以oracle为例说明。

 

使用厂商DataSource

数据库厂商在提高JDBC2.0和以上版本的JDBC驱动中应该包含厂商的DataSource实现。

 

OracleDataSource ods = new OracleDataSource();
ods.setUser(“my_user”);
ods.setPassword(“my_password”);
ods.setURL(“jdbc:oracle:thin:@<database>”);
Connection conn = ods.getConnection();
 

 

第三方DataSource

第三方厂商也可提供DataSource实现,比如免费开源的有DBCP,C3P0和proxool等,中间件厂商比如ibm的websphere,bea的weblogic等也都有实现。

以下是DBCP的示例:

 BasicDataSource basicDataSource = new BasicDataSource();

basicDataSource.setDriverClassName(“oracle.jdbc.OracleDriver”); 
basicDataSource.setUrl(“jdbc:oracle:thin:@<database>”); 
basicDataSource.setUsername(“user”);
basicDataSource.setPassword(“password”); 
Connection connection=basicDataSource.getConnection();
 

结合JNDI的DataSource

以tomcat为例,将数据库驱动库复制到{tomcat}/commmon/lib目录下。

配置{tomcat}/conf/context.xml文件,加入:

<Resource name=”jdbc/demo” auth=”Container” type=”javax.sql.DataSource”
        driverClassName=”org.apache.derby.jdbc.ClientDriver”
        url=”jdbc:derby://localhost:1527/demo”
        username=”test”
        password=”test”
        maxActive=”2″
        maxIdle=”1″
        removeAbandoned=”true”
        maxWait=”300″ />

在程序中访问DataSource:

Context initContext = new InitialContext();

// 注意: 以下写法只适用于tomcat(java:/comp/env).
Context envContext = (Context) initContext.lookup(“java:/comp/env”);
dataSource = (DataSource) envContext.lookup(“jdbc/demo”);
 配置内容也可以加到webapp/META-INF/context.xml文件中,这样更便于打包部署。

 

分享到:
评论

相关推荐

    DataSource接口介绍与使用

    JDBC2.0用一种替代的方法,使用DataSource的实现,代码变的更小巧精致,也更容易控制。 DataSource是一个代表数据源的对象,可以是一个关系数据库、电子表格、表格形式的文件等。DataSource对象的属性中包含了关于...

    SpringBoot框架Datasource注入

    在这个例子中,`dataSource()`方法返回了一个`DataSource`实例,这个`bean`会被Spring容器管理。`@ConfigurationProperties`注解允许我们将YAML或properties配置文件中的属性绑定到`DataSource`的配置上,`prefix = ...

    DataSource

    本文将深入探讨DataSource的使用方法及其配置文件的编写。 首先,DataSource的全称是Java Database Connectivity DataSource,它是Java.sql.DataSource接口的实现。这个接口定义了获取和管理数据库连接的一系列方法...

    dynamic-datasource-spring-boot-starter-3.4.1-API文档-中文版.zip

    赠送jar包:dynamic-datasource-spring-boot-starter-3.4.1.jar; 赠送原API文档:dynamic-datasource-spring-boot-starter-3.4.1-javadoc.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.

    spring中dataSource的配置以及配合IOC的使用

    // 使用dataSource的方法 } ``` **3. JdbcTemplate与NamedParameterJdbcTemplate** Spring提供了`JdbcTemplate`和`NamedParameterJdbcTemplate`,它们是简化数据库操作的工具类。它们通过`DataSource`获取连接,...

    建立增强BW datasource

    ### 建立增强BW Datasource:使用...总之,在面对标准Business Content DataSource无法完全满足需求的情况时,通过编辑DataSource以及使用User Exit的方法可以有效地解决问题,为企业提供更多定制化的数据处理能力。

    SpringBoot使用编程方式配置DataSource的方法

    SpringBoot框架提供了多种方式来配置DataSource,本文主要介绍使用编程方式配置DataSource的方法。这种方法可以让开发者拥有更高级别的控制权,忽略自动配置过程,从而实现自定义的DataSource实现。 在SpringBoot中...

    dynamic-datasource-spring-boot-starter-3.4.1-API文档-中英对照版.zip

    赠送jar包:dynamic-datasource-spring-boot-starter-3.4.1.jar; 赠送原API文档:dynamic-datasource-spring-boot-starter-3.4.1-javadoc.jar; 赠送源代码:dynamic-...使用方法:解压翻译后的API文档,用浏览器打

    datasource

    - 获取连接:调用DataSource的getConnection()方法,返回一个数据库连接。 - 使用连接:执行SQL语句,操作数据库。 - 释放连接:使用完毕后,必须调用Connection的close()方法,但这并不会真正关闭连接,而是将其...

    mybatis-plus-dynamic-datasource

    通过分析这些文件,我们可以深入理解并实践 mybatis-plus-dynamic-datasource 的工作原理和使用方法。 总结起来,mybatis-plus-dynamic-datasource 为开发者提供了一种优雅的方式去管理和切换多数据源,同时保持了 ...

    spring-cloud-alibaba-sentinel-datasource-2021.1-API文档-中文版.zip

    赠送jar包:spring-cloud-alibaba-sentinel-datasource-2021.1.jar; 赠送原API文档:spring-cloud-alibaba-sentinel-datasource-2021.1-javadoc.jar; 赠送源代码:spring-cloud-alibaba-...使用方法:解压翻译后的API

    sentinel-datasource-extension-1.8.0-API文档-中文版.zip

    赠送jar包:sentinel-datasource-extension-1.8.0...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    解决WinForm设置 DataSource 属性后无法修改项集合

    然而,在设置了控件的 `DataSource` 属性后尝试直接修改其项集合(如通过调用 `Items.Clear()` 方法)时,可能会遇到如下错误提示:“设置 DataSource 属性后无法修改项集合”。这个问题在 WinForm 开发中相当常见,...

    sentinel-datasource-extension-1.8.0-API文档-中英对照版.zip

    赠送jar包:sentinel-datasource-extension-1.8.0.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请

    JDBC数据源(DataSource)的简单实现

    4. **释放资源**:使用完数据库连接后,应调用`Connection`对象的`close()`方法,但这并不意味着实际关闭连接,而是将连接归还给连接池,供后续使用。 `DataSource`的使用不仅限于基本的数据库连接管理,还可以实现...

    dynamic-datasource.zip

    在方法执行的前后,通过拦截器判断需要使用的数据源,并将该数据源设置为当前线程的默认数据源。这样,后续的数据库操作就会使用到这个数据源。 3. **ThreadLocal**:在多线程环境中,每个线程可能需要使用不同的...

    C# ComboBox控件“设置 DataSource 属性后无法修改项集合”的完美解决方法

    由于毕业后工作没有对接到专业问题,导致四五年没有碰过Winform程序了。突然由于工作问题,为了...cbTcid.DataSource = CustomerBLL.select(); cbTcid.ValueMember = Cid; cbTcid.DisplayMember = Cpname; } else { ret

    Python库 | datasource-0.1.0.zip

    例如,可能有一个`DataSource`类,用于创建数据源对象,并提供`connect()`方法连接数据源,`query()`方法执行查询,`fetch_data()`方法获取数据等。 Python库的强大在于其可扩展性和易用性,`datasource-0.1.0`库...

    动态切换Datasource

    在这个类中,我们需要覆盖`determineCurrentLookupKey`方法,该方法返回当前应该使用的数据源的键。这个键可以根据环境变量、线程上下文或者其他业务逻辑来确定。 6. **事务管理**: 当使用动态数据源时,需要注意...

Global site tag (gtag.js) - Google Analytics