<Resource name="jdbc/DB" type="javax.sql.DataSource"/>
  <ResourceParams name="jdbc/DB">
    <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <parameter>
      <name>password</name>
      <value>password</value>
    </parameter>
    <parameter>
      <name>url</name>
      <value>jdbc:microsoft:sqlserver://xxx.xxx.xxx.xxx:1433;DatabaseName=DatabaseName</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
    </parameter>
    <parameter>
      <name>username</name>
      <value>username</value>
    </parameter>
dbcp的连接池!org.apache.commons.dbcp.BasicDataSourceFactory下面这句是恒要写吗?
    <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>是什么概念啊?

解决方案 »

  1.   

    dbcp的连接池!org.apache.commons.dbcp.BasicDataSourceFactory下面这句是恒要写吗? 
            <parameter> 
                <name> factory </name> 
                <value> org.apache.commons.dbcp.BasicDataSourceFactory </value> 
            </parameter> 这句是什么意思啊 ?
      

  2.   

    这个是jndi 工厂模式。
    这儿的resource被定义成是一个jndi 的一个资源,必须通过ObjectFactory 来获得一个对象实例,返回对象类型是 javax.sql.DataSource。而org.apache.commons.dbcp.BasicDataSourceFactory是实现ObjectFactory接口的并且返回类型是 javax.sql.DataSource的objectfactory。上面的参数 都是为 org.apache.commons.dbcp.BasicDataSourceFactory 服务的。总的来说就是jndi规范。程序员大致了解就可以了
      

  3.   

    既然使用了 DataSource, 那就必须得指定一个 DataSource的实现DBCP 是 apache 的一个实现而已。如果你用其它的 DataSource, 可以换他们的。
      

  4.   

    y,也许Tomcat默认用这个,不过我们没有必要在这种地方犹豫,写上就对了!
      

  5.   

    DataSource和ObjectFactory是sun定义的数据连接池标准的接口,ObjectFactory负责从你的配置文件里面读取url、driverClassName、password之类的信息来创建一个数据源。它们都只是接口,具体要怎么实现取决于web容器或者其它提供数据源服务的程序。tomcat中实现DataSource接口的类是org.apache.commons.dbcp.BasicDataSource,实现ObjectFactory接口的是org.apache.commons.dbcp.BasicDataSourceFactory类,它里面有一个createDataSource(Properties p)通过p从你的配置XML文件中创建一个数据源。这些创建数据源的类都在lib\tomcat-dbcp.jar文件里面,你用winrar打开就可以看到这个class文件标准要求你可以通过factory参数指定数据源的包装程序,比如你自己开发了一系列的程序实现了标准,扩展上面的ObjectFactory接口的类叫做org.yours.DSFactory,那你就可以设置成
            <parameter> 
                <name> factory </name> 
                <value>org.yours.DSFactory</value> 
            </parameter> 
    Tomcat会用你的程序创建数据源,如果不指定的话tomcat只有接口没有实现类怎么创建数据源