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:@”);

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:@”);

basicDataSource.setUsername(“user”);

basicDataSource.setPassword(“password”);

Connection connection=basicDataSource.getConnection();

结合JNDI的DataSource

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

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

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文件中,这样更便于打包部署。

分享到:

2011-03-03 14:26

浏览 2543

评论

java datasource使用_DataSource 使用方法相关推荐

  1. java Datasource,数据库连接池

    java Datasource,数据库连接池 目前有多重方式创建数据库连接池:JNDI,DBCP,C3P0等 为什么需要连接池: 使用java API DriverManager.getConnect ...

  2. Java通过DBCP连接池方法实现JDBC代码案例

    Java和大数据系列 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等 ...

  3. eclipse java调用c 代码吗_linux下通过eclipse开发用java调用c程序的方法

    linux下通过eclipse开发用java调用c程序的方法: 1.先建立好java工程并建立java文件如下: public class testso {     static {         ...

  4. java类的注释模板_IDEA添加Java类注释模版的方法

    本文介绍了idea添加java类注释模版的方法,分享给大家,具体如下: idea版本:intellij idea 2017.2.5 x64 eclipse能在类上方输入/**,回车添加类注释模版,但i ...

  5. cloning java_深入浅出Java中的clone克隆方法,写得太棒了!

    作者:张纪刚 blog.csdn.net/zhangjg_blog/article/details/18369201/ 2019-03-24 10:33:04 Java中对象的创建 clone 顾名思 ...

  6. java如何用c 的方法_JAVA如何调用C/C++方法

    JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能.解决JAVA对本地操作的一种方法就是JNI. JAVA通过JNI调用本地方法, ...

  7. java多线程中的join方法详解

    java多线程中的join方法详解 方法Join是干啥用的? 简单回答,同步,如何同步? 怎么实现的? 下面将逐个回答. 自从接触Java多线程,一直对Join理解不了.JDK是这样说的:join p ...

  8. Java高级特性:clone()方法

    标签:ringbuf   his   硬件   throws   port   protect   序列化   ext   this 目录 源码 深拷贝和浅拷贝 对象串行化实现拷贝 常见面试题 源码 ...

  9. https Java SSLException protocol_version的问题解决方法

    https Java SSLException protocol_version的问题解决方法 参考文章: (1)https Java SSLException protocol_version的问题 ...

  10. Java报异常时getMessage()方法返回null

    Java报异常时getMessage()方法返回null 参考文章: (1)Java报异常时getMessage()方法返回null (2)https://www.cnblogs.com/runnin ...

最新文章

  1. 经典SQL语句大全(提升篇)
  2. 关于可观察性的三大支柱,你应该了解这些
  3. 神策数据荣获“2017年度中国双创好项目”奖项
  4. GitHub Pages和每个项目绑定自定义域名(支持多个和顶级域名)
  5. [Kafka与Spark集成系列一] Spark入门
  6. linux删除git账号密码忘记了,linux清除git账号密码
  7. Dubbo作者亲述:那些辉煌、沉寂与重生的故事 1
  8. 使用kafka解决zookeeper is not a recognized option when executing kafka-console-consumer.sh报错
  9. python模块的使用方法_python中requests模块的使用方法
  10. kali linux操作系统
  11. python变量作用域图解_图解python全局变量与局部变量相关知识
  12. 如何在CAD中输入带圈序号?
  13. GIS电力平台功能需求
  14. 阿里巴巴矢量图库的具体使用用法可以变色改变大小
  15. 挑战年薪50万不是梦,你要的高级架构师课程来袭!
  16. java基础—输入/输出
  17. 佩尔方程(超详细推导+例题讲解) 每日一遍,算法再见!
  18. axure键盘弹出_AxureRP实现键盘交互效果
  19. Linux C/C++源码实现常见命令mkdir
  20. LayUi 折叠表格

热门文章

  1. CSS中的em运用详解,1em等于多少像素?
  2. 虚拟化技术原理(CPU、内存、IO)
  3. hdu3966-线段树
  4. Python 使用 OpenCC 实现中文简繁转换
  5. 新安装Win10操作系统有必要设置的几个技巧
  6. java猜拳_java实现猜拳小游戏
  7. [cf] Deltix Round, Autumn 2021 A. Divide and Multiply
  8. 天下一品茗介绍:小户赛茶叶的特点是什么
  9. OpenBSD 7.2版发布 新增苹果M2芯片和高通骁龙8cx芯片组的支持
  10. 与计算机相关的创意网名,过目不忘创意好听网名