jdbc3objectfactory.java

来自「PostgreSQL7.4.6 for Linux」· Java 代码 · 共 81 行

JAVA
81
字号
package org.postgresql.jdbc3;import java.util.*;import javax.naming.*;import org.postgresql.jdbc2.optional.PGObjectFactory;/** * JDBC3 version of the Object Factory used to recreate objects * from their JNDI references. * * @author Aaron Mulder (ammulder@alumni.princeton.edu) * @version $Revision: 1.1 $ */public class Jdbc3ObjectFactory extends PGObjectFactory{    /**     * Dereferences a PostgreSQL DataSource.  Other types of references are     * ignored.     */    public Object getObjectInstance(Object obj, Name name, Context nameCtx,                                    Hashtable environment) throws Exception    {        Reference ref = (Reference) obj;        if (ref.getClassName().equals(Jdbc3SimpleDataSource.class.getName()))        {            return loadSimpleDataSource(ref);        }        else if (ref.getClassName().equals(Jdbc3ConnectionPool.class.getName()))        {            return loadConnectionPool(ref);        }        else if (ref.getClassName().equals(Jdbc3PoolingDataSource.class.getName()))        {            return loadPoolingDataSource(ref);        }        else        {            return null;        }    }    private Object loadPoolingDataSource(Reference ref)    {        // If DataSource exists, return it        String name = getProperty(ref, "dataSourceName");        Jdbc3PoolingDataSource pds = Jdbc3PoolingDataSource.getDataSource(name);        if (pds != null)        {            return pds;        }        // Otherwise, create a new one        pds = new Jdbc3PoolingDataSource();        pds.setDataSourceName(name);        loadBaseDataSource(pds, ref);        String min = getProperty(ref, "initialConnections");        if (min != null)        {            pds.setInitialConnections(Integer.parseInt(min));        }        String max = getProperty(ref, "maxConnections");        if (max != null)        {            pds.setMaxConnections(Integer.parseInt(max));        }        return pds;    }    private Object loadSimpleDataSource(Reference ref)    {        Jdbc3SimpleDataSource ds = new Jdbc3SimpleDataSource();        return loadBaseDataSource(ds, ref);    }    private Object loadConnectionPool(Reference ref)    {        Jdbc3ConnectionPool cp = new Jdbc3ConnectionPool();        return loadBaseDataSource(cp, ref);    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?