poolingdatasourcetest.java

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

JAVA
123
字号
package org.postgresql.test.jdbc2.optional;import java.sql.SQLException;import java.sql.Statement;import org.postgresql.test.TestUtil;import org.postgresql.jdbc2.optional.PoolingDataSource;import org.postgresql.jdbc2.optional.BaseDataSource;/** * Minimal tests for pooling DataSource.  Needs many more. * * @author Aaron Mulder (ammulder@chariotsolutions.com) * @version $Revision: 1.1.6.2 $ */public class PoolingDataSourceTest extends BaseDataSourceTest{    private final static String DS_NAME = "JDBC 2 SE Test DataSource";    /**     * Constructor required by JUnit     */    public PoolingDataSourceTest(String name)    {        super(name);    }    protected void tearDown() throws Exception    {        super.tearDown();        if (bds instanceof PoolingDataSource)        {            ((PoolingDataSource) bds).close();        }    }    /**     * Creates and configures a new SimpleDataSource.     */    protected void initializeDataSource()    {        if (bds == null)        {            bds = new PoolingDataSource();            bds.setServerName(TestUtil.getServer());            bds.setPortNumber(TestUtil.getPort());            bds.setDatabaseName(TestUtil.getDatabase());            bds.setUser(TestUtil.getUser());            bds.setPassword(TestUtil.getPassword());            ((PoolingDataSource) bds).setDataSourceName(DS_NAME);            ((PoolingDataSource) bds).setInitialConnections(2);            ((PoolingDataSource) bds).setMaxConnections(10);        }    }    /**     * In this case, we *do* want it to be pooled.     */    public void testNotPooledConnection()    {        try        {            con = getDataSourceConnection();            String name = con.toString();            con.close();            con = getDataSourceConnection();            String name2 = con.toString();            con.close();            assertTrue("Pooled DS doesn't appear to be pooling connections!", name.equals(name2));        }        catch (SQLException e)        {            fail(e.getMessage());        }    }    /**     * In this case, the desired behavior is dereferencing.     */    protected void compareJndiDataSource(BaseDataSource oldbds, BaseDataSource bds)    {        assertTrue("DataSource was serialized or recreated, should have been dereferenced", bds == oldbds);    }    /**     * Check that 2 DS instances can't use the same name.     */    public void testCantReuseName()    {        initializeDataSource();        PoolingDataSource pds = new PoolingDataSource();        try        {            pds.setDataSourceName(DS_NAME);            fail("Should have denied 2nd DataSource with same name");        }        catch (IllegalArgumentException e)        {        }    }    /**     * Closing a Connection twice is not an error.     */    public void testDoubleConnectionClose() throws SQLException    {        con = getDataSourceConnection();        con.close();        con.close();    }    /**     * Closing a Statement twice is not an error.     */    public void testDoubleStatementClose() throws SQLException    {        con = getDataSourceConnection();        Statement stmt = con.createStatement();        stmt.close();        stmt.close();        con.close();    }}

⌨️ 快捷键说明

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