连接数据库的两种方式 终于搞明白了!

java应用程序连接数据库的方式一般来说有两种

1. 通过java.sql.DriverManager来得到数据库的连接。

    平常所说的 

    Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
    String user = "db2admin";
    String password = "db2kingdom";
    String url = "jdbc:db2://192.168.47.1:50000/TESTDB2";
    conn = DriverManager.getConnection(url,user,password);
   
    return conn

    就是这种方式。

2.使用javax.sql.DataSource的方式连接数据库。

   在使用连接池的时候用过是这么写的

    DataSource ds = null;
   try {
    Context ctx = new javax.naming.InitialContext();
    ds = (javax.sql.DataSource) (DataSource) ctx.lookup("jdbc/ccsb");

   } catch (NamingException e) {
    System.out.println("===初始化数据源失败!指定的JNDI不存在:jdbc/ccsb);
   } catch (Exception e) {
    e.printStackTrace();
   }
   return ds;

     其中 对于数据源的管理(DataSource)又可以分为两种方式

          (1)交由应用服务器来管理,然后再应用服务器的JNDI对象中通过looku() 方 s法查找得到。

           例如:在tomcat的server.xml文件中

                         auth="container"

                         type="javax.sql.DataSource"

                         DriverclassName="oracle.jdbc.driver.OracleDriver"

                           url="jdbc:oracle:thin:@192.168.0.8:1521:ora9i"
                          username="ccsb"
                          password="ccsb"
                          maxActive="20"
                          maxIdle="10"
                          maxWait="-1"/

 通过在中注册一个资源Resource,这时,该数据源就已经交由应用服务器来管理了.该应用启动的时候,该资源就会被实例话并在应用服务器JNDI对象中保存该实例的一个句柄“jdbc/ccsb”,当要使用该数据源的时候,可以通过lookup这个句柄来取得该对象,并将其强制转型

       (2)

交由第三方的数据源管理组件

如C3p0组件等,此时无法通过索引应用服务器的JNDI树来获得该数据源,因为JNDI是应用服务器相关的(JNDI是应用服务器的一个索引树)

数据库连接池

当使用数据源来操作数据库时,可以配置使用数据库连接池,来提高访问数据库的效率,对于连接池的管理也分为两种:1)应用服务器管理   2)第三方数据源管理组件来管理

文章来源http://cache.baidu.com/c?m=9d78d513d99b12eb0ba7837f7d01d7110e55f0227f89c7140fc3933f84652b171420b0fa7a65505584d13b275fa0131aacb22173441e3dedc0df883d8de8c97e689f27432141d95c5a8e43f2c94420dc70ce07bcb242a1edaf2fc5a5d080dc5657cb00067e83f58a5e01169b6ef14062e3ac8e48620556e5b3&p=8f33c64ad18a14e704bd9b7d090c&user=baidu

转载于:https://www.cnblogs.com/charles0731/archive/2010/11/19/1881898.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值