⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testjdbcdatasource.java

📁 jspwiki source code,jspwiki source code
💻 JAVA
字号:
package com.ecyrd.jspwiki;import java.io.File;import java.io.FileInputStream;import java.io.PrintWriter;import java.net.URL;import java.net.URLClassLoader;import java.security.AccessController;import java.security.PrivilegedAction;import java.sql.Connection;import java.sql.Driver;import java.sql.SQLException;import java.util.Properties;import javax.sql.DataSource;/** * Mock JDBC DataSource class that manages JDBC connections to a database whose * driver class, JDBC JAR location and connection details are specified in an * arbitrary propreties file. Gemerally, we pass on any exceptions encountered * as unchecked, since it means that the test case that references this class is * failing somehow. * @author Andrew R. Jaquith */public class TestJDBCDataSource implements DataSource{    private static Driver       m_driver;    protected static final String PROPERTY_DRIVER_CLASS  = "jdbc.driver.class";    protected static final String PROPERTY_DRIVER_JAR    = "jdbc.driver.jar";    protected static final String PROPERTY_DRIVER_URL    = "jdbc.driver.url";    protected static final String PROPERTY_USER_ID       = "jdbc.user.id";    protected static final String PROPERTY_USER_PASSWORD = "jdbc.user.password";    protected String              m_jdbcPassword         = null;    protected String              m_jdbcURL              = null;    protected String              m_jdbcUser             = null;    protected int                 m_timeout              = 0;    protected PrintWriter         m_writer               = null;    /**     * Constructs a new instance of this class, using a supplied properties     * File as the source for JDBC driver properties.     * @param file the properties file containing JDBC properties     * @throws Exception     */    public TestJDBCDataSource( File file ) throws Exception    {        super();        initializeJDBC( file );    }    /**     * Returns a JDBC connection using the specified username and password.     * @return the database connection     * @see javax.sql.DataSource#getConnection()     */    public Connection getConnection() throws SQLException    {        return getConnection( m_jdbcUser, m_jdbcPassword );    }    /**     * Returns a JDBC connection to the database.     * @return the database connection     * @see javax.sql.DataSource#getConnection(java.lang.String,     * java.lang.String)     */    public Connection getConnection( String username, String password ) throws SQLException    {        Properties connProperties = new Properties();        connProperties.put( "user", m_jdbcUser );        connProperties.put( "password", m_jdbcPassword );        Connection connection = m_driver.connect( m_jdbcURL, connProperties );        return connection;    }    /**     * Returns the login timeout for the data source.     * @return the login timeout, in seconds     * @see javax.sql.DataSource#getLoginTimeout()     */    public int getLoginTimeout() throws SQLException    {        return m_timeout;    }    /**     * Returns the log writer for the data source.     * @return the log writer     * @see javax.sql.DataSource#getLogWriter()     */    public PrintWriter getLogWriter() throws SQLException    {        return m_writer;    }    /**     * Sets the login timeout for the data source. Doesn't do anything, really.     * @param seconds the login timeout, in seconds     * @see javax.sql.DataSource#setLoginTimeout(int)     */    public void setLoginTimeout( int seconds ) throws SQLException    {        this.m_timeout = seconds;    }    /**     * Sets the log writer for the data source. Isn't used for anything, really.     * @param out the log writer     * @see javax.sql.DataSource#setLogWriter(java.io.PrintWriter)     */    public void setLogWriter( PrintWriter out ) throws SQLException    {        this.m_writer = out;    }    /**     * Initialization method that reads a File, and attempts to locate and load     * the JDBC driver from properties specified therein.     * @param file the file containing the JDBC properties     * @throws SQLException     */    protected void initializeJDBC( File file ) throws Exception    {        // Load the properties JDBC properties file        Properties properties;        properties = new Properties();        FileInputStream is = new FileInputStream( file );        properties.load( is );        is.close();        m_jdbcURL = properties.getProperty( PROPERTY_DRIVER_URL );        m_jdbcUser = properties.getProperty( PROPERTY_USER_ID );        m_jdbcPassword = properties.getProperty( PROPERTY_USER_PASSWORD );        // Identifiy the class and JAR we need to load        String clazz = properties.getProperty( PROPERTY_DRIVER_CLASS );        String driverFile = properties.getProperty( PROPERTY_DRIVER_JAR );        // Construct an URL for loading the file        final URL driverURL = new URL( "file:" + driverFile );        // Load the driver using the sytem class loader        final ClassLoader parent = ClassLoader.getSystemClassLoader();        URLClassLoader loader = AccessController.doPrivileged( new PrivilegedAction<URLClassLoader>() {            public URLClassLoader run() {                return new URLClassLoader( new URL[] { driverURL }, parent );            }        });        Class driverClass = loader.loadClass( clazz );        // Cache the driver        m_driver = (Driver) driverClass.newInstance();    }}

⌨️ 快捷键说明

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