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

📄 jdbcdatasource.java

📁 hsqldb是100%java实现的数据库,是一个开放源代码的JAVA数据库 l 具有标准的SQL语法和JAVA接口 l HSQLDB可以自由使用和分发 l 非常简洁和快速的
💻 JAVA
字号:
/* Copyright (c) 2001-2005, The HSQL Development Group * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * Neither the name of the HSQL Development Group nor the names of its * contributors may be used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG, * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */package org.hsqldb.jdbc;import java.io.PrintWriter;import java.io.Serializable;import java.sql.Connection;import java.sql.SQLException;import java.util.Properties;import javax.naming.NamingException;import javax.naming.Reference;import javax.naming.Referenceable;import javax.naming.StringRefAddr;import javax.sql.DataSource;import org.hsqldb.jdbcDriver;// boucherb@users 20040411 - doc 1.7.2 - javadoc updates toward 1.7.2 final/** * <p>A factory for connections to the physical data source that this * <code>DataSource</code> object represents.  An alternative to the * <code>DriverManager</code> facility, a <code>DataSource</code> object * is the preferred means of getting a connection. An object that implements * the <code>DataSource</code> interface will typically be * registered with a naming service based on the * Java<sup><font size=-2>TM</font></sup> Naming and Directory (JNDI) API. * <P> * The <code>DataSource</code> interface is implemented by a driver vendor. * There are three types of implementations: * <OL> *   <LI>Basic implementation -- produces a standard <code>Connection</code> *       object *   <LI>Connection pooling implementation -- produces a <code>Connection</code> *       object that will automatically participate in connection pooling.  This *       implementation works with a middle-tier connection pooling manager. *   <LI>Distributed transaction implementation -- produces a *       <code>Connection</code> object that may be used for distributed *       transactions and almost always participates in connection pooling. *       This implementation works with a middle-tier *       transaction manager and almost always with a connection *       pooling manager. * </OL> * <P> * A <code>DataSource</code> object has properties that can be modified * when necessary.  For example, if the data source is moved to a different * server, the property for the server can be changed.  The benefit is that * because the data source's properties can be changed, any code accessing * that data source does not need to be changed. * <P> * A driver that is accessed via a <code>DataSource</code> object does not * register itself with the <code>DriverManager</code>.  Rather, a * <code>DataSource</code> object is retrieved though a lookup operation * and then used to create a <code>Connection</code> object.  With a basic * implementation, the connection obtained through a <code>DataSource</code> * object is identical to a connection obtained through the * <code>DriverManager</code> facility. * * @since JDK 1.4 * @author deforest@users * @version 1.7.2 */public class jdbcDataSourceimplements Serializable, Referenceable, DataSource {    /**     * Login timeout     */    private int loginTimeout = 0;    /**     * Log writer     */    private transient PrintWriter logWriter;    /**     * Default password to use for connections     */    private String password = "";    /**     * Default user to use for connections     */    private String user = "";    /**     * Database location     */    private String database = "";    /**     * Constructor     */    public jdbcDataSource() {}    /**     * <p>Attempts to establish a connection with the data source that     * this <code>DataSource</code> object represents.     *     * @return  a connection to the data source     * @exception SQLException if a database access error occurs     */    public Connection getConnection() throws SQLException {        return getConnection(user, password);    }    /**     * <p>Attempts to establish a connection with the data source that     * this <code>DataSource</code> object represents.     *     * @param username the database user on whose behalf the connection is     *  being made     * @param password the user's password     * @return  a connection to the data source     * @exception SQLException if a database access error occurs     */    public Connection getConnection(String username,                                    String password) throws SQLException {        Properties props = new Properties();        if (username != null) {            props.put("user", username);        }        if (password != null) {            props.put("password", password);        }        return jdbcDriver.getConnection(database, props);    }    /**     * Retrieves the jdbc database connection url attribute. <p>     *     * @return the jdbc database connection url attribute     */    public String getDatabase() {        return database;    }    /**     * Gets the maximum time in seconds that this data source can wait     * while attempting to connect to a database.  A value of zero     * means that the timeout is the default system timeout     * if there is one; otherwise, it means that there is no timeout.     * When a <code>DataSource</code> object is created, the login timeout is     * initially zero.     *     * @return the data source login time limit     * @exception SQLException if a database access error occurs.     * @see #setLoginTimeout     */    public int getLoginTimeout() throws SQLException {        return 0;    }    /**     * <p>Retrieves the log writer for this <code>DataSource</code>     * object.     *     * <p>The log writer is a character output stream to which all logging     * and tracing messages for this data source will be     * printed.  This includes messages printed by the methods of this     * object, messages printed by methods of other objects manufactured     * by this object, and so on.  Messages printed to a data source     * specific log writer are not printed to the log writer associated     * with the <code>java.sql.Drivermanager</code> class.  When a     * <code>DataSource</code> object is     * created, the log writer is initially null; in other words, the     * default is for logging to be disabled.     *     * @return the log writer for this data source or null if     *        logging is disabled     * @exception SQLException if a database access error occurs     * @see #setLogWriter     */    public java.io.PrintWriter getLogWriter() throws SQLException {        return logWriter;    }    // javadoc to be copied from javax.naming.Referenceable.getReference()    public Reference getReference() throws NamingException {        String    cname = "org.hsqldb.jdbc.jdbcDataSourceFactory";        Reference ref   = new Reference(getClass().getName(), cname, null);        ref.add(new StringRefAddr("database", getDatabase()));        ref.add(new StringRefAddr("user", getUser()));        ref.add(new StringRefAddr("password", password));        return ref;    }    /**     * Retrieves the user ID for the connection. <p>     *     * @return the user ID for the connection     */    public String getUser() {        return user;    }    /**     * Assigns the value of this object's jdbc database connection     * url attribute. <p>     *     * @param database the new value of this object's jdbc database connection     *      url attribute     */    public void setDatabase(String database) {        this.database = database;    }    /**     * <p>Sets the maximum time in seconds that this data source will wait     * while attempting to connect to a database.  A value of zero     * specifies that the timeout is the default system timeout     * if there is one; otherwise, it specifies that there is no timeout.     * When a <code>DataSource</code> object is created, the login timeout is     * initially zero.     *     * @param seconds the data source login time limit     * @exception SQLException if a database access error occurs.     * @see #getLoginTimeout     */    public void setLoginTimeout(int seconds) throws SQLException {        loginTimeout = 0;    }    /**     * <p>Sets the log writer for this <code>DataSource</code>     * object to the given <code>java.io.PrintWriter</code> object.     *     * <p>The log writer is a character output stream to which all logging     * and tracing messages for this data source will be     * printed.  This includes messages printed by the methods of this     * object, messages printed by methods of other objects manufactured     * by this object, and so on.  Messages printed to a data source-     * specific log writer are not printed to the log writer associated     * with the <code>java.sql.Drivermanager</code> class. When a     * <code>DataSource</code> object is created the log writer is     * initially null; in other words, the default is for logging to be     * disabled.     *     * @param logWriter the new log writer; to disable logging, set to null     * @exception SQLException if a database access error occurs     * @see #getLogWriter     */    public void setLogWriter(PrintWriter logWriter) throws SQLException {        this.logWriter = logWriter;    }    /**     * Sets the password to use for connecting to the database     * @param password the password     */    public void setPassword(String password) {        this.password = password;    }    /**     * Sets the userid     * @param user the user id     */    public void setUser(String user) {        this.user = user;    }}

⌨️ 快捷键说明

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