转自: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实现,比如免费开源的有DBCP,C3P0和proxool等,中间件厂商比如ibm的websphere,bea的weblogic等也都有实现。 以下是DBCP的示例: BasicDataSource basicDataSource = new BasicDataSource(); 第三方DataSource
basicDataSource.setDriverClassName(“oracle.jdbc.OracleDriver”); basicDataSource.setUrl(“jdbc:oracle:thin:@<database>”); basicDataSource.setUsername(“user”); basicDataSource.setPassword(“password”); Connection connection=basicDataSource.getConnection();
以tomcat为例,将数据库驱动库复制到{tomcat}/commmon/lib目录下。 配置{tomcat}/conf/context.xml文件,加入:
结合JNDI的DataSource
<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文件中,这样更便于打包部署。
发表评论
-
JVM内存模型及垃圾收集策略解析
2011-09-25 01:56 863一 JVM内存模型 1.1 Java栈 Java栈 ... -
JVM基础概念总结:数据类型、堆与栈
2011-09-25 01:14 851数据类型 Java虚拟机中,数据类型可以分为两类:基本类型 ... -
JVM分代垃圾回收策略的基础概念
2011-09-25 01:07 720为什么要分代 分代的垃圾回收策略,是基于这样一个事实:不 ... -
理解静态变量惰性初始化的双检锁模式
2011-05-10 22:28 1217对于双检锁,其实有多种不同的用法,有很多种用法是无论 ... -
基本类型 加减运算 类型转换问题讨论
2011-03-09 14:56 972先来看下面的 代码: public class Tes ... -
Java util之常用数据类型特性盘点(Map 四种同步方式的性能比较)
2011-02-24 20:09 1882出处:http://www.iteye.com/topic/1 ... -
Java util之常用数据类型特性盘点 (HasMap深度分析)
2011-02-24 17:57 1266出处:http://www.iteye.com/topic/7 ... -
Java util之常用数据类型特性盘点 (三)
2011-02-24 16:22 1091Java util之常用数据类型特性盘点 (三) 出处 ... -
Java util之常用数据类型特性盘点 (二)
2011-02-24 16:07 1066Java util之常用数据类型特性盘点 (二) 出处 ... -
Java util之常用数据类型特性盘点(一)
2011-02-24 15:47 1000Java util之常用数据类型特性盘点 出处:http:// ... -
Java 中实例化对象方法
2011-02-24 13:57 10611、直接 new 调用默认构造器实例化对象,如: ... -
java 冒泡排序、选择排序、插入排序、快速排序二分法查找代码
2011-02-23 20:42 4075java 排序的代码 import java.util ... -
java collection集合框架
2011-02-23 17:19 1387Java集合框架使用总 ... -
java.sql.Date与java.util.Date 异同
2011-02-23 17:13 1333java.util.Date 包含日期和时间。 ... -
类的初始化顺序问题
2011-02-23 16:10 736一道面试题目,看代码: public class ... -
java clone方法使用详解
2011-02-23 15:39 909java clone方法使用 出处 ... -
Java数据类型
2011-02-23 15:04 709Java数据类型 JAVA语言中定义了8种基本的数据类型, ... -
java float double为什么精度会丢失
2011-02-23 14:39 5757由于对float或double 的使用不当,可能会出现精度丢失 ... -
java基础知识回顾(1)float/double 与封装类型Float/Double
2011-02-23 14:31 3547float/double 与封装类型Float/Double ... -
HashSet \LinkedHashSet\TreeSet 元素顺序
2011-02-23 13:36 1288import java.util.Arrays; im ...
相关推荐
JDBC2.0用一种替代的方法,使用DataSource的实现,代码变的更小巧精致,也更容易控制。 DataSource是一个代表数据源的对象,可以是一个关系数据库、电子表格、表格形式的文件等。DataSource对象的属性中包含了关于...
在这个例子中,`dataSource()`方法返回了一个`DataSource`实例,这个`bean`会被Spring容器管理。`@ConfigurationProperties`注解允许我们将YAML或properties配置文件中的属性绑定到`DataSource`的配置上,`prefix = ...
本文将深入探讨DataSource的使用方法及其配置文件的编写。 首先,DataSource的全称是Java Database Connectivity DataSource,它是Java.sql.DataSource接口的实现。这个接口定义了获取和管理数据库连接的一系列方法...
赠送jar包:dynamic-datasource-spring-boot-starter-3.4.1.jar; 赠送原API文档:dynamic-datasource-spring-boot-starter-3.4.1-javadoc.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.
// 使用dataSource的方法 } ``` **3. JdbcTemplate与NamedParameterJdbcTemplate** Spring提供了`JdbcTemplate`和`NamedParameterJdbcTemplate`,它们是简化数据库操作的工具类。它们通过`DataSource`获取连接,...
### 建立增强BW Datasource:使用...总之,在面对标准Business Content DataSource无法完全满足需求的情况时,通过编辑DataSource以及使用User Exit的方法可以有效地解决问题,为企业提供更多定制化的数据处理能力。
SpringBoot框架提供了多种方式来配置DataSource,本文主要介绍使用编程方式配置DataSource的方法。这种方法可以让开发者拥有更高级别的控制权,忽略自动配置过程,从而实现自定义的DataSource实现。 在SpringBoot中...
赠送jar包:dynamic-datasource-spring-boot-starter-3.4.1.jar; 赠送原API文档:dynamic-datasource-spring-boot-starter-3.4.1-javadoc.jar; 赠送源代码:dynamic-...使用方法:解压翻译后的API文档,用浏览器打
- 获取连接:调用DataSource的getConnection()方法,返回一个数据库连接。 - 使用连接:执行SQL语句,操作数据库。 - 释放连接:使用完毕后,必须调用Connection的close()方法,但这并不会真正关闭连接,而是将其...
通过分析这些文件,我们可以深入理解并实践 mybatis-plus-dynamic-datasource 的工作原理和使用方法。 总结起来,mybatis-plus-dynamic-datasource 为开发者提供了一种优雅的方式去管理和切换多数据源,同时保持了 ...
赠送jar包:spring-cloud-alibaba-sentinel-datasource-2021.1.jar; 赠送原API文档:spring-cloud-alibaba-sentinel-datasource-2021.1-javadoc.jar; 赠送源代码:spring-cloud-alibaba-...使用方法:解压翻译后的API
赠送jar包:sentinel-datasource-extension-1.8.0...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
然而,在设置了控件的 `DataSource` 属性后尝试直接修改其项集合(如通过调用 `Items.Clear()` 方法)时,可能会遇到如下错误提示:“设置 DataSource 属性后无法修改项集合”。这个问题在 WinForm 开发中相当常见,...
赠送jar包:sentinel-datasource-extension-1.8.0.jar;...使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请
4. **释放资源**:使用完数据库连接后,应调用`Connection`对象的`close()`方法,但这并不意味着实际关闭连接,而是将连接归还给连接池,供后续使用。 `DataSource`的使用不仅限于基本的数据库连接管理,还可以实现...
在方法执行的前后,通过拦截器判断需要使用的数据源,并将该数据源设置为当前线程的默认数据源。这样,后续的数据库操作就会使用到这个数据源。 3. **ThreadLocal**:在多线程环境中,每个线程可能需要使用不同的...
由于毕业后工作没有对接到专业问题,导致四五年没有碰过Winform程序了。突然由于工作问题,为了...cbTcid.DataSource = CustomerBLL.select(); cbTcid.ValueMember = Cid; cbTcid.DisplayMember = Cpname; } else { ret
例如,可能有一个`DataSource`类,用于创建数据源对象,并提供`connect()`方法连接数据源,`query()`方法执行查询,`fetch_data()`方法获取数据等。 Python库的强大在于其可扩展性和易用性,`datasource-0.1.0`库...
在这个类中,我们需要覆盖`determineCurrentLookupKey`方法,该方法返回当前应该使用的数据源的键。这个键可以根据环境变量、线程上下文或者其他业务逻辑来确定。 6. **事务管理**: 当使用动态数据源时,需要注意...