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

📄 databasemetadata.java

📁 用java访问MySQL数据库的JDBC驱动程序。
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
/*
 * MM JDBC Drivers for MySQL
 *
 * $Id: DatabaseMetaData.java,v 1.2 1998/08/25 00:53:46 mmatthew Exp $
 *
 * Copyright (C) 1998 Mark Matthews <mmatthew@worldserver.com>
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 * 
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA  02111-1307, USA.
 *
 * See the COPYING file located in the top-level-directory of
 * the archive of this library for complete text of license.
 *
 * Some portions:
 *
 * Copyright (c) 1996 Bradley McLean / Jeffrey Medeiros
 * Modifications Copyright (c) 1996/1997 Martin Rode
 * Copyright (c) 1997 Peter T Mount
 */

/**
 * JDBC Interface to Mysql functions
 *
 * <p>
 * This class provides information about the database as a whole.
 *
 * <p>
 * Many of the methods here return lists of information in ResultSets.
 * You can use the normal ResultSet methods such as getString and getInt
 * to retrieve the data from these ResultSets.  If a given form of
 * metadata is not available, these methods show throw a java.sql.SQLException.
 * 
 * <p>
 * Some of these methods take arguments that are String patterns.  These
 * methods all have names such as fooPattern.  Within a pattern String "%"
 * means match any substring of 0 or more characters and "_" means match
 * any one character.
 *
 * @author Mark Matthews <mmatthew@worldserver.com>
 * @version $Id$
 */

package org.gjt.mm.mysql;

import java.sql.*;
import java.net.*;
import java.io.*;
import java.util.Vector;

public class DatabaseMetaData implements java.sql.DatabaseMetaData
{
    private Connection _Conn;
	
    private String _Database = null;

    private static byte[] _Table_As_Bytes = 
	new byte[] {'T', 'A','B', 'L', 'E'};
  
    public DatabaseMetaData(Connection Conn, String Database) 
    {
        _Conn = Conn;
        _Database = Database;
    }
   
    /**
     * Can all the procedures returned by getProcedures be called by the
     * current user?
     *
     * @return true if so
     */
  
    public boolean allProceduresAreCallable() throws java.sql.SQLException 
    {
        return false;  // not likely we will ever check
    }

    /**
     * Can all the tables returned by getTable be SELECTed by the
     * current user?
     *
     * @return true if so
     */

    public boolean allTablesAreSelectable() throws java.sql.SQLException 
    {
        return false;  // not likely we will ever check
    }

    /**
     * What's the url for this database?
     *
     * @return the url or null if it can't be generated
     */

    public String getURL() throws java.sql.SQLException 
    {
        return new String(_Conn.getURL());
    }

    /**
     * What's our user name as known to the database?
     *
     * @return our database user name
     */

    public String getUserName() throws java.sql.SQLException 
    {
        return new String(_Conn.getUser());
    }

    /**
     * Is the database in read-only mode?
     *
     * @return true if so
     */

    public boolean isReadOnly() throws java.sql.SQLException 
    {
        return false; // will this ever be true?
    }

    /**
     * Are NULL values sorted high?
     *
     * @return true if so
     */

    public boolean nullsAreSortedHigh() throws java.sql.SQLException 
    {
        return false;
    }

    /**
     * Are NULL values sorted low?
     *
     * @return true if so
     */

    public boolean nullsAreSortedLow() throws java.sql.SQLException 
    {
        return !nullsAreSortedHigh(); // a guess!?
    }

    /**
     * Are NULL values sorted at the start regardless of sort order?
     *
     * @return true if so
     */

    public boolean nullsAreSortedAtStart() throws java.sql.SQLException 
    {
        return false; // maybe true?
    }

    /**
     * Are NULL values sorted at the end regardless of sort order?
     *
     * @return true if so
     */

    public boolean nullsAreSortedAtEnd() throws java.sql.SQLException 
    {
        return false;
    }
  
    /**
     * What's the name of this database product?
     *
     * @return database product name
     */

    public String getDatabaseProductName() throws java.sql.SQLException 
    {
        return "MySQL";
    }
  
    /**
     * What's the version of this database product?
     *
     * @return database version
     */

    public String getDatabaseProductVersion() throws java.sql.SQLException 
    {
        return new String(_Conn.getServerVersion());
    }

    /**
     * What's the name of this JDBC driver?
     *
     * @return JDBC driver name
     */

    public String getDriverName() throws java.sql.SQLException 
    {
        return "Mark Matthews' MySQL Driver";
    }

    /**
     * What's the version of this JDBC driver?
     *
     * @return JDBC driver version
     */

    public String getDriverVersion() throws java.sql.SQLException 
    {
        return "1.2b";
    }

    /**
     * What's this JDBC driver's major version number?
     *
     * @return JDBC driver major version
     */

    public int getDriverMajorVersion() 
    {
        return Driver._MAJORVERSION;
    }

    /**
     * What's this JDBC driver's minor version number?
     *
     * @return JDBC driver minor version number
     */

    public int getDriverMinorVersion() 
    {
        return Driver._MINORVERSION;
    }

    /**
     * Does the database store tables in a local file?
     *
     * @return true if so
     */
  
    public boolean usesLocalFiles() throws java.sql.SQLException 
    {
        return false;
    }

    /**
     * Does the database use a file for each table?
     *
     * @return true if the database uses a local file for each table
     */

    public boolean usesLocalFilePerTable() throws java.sql.SQLException 
    {
        return false;
    }

    /**
     * Does the database support mixed case unquoted SQL identifiers?
     *
     * @return true if so
     */

    public boolean supportsMixedCaseIdentifiers() throws java.sql.SQLException 
    {
        return false; // I think
    }

