DatabaseMetaData类获取信息 : 元数据的数据库信息 « 数据库JDBC « Java

En
Java
1. 图形用户界面
2. 三维图形动画
3. 高级图形
4. 蚂蚁编译
5. Apache类库
6. 统计图
7. 
8. 集合数据结构
9. 数据类型
10. 数据库JDBC
11. 设计模式
12. 开发相关类
13. EJB3
14. 电子邮件
15. 事件
16. 文件输入输出
17. 游戏
18. 泛型
19. GWT
20. Hibernate
21. 本地化
22. J2EE平台
23. 基于J2ME
24. JDK-6
25. JNDI的LDAP
26. JPA
27. JSP技术
28. JSTL
29. 语言基础知识
30. 网络协议
31. PDF格式RTF格式
32. 映射
33. 常规表达式
34. 脚本
35. 安全
36. Servlets
37. Spring
38. Swing组件
39. 图形用户界面
40. SWT-JFace-Eclipse
41. 线程
42. 应用程序
43. Velocity
44. Web服务SOA
45. 可扩展标记语言
Java 教程
Java » 数据库JDBC » 元数据的数据库信息屏幕截图 
DatabaseMetaData类获取信息
 

/*
 * Copyright (c) 2000 David Flanagan.  All rights reserved.
 * This code is from the book Java Examples in a Nutshell, 2nd Edition.
 * It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.
 * You may study, use, and modify it for any non-commercial purpose.
 * You may distribute it non-commercially as long as you retain this notice.
 * For a commercial use license, or to purchase the book (recommended),
 * visit http://www.davidflanagan.com/javaexamples2.
 */

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

/**
 * This class uses the DatabaseMetaData class to obtain information about the
 * database, the JDBC driver, and the tables in the database, or about the
 * columns of a named table.
 */
public class GetDBInfo {
  public static void main(String[] args) {
    Connection c = null// The JDBC connection to the database server
    try {
      // Look for the properties file DB.props in the same directory as
      // this program. It will contain default values for the various
      // parameters needed to connect to a database
      Properties p = new Properties();
      try {
        p.load(GetDBInfo.class.getResourceAsStream("DB.props"));
      catch (Exception e) {
      }

      // Get default values from the properties file
      String driver = p.getProperty("driver")// Driver class name
      String server = p.getProperty("server""")// JDBC URL for server
      String user = p.getProperty("user""")// db user name
      String password = p.getProperty("password""")// db password

      // These variables don't have defaults
      String database = null// The db name (appended to server URL)
      String table = null// The optional name of a table in the db

      // Parse the command-line args to override the default values above
      for (int i = 0; i < args.length; i++) {
        if (args[i].equals("-d"))
          driver = args[++i]//-d <driver>
        else if (args[i].equals("-s"))
          server = args[++i];//-s <server>
        else if (args[i].equals("-u"))
          user = args[++i]//-u <user>
        else if (args[i].equals("-p"))
          password = args[++i];
        else if (database == null)
          database = args[i]// <dbname>
        else if (table == null)
          table = args[i]// <table>
        else
          throw new IllegalArgumentException("Unknown argument: "
              + args[i]);
      }

      // Make sure that at least a server or a database were specified.
      // If not, we have no idea what to connect to, and cannot continue.
      if ((server.length() == 0&& (database.length() == 0))
        throw new IllegalArgumentException("No database specified.");

      // Load the db driver, if any was specified.
      if (driver != null)
        Class.forName(driver);

      // Now attempt to open a connection to the specified database on
      // the specified server, using the specified name and password
      c = DriverManager.getConnection(server + database, user, password);

      // Get the DatabaseMetaData object for the connection. This is the
      // object that will return us all the data we're interested in here
      DatabaseMetaData md = c.getMetaData();

      // Display information about the server, the driver, etc.
      System.out.println("DBMS: " + md.getDatabaseProductName() " "
          + md.getDatabaseProductVersion());
      System.out.println("JDBC Driver: " + md.getDriverName() " "
          + md.getDriverVersion());
      System.out.println("Database: " + md.getURL());
      System.out.println("User: " + md.getUserName());

      // Now, if the user did not specify a table, then display a list of
      // all tables defined in the named database. Note that tables are
      // returned in a ResultSet, just like query results are.
      if (table == null) {
        System.out.println("Tables:");
        ResultSet r = md.getTables("""""%"null);
        while (r.next())
          System.out.println("\t" + r.getString(3));
      }

      // Otherwise, list all columns of the specified table.
      // Again, information about the columns is returned in a ResultSet
      else {
        System.out.println("Columns of " + table + ": ");
        ResultSet r = md.getColumns("""", table, "%");
        while (r.next())
          System.out.println("\t" + r.getString(4" : "
              + r.getString(6));
      }
    }
    // Print an error message if anything goes wrong.
    catch (Exception e) {
      System.err.println(e);
      if (instanceof SQLException)
        System.err.println(((SQLExceptione).getSQLState());
      System.err.println("Usage: java GetDBInfo [-d <driver] "
          "[-s <dbserver>]\n"
          "\t[-u <username>] [-p <password>] <dbname>");
    }
    // Always remember to close the Connection object when we're done!
    finally {
      try {
        c.close();
      catch (Exception e) {
      }
    }
  }
}

           
         
  
Related examples in the same category
1. 在数据库获取所有关键词
2. 从元数据中获取模式
3. 从数据库获取数据目录
4. Is statement pooling supported?
5. 数据库元数据:数据库版本
6. 数据库元数据中的类型信息
7. 数据库元数据查询
8. 数据库信息
9. JDBC Performance
10. Driver Property Info
11. If database support transaction
12. If database support scrollable result sets
13. 获得产品信息数据库
14. 获取数据类型支持的数据库
15. If database support batch update
16. 获取数据库表名最大长度
17. 获得数值函数支持数据库
18. 获取JDBC驱动程序的信息
19. 获取系统功能的数据库支持
20. 获取最大并发连接到一个数据库
21. 获取日期时间功能支持数的据库
22. 使用ResultSetMetaData获取列名称表
23. 获取列的精度和规模的值
24. 获取字符串函数支持的数据库
25. JDBC的版本应用程序
26. 列出所有非SQL92关键词所使用的数据库
27. Listing the String Functions Supported by a Database: retrieves a list of string functions that a database supports.
28. 列出数据库支持的数值函数
29. 列出数据库支持的系统功能
30. 列出数据库支持的时间和日期功能
31. 从一个数据库中获取允许的最大表名称长度
32. 检测一个表是否存在
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.