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

📄 simpletextdriver.java

📁 codebook!
💻 JAVA
字号:
//----------------------------------------------------------------------------//// Module:      SimpleTextDriver.java//// Description: Implementation of the JDBC Driver interface//// Author:      Karl Moss//// Copyright:   (C) 1996,1997 Karl Moss.  All rights reserved.//              You may study, use, modify and distribute this example//              for any purpose, provided that this copyright notice//              appears in all copies.  This example is provided WITHOUT//              WARRANTY either expressed or implied.//----------------------------------------------------------------------------package jdbc.SimpleText;//----------------------------------------------------------------------------// The Java SQL framework allows for multiple database drivers.//// Each driver should supply a driver class that implements// the Driver interface.//// The DriverManager will try to load as many drivers as it can// find and then for any given connection request it will ask each// driver in turn to try to connect to the target URL.//// It is strongly recommended that each Driver class should be// small and standalone so that the Driver class can be loaded and// queried without bringing in vast quantities of supporting code.//// When a Driver object is instantiated it should register itself// with the SQL framework by calling DriverManager.registerDriver//// Note: Each driver must support a null constructor so it can be// instantiated by doing:////    java.sql.Driver d = Class.forName("foo.bah.Driver").newInstance();//----------------------------------------------------------------------------// NOTE - this is an implementation of the JDBC API version 1.20//---------------------------------------------------------------------------import java.sql.*;public class SimpleTextDriver    extends       SimpleTextObject    implements    SimpleTextIDriver{    //------------------------------------------------------------------------    // SimpleTextDriver    // Constructor.  Attempt to register the JDBC driver    //------------------------------------------------------------------------    public SimpleTextDriver()        throws SQLException    {        // Attempt to register this driver with the JDBC DriverManager.        // If it fails, an exception will be thrown.        DriverManager.registerDriver (this);    }    //------------------------------------------------------------------------    // connect - JDBC API    //    // Try to make a database connection to the given URL.    // The driver should return "null" if it realizes it is the wrong kind    // of driver to connect to the given URL.  This will be common, as when    // the JDBC driver manager is asked to connect to a given URL it passes    // the URL to each loaded driver in turn.    //    // The driver should raise a SQLException if it is the right    // driver to connect to the given URL, but has trouble connecting to    // the database.    //    // The java.util.Properties argument can be used to passed arbitrary    // string tag/value pairs as connection arguments.    // Normally at least a "user" and "password" properties should be    // included in the Properties.    //    //    url        The URL of the database to connect to    //    //    info    a list of arbitrary string tag/value pairs as    //            connection arguments; normally at least a "user" and    //            "password" property should be included    //    // Returns a Connection to the URL    //------------------------------------------------------------------------    public Connection connect(        String url,        java.util.Properties info)        throws SQLException    {        if (traceOn()) {            trace("@connect (url=" + url + ")");        }        // Ensure that we can understand the given url        if (!acceptsURL(url)) {            return null;        }        // Set the url for the driver        driverURL = url;        // For typical JDBC drivers, it would be appropriate to check        // for a secure environment before connecting, and deny access        // to the driver if it is deemed to be unsecure.  For the        // SimpleText driver, if the environment is not secure we will        // turn into a read-only driver.        // Create a new SimpleTextConnection object        SimpleTextConnection con = new SimpleTextConnection();        // Initialize the new object        con.initialize (this, info);        return con;    }    //------------------------------------------------------------------------    // acceptsURL - JDBC API    //    // Returns true if the driver thinks that it can open a connection    // to the given URL.  Typically drivers will return true if they    // understand the subprotocol specified in the URL and false if    // they don't.    //    //    url        The URL of the database.    //    // Returns true if this driver can connect to the given URL.    //------------------------------------------------------------------------    public boolean acceptsURL(        String url)        throws SQLException    {        if (traceOn()) {            trace("@acceptsURL (url=" + url + ")");        }        boolean rc = false;        // Get the subname from the url.  If the url is not valid for        // this driver, a null will be returned.        if (getSubname(url) != null) {            rc = true;        }        if (traceOn()) {            trace(" " + rc);        }        return rc;    }    //------------------------------------------------------------------------    // getPropertyInfo - JDBC API    //    // The getPropertyInfo method is intended to allow a generic GUI tool to    // discover what properties it should prompt a human for in order to get    // enough information to connect to a database.  Note that depending on    // the values the human has supplied so far, additional values may become    // necessary, so it may be necessary to iterate though several calls    // to getPropertyInfo.    //    //    url        The URL of the database to connect to.    //    //    info    A proposed list of tag/value pairs that will be sent on    //            connect open.    //    // Returns an array of DriverPropertyInfo objects describing possible    //            properties.  This array may be an empty array if no properties    //            are required.    //------------------------------------------------------------------------    public DriverPropertyInfo[] getPropertyInfo(        String url,        java.util.Properties info)        throws SQLException    {        DriverPropertyInfo prop[];        // Only one property required for the SimpleText driver; the        // directory.  Check the property list coming in.  If the        // directory is specified, return an empty list.        if (info.getProperty("Directory") == null) {            // Setup the DriverPropertyInfo entry            prop = new DriverPropertyInfo[1];            prop[0] = new DriverPropertyInfo("Directory", null);            prop[0].description = "Initial text file directory";            prop[0].required = false;        }        else {            // Create an empty list            prop = new DriverPropertyInfo[0];        }        return prop;    }    //------------------------------------------------------------------------    // getMajorVersion - JDBC API    //    // Get the driver's major version number. Initially this should be 1.    //------------------------------------------------------------------------    public int getMajorVersion()    {        return SimpleTextDefine.MAJOR_VERSION;    }    //------------------------------------------------------------------------    // getMinorVersion - JDBC API    //    // Get the driver's minor version number. Initially this should be 0.    //------------------------------------------------------------------------    public int getMinorVersion()    {        return SimpleTextDefine.MINOR_VERSION;    }    //------------------------------------------------------------------------    // jdbcCompliant - JDBC API    //    // Report whether the Driver is a genuine JDBC COMPLIANT (tm) driver.    // A driver may only report "true" here if it passes the JDBC compliance    // tests, otherwise it is required to return false.    //    // JDBC compliance requires full support for the JDBC API and full support    // for SQL 92 Entry Level.  It is expected that JDBC compliant drivers will    // be available for all the major commercial databases.    //    // This method is not intended to encourage the development of non-JDBC    // compliant drivers, but is a recognition of the fact that some vendors    // are interested in using the JDBC API and framework for lightweight    // databases that do not support full database functionality, or for    // special databases such as document information retrieval where a SQL    // implementation may not be feasible.    //------------------------------------------------------------------------    public boolean jdbcCompliant()    {        // The SimpleText driver is not JDBC compliant        return false;    }    //------------------------------------------------------------------------    // getSubname    // Given a URL, return the subname.  Returns null if the protocol is    // not 'jdbc' or the subprotocol is not 'simpletext'    //------------------------------------------------------------------------    public String getSubname()    {        return getSubname(driverURL);    }    public String getSubname(        String url)    {        String subname = null;        String protocol = "JDBC";        String subProtocol = "SIMPLETEXT";        // Convert to upper case and trim all leading and trailing        // blanks        url = (url.toUpperCase()).trim();        // Make sure the protocol is jdbc:        if (url.startsWith(protocol)) {            // Strip off the protocol            url = url.substring (protocol.length());            // Look for the colon            if (url.startsWith(":")) {                url = url.substring(1);                // Check the subprotocol                if (url.startsWith (subProtocol)) {                    // Strip off the subprotocol, leaving the subname                    url = url.substring(subProtocol.length());                    // Look for the colon that separates the subname                    // from the subprotocol (or the fact that there                    // is no subprotocol at all)                    if (url.startsWith(":")) {                        subname = url.substring(1);                    }                    else if (url.length() == 0) {                        subname = "";                    }                }            }        }        return subname;    }    //------------------------------------------------------------------------    // getURL    //    // Get the URL specified for the driver    //------------------------------------------------------------------------    public String getURL()    {        return driverURL;    }    private String driverURL;}

⌨️ 快捷键说明

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