    /**
     * Does the database store mixed case unquoted SQL identifiers in
     * upper case?
     *
     * @return true if so
     */

    public boolean storesUpperCaseIdentifiers() throws java.sql.SQLException 
    {
        return false;
    }

    /**
     * Does the database store mixed case unquoted SQL identifiers in
     * lower case?
     *
     * @return true if so
     */

    public boolean storesLowerCaseIdentifiers() throws java.sql.SQLException 
    {
        return false;
    }

    /**
     * Does the database store mixed case unquoted SQL identifiers in
     * mixed case?
     *
     * @return true if so
     */

    public boolean storesMixedCaseIdentifiers() throws java.sql.SQLException 
    {
        return true; // I think...
    }

    /**
     * Does the database support mixed case quoted SQL identifiers?
     *
     * A JDBC compliant driver will always return true.
     *
     * @return true if so
     */

    public boolean supportsMixedCaseQuotedIdentifiers() throws java.sql.SQLException 
    {
        return false; // won't work with MySQL
    }

    /**
     * Does the database store mixed case quoted SQL identifiers in
     * upper case?
     *
     * A JDBC compliant driver will always return true.
     *
     * @return true if so
     */

    public boolean storesUpperCaseQuotedIdentifiers() throws java.sql.SQLException 
    {
        return false; // don't know
    }

    /**
     * Does the database store mixed case quoted SQL identifiers in
     * lower case?
     *
     * A JDBC compliant driver will always return false.
     *
     * @return true if so
     */

    public boolean storesLowerCaseQuotedIdentifiers() throws java.sql.SQLException 
    {
        return false;
    }

    /**
     * Does the database store mixed case quoted SQL identifiers in
     * mixed case?
     *
     * A JDBC compliant driver will always return false.
     *
     * @return true if so
     */

    public boolean storesMixedCaseQuotedIdentifiers() throws java.sql.SQLException 
    {
        return false; // don't really know.
    }

    /**
     * What's the string used to quote SQL identifiers?
     * This returns a space " " if identifier quoting isn't supported.
     *
     * A JDBC compliant driver always uses a double quote character.
     *
     * @return the quoting string
     */

    public String getIdentifierQuoteString() throws java.sql.SQLException 
    {
        return " ";
    }

    /**
     * Get a comma separated list of all a database's SQL keywords
     * that are NOT also SQL92 keywords.
     *
     * @return the list
     */

    public String getSQLKeywords() throws java.sql.SQLException 
    {
        return "AUTO_INCREMENT,BINARY,BLOB,ENUM,INFILE,LOAD,MEDIUMINT,OPTION,OUTFILE,REPLACE,SET,TEXT,UNSIGNED,ZEROFILL";
    }

    /**
     * Get a comma separated list of math functions.
     *
     * @return the list
     */
    
    public String getNumericFunctions() throws java.sql.SQLException 
    {
        return "ABS,ACOS,ASIN,ATAN,ATAN2,BIT_COUNT,CEILING,COS,COT,DEGREES,EXP,FLOOR,LOG,LOG10,MAX,MIN,MOD,PI,POW,POWER,RADIANS,RAND,ROUND,SIN,SQRT,TAN,TRUNCATE";
    }

    /**
     * Get a comma separated list of string functions.
     *
     * @return the list
     */

    public String getStringFunctions() throws java.sql.SQLException 
    {
        return "ACII,CHAR,CHAR_LENGTH,CHARACTER_LENGTH,CONCAT,ELT,FIELD,FIND_IN_SET,INSERT,INSTR,INTERVAL,LCASE,LEFT,LENGTH,LOCATE,LOWER,LTRIM,MID,POSITION,OCTET_LENGTH,REPEAT,REPLACE,REVERSE,RIGHT,RTRIM,SPACE,SOUNDEX,SUBSTRING,SUBSTRING_INDEX,TRIM,UCASE,UPPER";
    }

    /**
     * Get a comma separated list of system functions.
     *
     * @return the list
     */

    public String getSystemFunctions() throws java.sql.SQLException 
    {
        return "DATABASE,USER,SYSTEM_USER,SESSION_USER,PASSWORD,ENCRYPT,LAST_INSERT_ID,VERSION";
    }

    /**
     * Get a comma separated list of time and date functions.
     *
     * @return the list
     */
        
    public String getTimeDateFunctions() throws java.sql.SQLException 
    {
        return "DAYOFWEEK,WEEKDAY,DAYOFMONTH,DAYOFYEAR,MONTH,DAYNAME,MONTHNAME,QUARTER,WEEK,YEAR,HOUR,MINUTE,SECOND,PERIOD_ADD,PERIOD_DIFF,TO_DAYS,FROM_DAYS,DATE_FORMAT,TIME_FORMAT,CURDATE,CURRENT_DATE,CURTIME,CURRENT_TIME,NOW,SYSDATE,CURRENT_TIMESTAMP,UNIX_TIMESTAMP,FROM_UNIXTIME,SEC_TO_TIME,TIME_TO_SEC";
    }

    /**
     * This is the string that can be used to escape '_' or '%' in
     * the string pattern style catalog search parameters.
     *
     * <P>The '_' character represents any single character.
     * <P>The '%' character represents any sequence of zero or
     * more characters.
     * @return the string used to escape wildcard characters
     */

    public String getSearchStringEscape() throws java.sql.SQLException 
    {
        return "\\";
    }

    /**
     * Get all the "extra" characters that can be used in unquoted
     * identifier names (those beyond a-z, 0-9 and _).
     *
     * @return the string containing the extra characters
     */

    public String getExtraNameCharacters() throws java.sql.SQLException 
    {
        return "";
    }

    /**

⌨️ 快捷键说明

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