`
andy136566
  • 浏览: 285846 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

数据库连接池,数据源,数据库连接,JNDI,JAVA

阅读更多
连接数据库的两种方式:

在Java应用程序中,数据库的连接一般有两种方式来得到。一种是通过java.sql.DriverManager的方式来得到数据库连接。这种方式不依赖于应用服务的支持,但是也不提供数据库连接池的功能。另外一种方式是通过javax.sql.DataSource的方式来得到数据库连接。在传统基于J2EE的应用需要通过JNDI来得到数据源(javax.sql.DataSource)对象,然后再通过数据源来得到相应的数据库连接。常见的应用服务器都支持这种方式,且一般都提供了数据库连接池的支持。如果不打算用应用服务器来管理你的数据库连接池,可以使用第三方的连接池管理工具如C3p0

一)jdbc直接连接,如下所示:  

    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;

二)使用数据源

   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;

数据源的管理

一) 交由应用服务器来管理,然后在应用服务器的JNDI对象中通过lookup()方法来查找取得数据源.

在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这个句柄来取得该对象,并将其强制转型.

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

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

数据库连接池

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

[转]http://hi.baidu.com/zoho007/blog/item/d90a1063a16173630c33fa28.html
分享到:
评论

相关推荐

    Java 数据库连接泄漏 解决方法

    基于weblogic,应对数据库连接泄漏的解决方法; 包含临时解决方法和数据连接池泄露监控,并可追踪到某个类某行代码。

    Java数据库编程宝典3

    4.6 连接池 4.7 分布式事务处理 4.7.1 分布式事务管理 4.7.2 Connection对象 4.8 SQL语句 4.8.1 Statement对象 4.8.2 PreparedStatement语句 4.8.3 CallableStatement 4.9 事务 4.9.1 事务独立性等级 ...

    JDBC 3.0数据库开发与设计

    4.7.1 连接池数据源(Connection PoolDataSource) 4.7.2 连接池处理事件 4.7.3 三层环境下的连接池操作 4.7.4 连接池和DataSource实现 4.7.5 包含连接池的数据源配置 4.7.6 池连接对象对于语句的重新利用 ...

    java开发——留言系统

    可能需要修改sunny.guestbook.util包中的DBConn类,本网站采用的是连接池技术连接数据库,需要在weblogic控制台中创建一个JNDI名为myjndi的数据源,连接oracle数据库,配置过程和创建SQL Server的数据源类似。...

    Java数据库编程宝典2

    4.6 连接池 4.7 分布式事务处理 4.7.1 分布式事务管理 4.7.2 Connection对象 4.8 SQL语句 4.8.1 Statement对象 4.8.2 PreparedStatement语句 4.8.3 CallableStatement 4.9 事务 4.9.1 事务独立性等级 ...

    数据池连接Name jdbc is not bound in this Context解决方案

    配置tomcat7sqlserver数据连接池java 利用数据源对象建立数据库连接时的错误: Name jdbc is not bound in this Context 解决方案

    Java数据库编程宝典1

    4.6 连接池 4.7 分布式事务处理 4.7.1 分布式事务管理 4.7.2 Connection对象 4.8 SQL语句 4.8.1 Statement对象 4.8.2 PreparedStatement语句 4.8.3 CallableStatement 4.9 事务 4.9.1 事务独立性等级 ...

    Java数据库编程宝典4

    4.6 连接池 4.7 分布式事务处理 4.7.1 分布式事务管理 4.7.2 Connection对象 4.8 SQL语句 4.8.1 Statement对象 4.8.2 PreparedStatement语句 4.8.3 CallableStatement 4.9 事务 4.9.1 事务独立性等级 ...

    Dbutils项目实例

    1 对于数据表的读操作 他可以把结果转换成List Array Set等java集合 便于程序员操作; 2 对于数据表的写操作 也变得很简单(只需写...3 可以使用数据源 使用JNDI 数据库连接池等技术来优化性能 重用已经构建好的 [更多]

    JAVA上百实例源码以及开源项目源代码

     Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器地址  ...

    Java数据编程指南

    Java数据对象(JDO) 概述 JDO对象模型 JDO API JDO实例的生命周期 JDO和EJB 开发可持久类 范例应用程序 配置FFJ 配置数据源 捕获数据库模式 把类映射到数据库对象 编译类 ...

    c3p0jar包及配置文件(可用)

    内容概要:c3p0连接池需要jar包.rar以及相关配置文件 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI...适合人群:正在学习使用数据库连接池 里面的配置文件直接可用,少走弯路,节约时间,方便使用,注释清晰!

    java+servlet+javabean实验报告(5)

    基于MVC模式加深对模型层的理解,模型层负责实体和业务逻辑的实现。掌握如何使用JNDI从数据库连接池中获取数据源。会读取基于属性文件的配置信息,实现通用的数据库操作类,会自定义异常处理

    JAVA上百实例源码以及开源项目

    百度云盘分享 ... Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText();...

    mchange-commons-java-0.2.3.4.jar

    C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。 该jar用于与最新版的c3p0配合使用, 若使用c3p0-0.9.5.2.jar 请下载mchange-...

    c3p0-0.9.5.2的jar包

    c3p0-0.9.5.2jar包 数据库连接池,java学习关于mysql必不可少的一部分,C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     19.1.2 使用配置文件指定的数据库连接池  19.1.3 从容器中获得数据源  19.1.4 由Java应用本身提供数据库连接  19.2 配置事务类型  19.3 把SessionFactory与JNDI绑定  19.4 配置日志  19.5 使用XML格式的配置...

    c3p0数据库.rar

    这里是java的c3p0池的jar包和xml,仅供学习 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。

Global site tag (gtag.js) - Google Analytics