zoukankan      html  css  js  c++  java
  • JDBC DataSource

      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://blog.163.com/muyexin@126/blog/static/399680832010819105528741/

  • 相关阅读:
    Dubbo2.0
    Dubbo--RPC框架
    ActiveMQ消息队列
    quartz开源任务调度框架
    webService
    crud最常用
    springBoot第三天
    springmvc--依赖
    springBoot第二天
    pom.xml和settings.xml的下载优先级
  • 原文地址:https://www.cnblogs.com/losesea/p/3691395.html
Copyright © 2011-2022 走看看