博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC DataSource
阅读量:6138 次
发布时间:2019-06-21

本文共 1490 字,大约阅读时间需要 4 分钟。

  What is DataSource?

作为 DriverManager 设施的替代项,DataSource 对象是获取连接的首选方法。实现DataSource 接口的对象通常在基于 Java(TM) Naming and Directory Interface (JNDI) API 的命名服务中注册。增强程序的可移植性;DataSource是一种方便的手段.

DataSource 接口由驱动程序供应商实现。共有三种类型的实现:

1.         基本实现 - 生成标准 Connection 对象(此时DataSource的作用与DriverManager完全一样)。

2.         连接池实现 - 生成自动参与连接池的 Connection 对象。此实现与中间层连接池      管理器一起使用。

3.         分布式事务实现 - 生成一个 Connection 对象,该对象可用于分布式事务,并且几乎始终参与连接池。此实现与中间层事务管理器一起使用,并且几乎始终与连接池管理器一起使用。

    取数据库连接的方式

1.        第一种:

              Class.forName("数据库驱动类的名字");// 注册

              Connection con = DriverManager.getConnection(url,userName,password);

              编码本身对底层的数据源很依赖,可移植性差

2.        第二种:

              Context ctx = new InitialContext();

              DataSource ds = (DataSource)ctx.lookup("jdbc/tarena");

              Connection con = ds.getConnection()

                     DataSource接口主要方法:getConnection()返回一个数据库连接。

                     DataSource实现类主要方法:

                     setURL(String url);

                     setUser(String user);

                     setPassword(String password);

              可移植性好,缺点:会增加应用开发的复杂性,因为使用它的时候要提供以各应用服务器的支持。

       例子:

       Mysql版本

    public static Connection getMysqlConnectionThruDataSource()

           throws SQLException {

       MysqlDataSource ds = new MysqlDataSource();

       ds.setURL("jdbc:mysql://localhost:3306/tarena");

       ds.setUser("narci");

       ds.setPassword("11");

       return ds.getConnection();

    }

    Oracle版本

    public static Connection getOracleConnectionThruDataSource()

           throws SQLException {

       OracleDataSource ds = new OracleDataSource();

       String url = "jdbc:oracle:thin:@192.168.0.100:1521:tarena";

       String username = "tarena";

       String password = "tarena";

       ds.setURL(url);

       ds.setUser(username);

       ds.setPassword(password);

       return ds.getConnection();

    }

转载地址:http://zskya.baihongyu.com/

你可能感兴趣的文章
Linux系统启动过程及其修复过程简析(CentOS5、6)
查看>>
CentOS 7 防火墙设置
查看>>
RHEL java 环境变量
查看>>
关于embedded linux的使用、开发、学习的一点自已的体会
查看>>
找到一部不错的c语言学习教程
查看>>
openstack 虚拟机添加网卡
查看>>
Groovy学习笔记(6)-javax.script.* API
查看>>
RocketMQ服务搭建
查看>>
微信支付 - 可以下单但是无法收到通知消息Log总显示begin notify
查看>>
分享我如何活用notepad++
查看>>
Object-c的基础概念
查看>>
自我关系的建立
查看>>
mysql读取配置文件的顺序
查看>>
《游戏程序设计模式》 2 - 顺序模式
查看>>
数据过滤器注解@Filter 如何在hibernate、spring data jpa中调用
查看>>
Eclipse上GIT插件EGIT使用手册之九_Rebase和Merge的区别
查看>>
关闭进程中打印信息
查看>>
安装memcached软件并用简单脚本做测试
查看>>
MySQL表新增字段默认值处理的一处小细节
查看>>
MEMCACHE TIME_WAIT过多的解决方法
查看>>